RequirementRegistry.java

1
package sh.okx.rankup.requirements;
2
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.HashSet;
6
import java.util.List;
7
import java.util.Objects;
8
import java.util.Set;
9
10
public class RequirementRegistry {
11
  private final Set<Requirement> requirements = new HashSet<>();
12
13
  @Deprecated
14
  public void addRequirement(Requirement requirement) {
15
    requirements.add(requirement);
16
  }
17
18
  public void addRequirements(Requirement requirement, Requirement... requirements) {
19
    this.requirements.add(requirement);
20
    Collections.addAll(this.requirements, requirements);
21
  }
22
23
  public Requirement newRequirement(String name, String value) {
24
    for (Requirement requirement : requirements) {
25 1 1. newRequirement : negated conditional → KILLED
      if (requirement.getName().equalsIgnoreCase(name)) {
26
        Requirement newRequirement = requirement.clone();
27 1 1. newRequirement : removed call to sh/okx/rankup/requirements/Requirement::setValue → KILLED
        newRequirement.setValue(value);
28 1 1. newRequirement : replaced return value with null for sh/okx/rankup/requirements/RequirementRegistry::newRequirement → KILLED
        return newRequirement;
29
      }
30
    }
31
    return null;
32
  }
33
34
  public List<Requirement> getRequirements(Iterable<String> list) {
35
    List<Requirement> requirements = new ArrayList<>();
36
37
    for (String req : list) {
38
      String[] parts = req.split(" ", 2);
39 2 1. getRequirements : changed conditional boundary → KILLED
2. getRequirements : negated conditional → KILLED
      if (parts.length < 2) {
40
        throw new IllegalArgumentException("For requirement: '" + req + "'. Requirements must contain a space between" +
41
            " the name of the requirement and the value of the requirement. If it already looks like it has a space, " +
42
            "make sure it is not a tab or has an invisible character.");
43
      }
44
45
      String name = parts[0];
46
      String value = parts[1];
47
      Requirement requirement = newRequirement(name, value);
48 1 1. getRequirements : negated conditional → SURVIVED
      Objects.requireNonNull(requirement, name.equalsIgnoreCase("money") ? "The 'money' requirement is being used but no economy is found" : "Unknown requirement: " + name);
49
      requirements.add(requirement);
50
    }
51 1 1. getRequirements : replaced return value with Collections.emptyList for sh/okx/rankup/requirements/RequirementRegistry::getRequirements → KILLED
    return requirements;
52
  }
53
}

Mutations

25

1.1
Location : newRequirement
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
negated conditional → KILLED

27

1.1
Location : newRequirement
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
removed call to sh/okx/rankup/requirements/Requirement::setValue → KILLED

28

1.1
Location : newRequirement
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
replaced return value with null for sh/okx/rankup/requirements/RequirementRegistry::newRequirement → KILLED

39

1.1
Location : getRequirements
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
changed conditional boundary → KILLED

2.2
Location : getRequirements
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
negated conditional → KILLED

48

1.1
Location : getRequirements
Killed by : none
negated conditional → SURVIVED

51

1.1
Location : getRequirements
Killed by : sh.okx.rankup.requirements.MobKillsRequirementsTest.[engine:junit-jupiter]/[class:sh.okx.rankup.requirements.MobKillsRequirementsTest]/[method:testMobKillsRequirements()]
replaced return value with Collections.emptyList for sh/okx/rankup/requirements/RequirementRegistry::getRequirements → KILLED

Active mutators

Tests examined


Report generated by PIT 1.7.0