DocxStamperConfiguration.java

1
package pro.verron.officestamper.core;
2
3
import org.springframework.expression.EvaluationContext;
4
import org.springframework.expression.spel.SpelParserConfiguration;
5
import org.springframework.lang.NonNull;
6
import pro.verron.officestamper.api.*;
7
import pro.verron.officestamper.preset.CommentProcessorFactory;
8
import pro.verron.officestamper.preset.EvaluationContextConfigurers;
9
import pro.verron.officestamper.preset.ExceptionResolvers;
10
import pro.verron.officestamper.preset.Resolvers;
11
12
import java.util.ArrayList;
13
import java.util.HashMap;
14
import java.util.List;
15
import java.util.Map;
16
import java.util.function.Function;
17
18
/**
19
 * The {@link DocxStamperConfiguration} class represents the configuration for
20
 * the {@link DocxStamper} class.
21
 * It provides methods to customize the behavior of the stamper.
22
 *
23
 * @author Joseph Verron
24
 * @author Tom Hombergs
25
 * @version ${version}
26
 * @since 1.0.3
27
 */
28
public class DocxStamperConfiguration
29
        implements OfficeStamperConfiguration {
30
    private final Map<Class<?>, Function<ParagraphPlaceholderReplacer, CommentProcessor>> commentProcessors =
31
            new HashMap<>();
32
    private final List<ObjectResolver> resolvers = new ArrayList<>();
33
    private final Map<Class<?>, Object> expressionFunctions = new HashMap<>();
34
    private final List<PreProcessor> preprocessors = new ArrayList<>();
35
    private String lineBreakPlaceholder = "\n";
36
    private EvaluationContextConfigurer evaluationContextConfigurer = EvaluationContextConfigurers.defaultConfigurer();
37
    private boolean failOnUnresolvedExpression = true;
38
    private boolean leaveEmptyOnExpressionError = false;
39
    private boolean replaceUnresolvedExpressions = false;
40
    private String unresolvedExpressionsDefaultValue = null;
41
    private SpelParserConfiguration spelParserConfiguration = new SpelParserConfiguration();
42
    private ExceptionResolver exceptionResolver = computeExceptionResolver();
43
44
    /**
45
     * Creates a new configuration with default values.
46
     */
47
    public DocxStamperConfiguration() {
48
        CommentProcessorFactory pf = new CommentProcessorFactory(this);
49
        commentProcessors.put(CommentProcessorFactory.IRepeatProcessor.class, pf::repeat);
50
        commentProcessors.put(CommentProcessorFactory.IParagraphRepeatProcessor.class, pf::repeatParagraph);
51
        commentProcessors.put(CommentProcessorFactory.IRepeatDocPartProcessor.class, pf::repeatDocPart);
52
        commentProcessors.put(CommentProcessorFactory.ITableResolver.class, pf::tableResolver);
53
        commentProcessors.put(CommentProcessorFactory.IDisplayIfProcessor.class, pf::displayIf);
54
        commentProcessors.put(CommentProcessorFactory.IReplaceWithProcessor.class, pf::replaceWith);
55
56
        resolvers.addAll(List.of(Resolvers.image(),
57
                Resolvers.legacyDate(),
58
                Resolvers.isoDate(),
59
                Resolvers.isoTime(),
60
                Resolvers.isoDateTime(),
61
                Resolvers.nullToEmpty(),
62
                Resolvers.fallback()));
63
    }
64
65
    /**
66
     * Resets all the comment processors in the configuration. This method clears the
67
     * map of comment processors, effectively removing all registered comment processors.
68
     * Comment processors are used to process comments within the document.
69
     */
70
    public void resetCommentProcessors() {
71 1 1. resetCommentProcessors : removed call to java/util/Map::clear → SURVIVED
        this.commentProcessors.clear();
72
    }
73
74
    /**
75
     * Resets all the resolvers in the DocxStamperConfiguration object.
76
     * This method clears the list of resolvers, effectively removing all registered resolvers.
77
     * Resolvers are used to resolve objects during the stamping process.
78
     */
79
    public void resetResolvers() {
80 1 1. resetResolvers : removed call to java/util/List::clear → KILLED
        this.resolvers.clear();
81
    }
82
83
    /**
84
     * <p>isFailOnUnresolvedExpression.</p>
85
     *
86
     * @return a boolean
87
     */
88
    @Deprecated(since = "2.5", forRemoval = true) @Override public boolean isFailOnUnresolvedExpression() {
89 2 1. isFailOnUnresolvedExpression : replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isFailOnUnresolvedExpression → NO_COVERAGE
2. isFailOnUnresolvedExpression : replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isFailOnUnresolvedExpression → NO_COVERAGE
        return failOnUnresolvedExpression;
90
    }
91
92
    /**
93
     * If set to true, stamper will throw an {@link OfficeStamperException}
94
     * if a variable expression or processor expression within the document or within the comments is encountered that
95
     * cannot be resolved. Is set to true by default.
96
     *
97
     * @param failOnUnresolvedExpression a boolean
98
     *
99
     * @return a {@link DocxStamperConfiguration} object
100
     */
101
    @Deprecated(since = "2.5", forRemoval = true) @Override
102
    public DocxStamperConfiguration setFailOnUnresolvedExpression(boolean failOnUnresolvedExpression) {
103
        this.failOnUnresolvedExpression = failOnUnresolvedExpression;
104
        this.exceptionResolver = computeExceptionResolver();
105 1 1. setFailOnUnresolvedExpression : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setFailOnUnresolvedExpression → NO_COVERAGE
        return this;
106
    }
107
108
    private ExceptionResolver computeExceptionResolver() {
109 2 1. computeExceptionResolver : negated conditional → KILLED
2. computeExceptionResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → KILLED
        if (failOnUnresolvedExpression) return ExceptionResolvers.throwing();
110 2 1. computeExceptionResolver : negated conditional → NO_COVERAGE
2. computeExceptionResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → NO_COVERAGE
        if (replaceWithDefaultOnError()) return ExceptionResolvers.defaulting(replacementDefault());
111 1 1. computeExceptionResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → NO_COVERAGE
        return ExceptionResolvers.passing();
112
    }
113
114
    private boolean replaceWithDefaultOnError() {
115 3 1. replaceWithDefaultOnError : negated conditional → NO_COVERAGE
2. replaceWithDefaultOnError : replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::replaceWithDefaultOnError → NO_COVERAGE
3. replaceWithDefaultOnError : negated conditional → NO_COVERAGE
        return isLeaveEmptyOnExpressionError() || isReplaceUnresolvedExpressions();
116
    }
117
118
    private String replacementDefault() {
119 2 1. replacementDefault : replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::replacementDefault → NO_COVERAGE
2. replacementDefault : negated conditional → NO_COVERAGE
        return isLeaveEmptyOnExpressionError() ? "" : getUnresolvedExpressionsDefaultValue();
120
    }
121
122
    /**
123
     * <p>isLeaveEmptyOnExpressionError.</p>
124
     *
125
     * @return a boolean
126
     */
127
    @Override public boolean isLeaveEmptyOnExpressionError() {
128 2 1. isLeaveEmptyOnExpressionError : replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isLeaveEmptyOnExpressionError → NO_COVERAGE
2. isLeaveEmptyOnExpressionError : replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isLeaveEmptyOnExpressionError → NO_COVERAGE
        return leaveEmptyOnExpressionError;
129
    }
130
131
    /**
132
     * <p>isReplaceUnresolvedExpressions.</p>
133
     *
134
     * @return a boolean
135
     */
136
    @Override public boolean isReplaceUnresolvedExpressions() {
137 2 1. isReplaceUnresolvedExpressions : replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isReplaceUnresolvedExpressions → NO_COVERAGE
2. isReplaceUnresolvedExpressions : replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isReplaceUnresolvedExpressions → NO_COVERAGE
        return replaceUnresolvedExpressions;
138
    }
139
140
    /**
141
     * <p>Getter for the field <code>unresolvedExpressionsDefaultValue</code>.</p>
142
     *
143
     * @return a {@link String} object
144
     */
145
    @Override public String getUnresolvedExpressionsDefaultValue() {
146 1 1. getUnresolvedExpressionsDefaultValue : replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::getUnresolvedExpressionsDefaultValue → NO_COVERAGE
        return unresolvedExpressionsDefaultValue;
147
    }
148
149
    /**
150
     * Indicates the default value to use for expressions that doesn't resolve.
151
     *
152
     * @param unresolvedExpressionsDefaultValue value to use instead for expression that doesn't resolve
153
     *
154
     * @return a {@link DocxStamperConfiguration} object
155
     *
156
     * @see DocxStamperConfiguration#replaceUnresolvedExpressions
157
     */
158
    @Deprecated(since = "2.5", forRemoval = true) @Override
159
    public DocxStamperConfiguration unresolvedExpressionsDefaultValue(String unresolvedExpressionsDefaultValue) {
160
        this.unresolvedExpressionsDefaultValue = unresolvedExpressionsDefaultValue;
161
        this.exceptionResolver = computeExceptionResolver();
162 1 1. unresolvedExpressionsDefaultValue : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::unresolvedExpressionsDefaultValue → NO_COVERAGE
        return this;
163
    }
164
165
    /**
166
     * Indicates if a default value should replace expressions that don't resolve.
167
     *
168
     * @param replaceUnresolvedExpressions true to replace null value expression with resolved value (which is null),
169
     *                                     false to leave the expression as is
170
     *
171
     * @return a {@link DocxStamperConfiguration} object
172
     */
173
    @Deprecated(since = "2.5", forRemoval = true) @Override
174
    public DocxStamperConfiguration replaceUnresolvedExpressions(boolean replaceUnresolvedExpressions) {
175
        this.replaceUnresolvedExpressions = replaceUnresolvedExpressions;
176
        this.exceptionResolver = computeExceptionResolver();
177 1 1. replaceUnresolvedExpressions : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::replaceUnresolvedExpressions → NO_COVERAGE
        return this;
178
    }
179
180
    /**
181
     * If an error is caught while evaluating an expression, the expression will be replaced with an empty string
182
     * instead
183
     * of leaving the original expression in the document.
184
     *
185
     * @param leaveEmpty true to replace expressions with empty string when an error is caught while evaluating
186
     *
187
     * @return a {@link DocxStamperConfiguration} object
188
     */
189
    @Deprecated(since = "2.5", forRemoval = true) @Override public DocxStamperConfiguration leaveEmptyOnExpressionError(
190
            boolean leaveEmpty
191
    ) {
192
        this.leaveEmptyOnExpressionError = leaveEmpty;
193
        this.exceptionResolver = computeExceptionResolver();
194 1 1. leaveEmptyOnExpressionError : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::leaveEmptyOnExpressionError → NO_COVERAGE
        return this;
195
    }
196
197
    /**
198
     * Exposes all methods of a given interface to the expression language.
199
     *
200
     * @param interfaceClass the interface whose methods should be exposed in the expression language.
201
     * @param implementation the implementation that should be called to evaluate invocations of the interface methods
202
     *                       within the expression language. Must implement the interface above.
203
     *
204
     * @return a {@link DocxStamperConfiguration} object
205
     */
206
    @Override public DocxStamperConfiguration exposeInterfaceToExpressionLanguage(
207
            Class<?> interfaceClass, Object implementation
208
    ) {
209
        this.expressionFunctions.put(interfaceClass, implementation);
210 1 1. exposeInterfaceToExpressionLanguage : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::exposeInterfaceToExpressionLanguage → KILLED
        return this;
211
    }
212
213
    /**
214
     * Registers the specified ICommentProcessor as an implementation of the
215
     * specified interface.
216
     *
217
     * @param interfaceClass          the Interface which is implemented by the commentProcessor.
218
     * @param commentProcessorFactory the commentProcessor factory generating the specified interface.
219
     *
220
     * @return a {@link DocxStamperConfiguration} object
221
     */
222
    @Override public DocxStamperConfiguration addCommentProcessor(
223
            Class<?> interfaceClass, Function<ParagraphPlaceholderReplacer, CommentProcessor> commentProcessorFactory
224
    ) {
225
        this.commentProcessors.put(interfaceClass, commentProcessorFactory);
226 1 1. addCommentProcessor : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::addCommentProcessor → SURVIVED
        return this;
227
    }
228
229
    /**
230
     * Adds a preprocessor to the configuration.
231
     *
232
     * @param preprocessor the preprocessor to add.
233
     */
234
    @Override public void addPreprocessor(PreProcessor preprocessor) {
235
        preprocessors.add(preprocessor);
236
    }
237
238
    /**
239
     * <p>Getter for the field <code>lineBreakPlaceholder</code>.</p>
240
     *
241
     * @return a {@link String} object
242
     */
243
    @Override public String getLineBreakPlaceholder() {
244 1 1. getLineBreakPlaceholder : replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::getLineBreakPlaceholder → KILLED
        return lineBreakPlaceholder;
245
    }
246
247
    /**
248
     * The String provided as lineBreakPlaceholder will be replaced with a line break
249
     * when stamping a document. If no lineBreakPlaceholder is provided, no replacement
250
     * will take place.
251
     *
252
     * @param lineBreakPlaceholder the String that should be replaced with line breaks during stamping.
253
     *
254
     * @return the configuration object for chaining.
255
     */
256
    @Override public DocxStamperConfiguration setLineBreakPlaceholder(@NonNull String lineBreakPlaceholder) {
257
        this.lineBreakPlaceholder = lineBreakPlaceholder;
258 1 1. setLineBreakPlaceholder : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setLineBreakPlaceholder → KILLED
        return this;
259
    }
260
261
    /**
262
     * <p>Getter for the field <code>evaluationContextConfigurer</code>.</p>
263
     *
264
     * @return a {@link EvaluationContextConfigurer} object
265
     */
266
    @Override public EvaluationContextConfigurer getEvaluationContextConfigurer() {
267 1 1. getEvaluationContextConfigurer : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getEvaluationContextConfigurer → KILLED
        return evaluationContextConfigurer;
268
    }
269
270
    /**
271
     * Provides an {@link EvaluationContextConfigurer} which may change the configuration of a Spring
272
     * {@link EvaluationContext} which is used for evaluating expressions
273
     * in comments and text.
274
     *
275
     * @param evaluationContextConfigurer the configurer to use.
276
     *
277
     * @return a {@link DocxStamperConfiguration} object
278
     */
279
    @Override public DocxStamperConfiguration setEvaluationContextConfigurer(
280
            EvaluationContextConfigurer evaluationContextConfigurer
281
    ) {
282
        this.evaluationContextConfigurer = evaluationContextConfigurer;
283 1 1. setEvaluationContextConfigurer : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setEvaluationContextConfigurer → KILLED
        return this;
284
    }
285
286
    /**
287
     * <p>Getter for the field <code>spelParserConfiguration</code>.</p>
288
     *
289
     * @return a {@link SpelParserConfiguration} object
290
     */
291
    @Override public SpelParserConfiguration getSpelParserConfiguration() {
292 1 1. getSpelParserConfiguration : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getSpelParserConfiguration → KILLED
        return spelParserConfiguration;
293
    }
294
295
    /**
296
     * Sets the {@link SpelParserConfiguration} to use for expression parsing.
297
     * <p>
298
     * Note that this configuration will be used for all expressions in the document, including expressions in comments!
299
     * </p>
300
     *
301
     * @param spelParserConfiguration the configuration to use.
302
     *
303
     * @return a {@link DocxStamperConfiguration} object
304
     */
305
    @Override public DocxStamperConfiguration setSpelParserConfiguration(
306
            SpelParserConfiguration spelParserConfiguration
307
    ) {
308
        this.spelParserConfiguration = spelParserConfiguration;
309 1 1. setSpelParserConfiguration : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setSpelParserConfiguration → KILLED
        return this;
310
    }
311
312
    /**
313
     * <p>Getter for the field <code>expressionFunctions</code>.</p>
314
     *
315
     * @return a {@link Map} object
316
     */
317
    @Override public Map<Class<?>, Object> getExpressionFunctions() {
318 1 1. getExpressionFunctions : replaced return value with Collections.emptyMap for pro/verron/officestamper/core/DocxStamperConfiguration::getExpressionFunctions → KILLED
        return expressionFunctions;
319
    }
320
321
    /**
322
     * <p>Getter for the field <code>commentProcessors</code>.</p>
323
     *
324
     * @return a {@link Map} object
325
     */
326
    @Override public Map<Class<?>, Function<ParagraphPlaceholderReplacer, CommentProcessor>> getCommentProcessors() {
327 1 1. getCommentProcessors : replaced return value with Collections.emptyMap for pro/verron/officestamper/core/DocxStamperConfiguration::getCommentProcessors → KILLED
        return commentProcessors;
328
    }
329
330
    /**
331
     * <p>Getter for the field <code>preprocessors</code>.</p>
332
     *
333
     * @return a {@link List} object
334
     */
335
    @Override public List<PreProcessor> getPreprocessors() {
336 1 1. getPreprocessors : replaced return value with Collections.emptyList for pro/verron/officestamper/core/DocxStamperConfiguration::getPreprocessors → SURVIVED
        return preprocessors;
337
    }
338
339
    /**
340
     * Retrieves the list of resolvers.
341
     *
342
     * @return The list of object resolvers.
343
     */
344
    @Override public List<ObjectResolver> getResolvers() {
345 1 1. getResolvers : replaced return value with Collections.emptyList for pro/verron/officestamper/core/DocxStamperConfiguration::getResolvers → KILLED
        return resolvers;
346
    }
347
348
    /**
349
     * Sets the resolvers for resolving objects in the DocxStamperConfiguration.
350
     * <p>
351
     * This method is the evolution of the method {@code addTypeResolver},
352
     * and the order in which the resolvers are ordered is determinant - the first resolvers
353
     * in the list will be tried first. If a fallback resolver is desired, it should be placed last in the list.
354
     *
355
     * @param resolvers The list of ObjectResolvers to be set.
356
     *
357
     * @return The updated DocxStamperConfiguration instance.
358
     */
359
    @Override public DocxStamperConfiguration setResolvers(
360
            List<ObjectResolver> resolvers
361
    ) {
362 1 1. setResolvers : removed call to java/util/List::clear → NO_COVERAGE
        this.resolvers.clear();
363
        this.resolvers.addAll(resolvers);
364 1 1. setResolvers : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setResolvers → NO_COVERAGE
        return this;
365
    }
366
367
    /**
368
     * Adds a resolver to the list of resolvers in the `DocxStamperConfiguration` object.
369
     * Resolvers are used to resolve objects during the stamping process.
370
     *
371
     * @param resolver The resolver to be added. This resolver should implement the `ObjectResolver` interface.
372
     *
373
     * @return The modified `DocxStamperConfiguration` object, with the resolver added to the beginning of the
374
     * resolver list.
375
     */
376
    @Override public DocxStamperConfiguration addResolver(ObjectResolver resolver) {
377 1 1. addResolver : removed call to java/util/List::add → KILLED
        resolvers.add(0, resolver);
378 1 1. addResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::addResolver → KILLED
        return this;
379
    }
380
381
    @Override public ExceptionResolver getExceptionResolver() {
382 1 1. getExceptionResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getExceptionResolver → KILLED
        return exceptionResolver;
383
    }
384
385
    @Override public DocxStamperConfiguration setExceptionResolver(ExceptionResolver exceptionResolver) {
386
        this.exceptionResolver = exceptionResolver;
387 1 1. setExceptionResolver : replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setExceptionResolver → KILLED
        return this;
388
    }
389
390
391
}

Mutations

71

1.1
Location : resetCommentProcessors
Killed by : none
removed call to java/util/Map::clear → SURVIVED
Covering tests

80

1.1
Location : resetResolvers
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#21]
removed call to java/util/List::clear → KILLED

89

1.1
Location : isFailOnUnresolvedExpression
Killed by : none
replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isFailOnUnresolvedExpression → NO_COVERAGE

2.2
Location : isFailOnUnresolvedExpression
Killed by : none
replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isFailOnUnresolvedExpression → NO_COVERAGE

105

1.1
Location : setFailOnUnresolvedExpression
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setFailOnUnresolvedExpression → NO_COVERAGE

109

1.1
Location : computeExceptionResolver
Killed by : pro.verron.officestamper.test.SpelInjectionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.SpelInjectionTest]/[method:spelInjectionTest()]
negated conditional → KILLED

2.2
Location : computeExceptionResolver
Killed by : pro.verron.officestamper.test.SpelInjectionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.SpelInjectionTest]/[method:spelInjectionTest()]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → KILLED

110

1.1
Location : computeExceptionResolver
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : computeExceptionResolver
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → NO_COVERAGE

111

1.1
Location : computeExceptionResolver
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::computeExceptionResolver → NO_COVERAGE

115

1.1
Location : replaceWithDefaultOnError
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : replaceWithDefaultOnError
Killed by : none
replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::replaceWithDefaultOnError → NO_COVERAGE

3.3
Location : replaceWithDefaultOnError
Killed by : none
negated conditional → NO_COVERAGE

119

1.1
Location : replacementDefault
Killed by : none
replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::replacementDefault → NO_COVERAGE

2.2
Location : replacementDefault
Killed by : none
negated conditional → NO_COVERAGE

128

1.1
Location : isLeaveEmptyOnExpressionError
Killed by : none
replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isLeaveEmptyOnExpressionError → NO_COVERAGE

2.2
Location : isLeaveEmptyOnExpressionError
Killed by : none
replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isLeaveEmptyOnExpressionError → NO_COVERAGE

137

1.1
Location : isReplaceUnresolvedExpressions
Killed by : none
replaced boolean return with true for pro/verron/officestamper/core/DocxStamperConfiguration::isReplaceUnresolvedExpressions → NO_COVERAGE

2.2
Location : isReplaceUnresolvedExpressions
Killed by : none
replaced boolean return with false for pro/verron/officestamper/core/DocxStamperConfiguration::isReplaceUnresolvedExpressions → NO_COVERAGE

146

1.1
Location : getUnresolvedExpressionsDefaultValue
Killed by : none
replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::getUnresolvedExpressionsDefaultValue → NO_COVERAGE

162

1.1
Location : unresolvedExpressionsDefaultValue
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::unresolvedExpressionsDefaultValue → NO_COVERAGE

177

1.1
Location : replaceUnresolvedExpressions
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::replaceUnresolvedExpressions → NO_COVERAGE

194

1.1
Location : leaveEmptyOnExpressionError
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::leaveEmptyOnExpressionError → NO_COVERAGE

210

1.1
Location : exposeInterfaceToExpressionLanguage
Killed by : pro.verron.officestamper.test.CustomFunctionTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.CustomFunctionTests]/[method:features()]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::exposeInterfaceToExpressionLanguage → KILLED

226

1.1
Location : addCommentProcessor
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::addCommentProcessor → SURVIVED
Covering tests

244

1.1
Location : getLineBreakPlaceholder
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:#34]
replaced return value with "" for pro/verron/officestamper/core/DocxStamperConfiguration::getLineBreakPlaceholder → KILLED

258

1.1
Location : setLineBreakPlaceholder
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)]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setLineBreakPlaceholder → KILLED

267

1.1
Location : getEvaluationContextConfigurer
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#17]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getEvaluationContextConfigurer → KILLED

283

1.1
Location : setEvaluationContextConfigurer
Killed by : pro.verron.officestamper.test.SpelInstantiationTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.SpelInstantiationTest]/[method:testDateInstantiationAndResolution()]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setEvaluationContextConfigurer → KILLED

292

1.1
Location : getSpelParserConfiguration
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#17]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getSpelParserConfiguration → KILLED

309

1.1
Location : setSpelParserConfiguration
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)]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setSpelParserConfiguration → KILLED

318

1.1
Location : getExpressionFunctions
Killed by : pro.verron.officestamper.test.RegressionTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.RegressionTests]/[method:test64()]
replaced return value with Collections.emptyMap for pro/verron/officestamper/core/DocxStamperConfiguration::getExpressionFunctions → KILLED

327

1.1
Location : getCommentProcessors
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:#21]
replaced return value with Collections.emptyMap for pro/verron/officestamper/core/DocxStamperConfiguration::getCommentProcessors → KILLED

336

1.1
Location : getPreprocessors
Killed by : none
replaced return value with Collections.emptyList for pro/verron/officestamper/core/DocxStamperConfiguration::getPreprocessors → SURVIVED
Covering tests

345

1.1
Location : getResolvers
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:#25]
replaced return value with Collections.emptyList for pro/verron/officestamper/core/DocxStamperConfiguration::getResolvers → KILLED

362

1.1
Location : setResolvers
Killed by : none
removed call to java/util/List::clear → NO_COVERAGE

364

1.1
Location : setResolvers
Killed by : none
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setResolvers → NO_COVERAGE

377

1.1
Location : addResolver
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#8]
removed call to java/util/List::add → KILLED

378

1.1
Location : addResolver
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)]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::addResolver → KILLED

382

1.1
Location : getExceptionResolver
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#17]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::getExceptionResolver → KILLED

387

1.1
Location : setExceptionResolver
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[method:fails()]
replaced return value with null for pro/verron/officestamper/core/DocxStamperConfiguration::setExceptionResolver → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0