WmlUtils.java

1
package pro.verron.officestamper.utils;
2
3
import org.docx4j.TraversalUtil;
4
import org.docx4j.finders.CommentFinder;
5
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
6
import org.jvnet.jaxb2_commons.ppp.Child;
7
import pro.verron.officestamper.api.OfficeStamperException;
8
9
import java.util.List;
10
import java.util.Optional;
11
12
public final class WmlUtils {
13
    private WmlUtils() {
14
        throw new OfficeStamperException("Utility class shouldn't be instantiated");
15
    }
16
17
    public static <T> Optional<T> getFirstParentWithClass(Child child, Class<T> aClass, int depth) {
18
        var parent = child.getParent();
19
        var currentDepth = 0;
20 2 1. getFirstParentWithClass : changed conditional boundary → SURVIVED
2. getFirstParentWithClass : negated conditional → KILLED
        while (currentDepth <= depth) {
21 1 1. getFirstParentWithClass : Changed increment from 1 to -1 → SURVIVED
            currentDepth++;
22 1 1. getFirstParentWithClass : negated conditional → KILLED
            if (parent == null) return Optional.empty();
23 2 1. getFirstParentWithClass : replaced return value with Optional.empty for pro/verron/officestamper/utils/WmlUtils::getFirstParentWithClass → KILLED
2. getFirstParentWithClass : negated conditional → KILLED
            if (aClass.isInstance(parent)) return Optional.of(aClass.cast(parent));
24 1 1. getFirstParentWithClass : negated conditional → TIMED_OUT
            if (parent instanceof Child next) parent = next.getParent();
25
        }
26
        return Optional.empty();
27
    }
28
29
    public static List<Child> extractCommentElements(WordprocessingMLPackage document) {
30
        var commentFinder = new CommentFinder();
31 1 1. extractCommentElements : removed call to org/docx4j/TraversalUtil::visit → KILLED
        TraversalUtil.visit(document, true, commentFinder);
32 1 1. extractCommentElements : replaced return value with Collections.emptyList for pro/verron/officestamper/utils/WmlUtils::extractCommentElements → KILLED
        return commentFinder.getCommentElements();
33
    }
34
}

Mutations

20

1.1
Location : getFirstParentWithClass
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

2.2
Location : getFirstParentWithClass
Killed by : pro.verron.officestamper.test.DefaultTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.DefaultTests]/[test-template:features(java.lang.String, pro.verron.officestamper.api.OfficeStamperConfiguration, java.lang.Object, java.io.InputStream, java.lang.String)]/[test-template-invocation:#22]
negated conditional → KILLED

21

1.1
Location : getFirstParentWithClass
Killed by : none
Changed increment from 1 to -1 → SURVIVED
Covering tests

22

1.1
Location : getFirstParentWithClass
Killed by : pro.verron.officestamper.test.DefaultTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.DefaultTests]/[test-template:features(java.lang.String, pro.verron.officestamper.api.OfficeStamperConfiguration, java.lang.Object, java.io.InputStream, java.lang.String)]/[test-template-invocation:#22]
negated conditional → KILLED

23

1.1
Location : getFirstParentWithClass
Killed by : pro.verron.officestamper.test.DefaultTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.DefaultTests]/[test-template:features(java.lang.String, pro.verron.officestamper.api.OfficeStamperConfiguration, java.lang.Object, java.io.InputStream, java.lang.String)]/[test-template-invocation:#22]
replaced return value with Optional.empty for pro/verron/officestamper/utils/WmlUtils::getFirstParentWithClass → KILLED

2.2
Location : getFirstParentWithClass
Killed by : pro.verron.officestamper.test.DefaultTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.DefaultTests]/[test-template:features(java.lang.String, pro.verron.officestamper.api.OfficeStamperConfiguration, java.lang.Object, java.io.InputStream, java.lang.String)]/[test-template-invocation:#22]
negated conditional → KILLED

24

1.1
Location : getFirstParentWithClass
Killed by : none
negated conditional → TIMED_OUT

31

1.1
Location : extractCommentElements
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[method:fails()]
removed call to org/docx4j/TraversalUtil::visit → KILLED

32

1.1
Location : extractCommentElements
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[method:fails()]
replaced return value with Collections.emptyList for pro/verron/officestamper/utils/WmlUtils::extractCommentElements → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.1