SimpleReplaceMimetypeBuilder.java

1
package fr.sii.ogham.core.builder.mimetype;
2
3
import java.util.ArrayList;
4
import java.util.List;
5
import java.util.regex.Pattern;
6
7
import fr.sii.ogham.core.builder.Builder;
8
import fr.sii.ogham.core.fluent.AbstractParent;
9
import fr.sii.ogham.core.mimetype.replace.ContainsMimetypeReplacer;
10
import fr.sii.ogham.core.mimetype.replace.FirstMatchingMimetypeReplacer;
11
import fr.sii.ogham.core.mimetype.replace.MimetypeReplacer;
12
import fr.sii.ogham.core.mimetype.replace.PatternMimetypeReplacer;
13
14
/**
15
 * 
16
 * @author Aurélien Baudet
17
 *
18
 * @param <P>
19
 *            the type of the parent builder (when calling {@link #and()}
20
 *            method)
21
 */
22
public class SimpleReplaceMimetypeBuilder<P> extends AbstractParent<P> implements ReplaceMimetypeBuilder<P> {
23
	private final List<Builder<MimetypeReplacer>> delegates;
24
25
	/**
26
	 * Initializes the builder with the parent instance (used by the
27
	 * {@link #and()} method).
28
	 * 
29
	 * @param parent
30
	 *            the parent instance
31
	 */
32
	public SimpleReplaceMimetypeBuilder(P parent) {
33
		super(parent);
34
		delegates = new ArrayList<>();
35
	}
36
37
	@Override
38
	public ReplaceMimetypeBuilder<P> contains(String contains, String replacement) {
39
		delegates.add(new ContainsReplacement(contains, true, replacement));
40 1 1. contains : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::contains → NO_COVERAGE
		return this;
41
	}
42
43
	@Override
44
	public ReplaceMimetypeBuilder<P> contains(String contains, boolean ignoreCase, String replacement) {
45
		delegates.add(new ContainsReplacement(contains, ignoreCase, replacement));
46 1 1. contains : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::contains → NO_COVERAGE
		return this;
47
	}
48
49
	@Override
50
	public ReplaceMimetypeBuilder<P> pattern(String matchingPattern, String replacement) {
51
		delegates.add(new PatternReplacement(Pattern.compile(matchingPattern), replacement));
52 2 1. pattern : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → NO_COVERAGE
2. pattern : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → SURVIVED
		return this;
53
	}
54
55
	@Override
56
	public ReplaceMimetypeBuilder<P> pattern(Pattern matchingPattern, String replacement) {
57
		delegates.add(new PatternReplacement(matchingPattern, replacement));
58 1 1. pattern : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → NO_COVERAGE
		return this;
59
	}
60
61
	@Override
62
	public MimetypeReplacer build() {
63
		List<MimetypeReplacer> replacers = new ArrayList<>();
64
		for (Builder<MimetypeReplacer> builder : delegates) {
65
			replacers.add(builder.build());
66
		}
67 5 1. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → NO_COVERAGE
2. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → TIMED_OUT
3. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED
4. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED
5. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED
		return new FirstMatchingMimetypeReplacer(replacers);
68
	}
69
70
	private static class PatternReplacement implements Builder<MimetypeReplacer> {
71
		private final Pattern pattern;
72
		private final String replacement;
73
74
		public PatternReplacement(Pattern pattern, String replacement) {
75
			super();
76
			this.pattern = pattern;
77
			this.replacement = replacement;
78
		}
79
80
		@Override
81
		public MimetypeReplacer build() {
82 5 1. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → NO_COVERAGE
2. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED
3. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED
4. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED
5. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED
			return new PatternMimetypeReplacer(pattern, replacement);
83
		}
84
85
	}
86
87
	private static class ContainsReplacement implements Builder<MimetypeReplacer> {
88
		private final String contains;
89
		private final boolean ignoreCase;
90
		private final String replacement;
91
92
		public ContainsReplacement(String contains, boolean ignoreCase, String replacement) {
93
			super();
94
			this.contains = contains;
95
			this.ignoreCase = ignoreCase;
96
			this.replacement = replacement;
97
		}
98
99
		@Override
100
		public MimetypeReplacer build() {
101 1 1. build : replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$ContainsReplacement::build → NO_COVERAGE
			return new ContainsMimetypeReplacer(contains, ignoreCase, replacement);
102
		}
103
104
	}
105
}

Mutations

40

1.1
Location : contains
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::contains → NO_COVERAGE

46

1.1
Location : contains
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::contains → NO_COVERAGE

52

1.1
Location : pattern
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → NO_COVERAGE

2.2
Location : pattern
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → SURVIVED

58

1.1
Location : pattern
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::pattern → NO_COVERAGE

67

1.1
Location : build
Killed by : oghamall.it.configuration.EmptyBuilderTest.emailSenderManuallyRegisteredButUnconfiguredResourceResolutionCantAttachFilesFromPath(oghamall.it.configuration.EmptyBuilderTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED

2.2
Location : build
Killed by : oghamspringbootv1autoconfigure.it.StaticMethodsAccessTest.emailUsingFreemarkerTemplateShouldBeAbleToCallStaticMethods(oghamspringbootv1autoconfigure.it.StaticMethodsAccessTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED

3.3
Location : build
Killed by : oghamjavamail.it.UnreadableAttachmentTest.attachmentUnreadable(oghamjavamail.it.UnreadableAttachmentTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → KILLED

4.4
Location : build
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → TIMED_OUT

5.5
Location : build
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder::build → NO_COVERAGE

82

1.1
Location : build
Killed by : oghamall.it.configuration.EmptyBuilderTest.emailSenderManuallyRegisteredButUnconfiguredResourceResolutionCantAttachFilesFromPath(oghamall.it.configuration.EmptyBuilderTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED

2.2
Location : build
Killed by : oghamspringbootv1autoconfigure.it.StaticMethodsAccessTest.emailUsingFreemarkerTemplateShouldBeAbleToCallStaticMethods(oghamspringbootv1autoconfigure.it.StaticMethodsAccessTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED

3.3
Location : build
Killed by : oghamjavamail.it.UnreadableAttachmentTest.attachmentUnreadable(oghamjavamail.it.UnreadableAttachmentTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED

4.4
Location : build
Killed by : oghamspringbootv2autoconfigure.it.StaticMethodAccessTest.emailUsingFreemarkerTemplateShouldBeAbleToCallStaticMethodsWithCustomVariableName(oghamspringbootv2autoconfigure.it.StaticMethodAccessTest)
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → KILLED

5.5
Location : build
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$PatternReplacement::build → NO_COVERAGE

101

1.1
Location : build
Killed by : none
replaced return value with null for fr/sii/ogham/core/builder/mimetype/SimpleReplaceMimetypeBuilder$ContainsReplacement::build → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT OGHAM