MultiContentSubjectProvider.java

1
package fr.sii.ogham.core.subject.provider;
2
3
import fr.sii.ogham.core.message.Message;
4
import fr.sii.ogham.core.message.content.Content;
5
import fr.sii.ogham.core.message.content.MultiContent;
6
7
/**
8
 * Subject provider that is able to handle messages with {@link MultiContent}.
9
 * The aim is to try to generate a subject from the {@link MultiContent}. The
10
 * subject generation is delegated to another subject provider. Each part of the
11
 * {@link MultiContent} is extracted and the delegated subject provider is
12
 * called with the content part.
13
 * <ul>
14
 * <li>
15
 * If one of the content part could be used to generate the subject then this
16
 * subject is returned.</li>
17
 * <li>If several content parts could be used to generate the subject then only
18
 * the first generated subject is used.</li>
19
 * <li>If none of the content part could generate a subject then
20
 * <code>null</code> is returned.</li>
21
 * <li>If the content is not a {@link MultiContent} then null is returned.</li>
22
 * </ul>
23
 * 
24
 * @author Aurélien Baudet
25
 *
26
 */
27
public class MultiContentSubjectProvider implements SubjectProvider {
28
	/**
29
	 * The delegate subject provider that is applied on every content part
30
	 */
31
	private SubjectProvider provider;
32
33
	public MultiContentSubjectProvider(SubjectProvider provider) {
34
		super();
35
		this.provider = provider;
36
	}
37
38
	@Override
39
	public String provide(Message message) {
40 3 1. provide : negated conditional → NO_COVERAGE
2. provide : negated conditional → KILLED
3. provide : negated conditional → KILLED
		if (message.getContent() instanceof MultiContent) {
41
			MultiContent multiContent = (MultiContent) message.getContent();
42
			for (Content content : multiContent.getContents()) {
43 3 1. provide : removed call to fr/sii/ogham/core/message/Message::setContent → NO_COVERAGE
2. provide : removed call to fr/sii/ogham/core/message/Message::setContent → KILLED
3. provide : removed call to fr/sii/ogham/core/message/Message::setContent → KILLED
				message.setContent(content);
44
				String subject = provider.provide(message);
45 3 1. provide : removed call to fr/sii/ogham/core/message/Message::setContent → NO_COVERAGE
2. provide : removed call to fr/sii/ogham/core/message/Message::setContent → SURVIVED
3. provide : removed call to fr/sii/ogham/core/message/Message::setContent → KILLED
				message.setContent(multiContent);
46 3 1. provide : negated conditional → NO_COVERAGE
2. provide : negated conditional → KILLED
3. provide : negated conditional → KILLED
				if (subject != null) {
47 3 1. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → NO_COVERAGE
2. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED
3. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED
					return subject;
48
				}
49
			}
50
		}
51 3 1. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → NO_COVERAGE
2. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED
3. provide : replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED
		return null;
52
	}
53
54
}

Mutations

40

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

2.2
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.subjectExtractedFromTextWithDefaultSubjectShouldSendWithSubjectExtractedFromText(oghamall.it.email.EmailExtractSubjectTest)
negated conditional → KILLED

3.3
Location : provide
Killed by : oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest.single(oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest)
negated conditional → KILLED

43

1.1
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.subjectExtractedFromTextWithDefaultSubjectShouldSendWithSubjectExtractedFromText(oghamall.it.email.EmailExtractSubjectTest)
removed call to fr/sii/ogham/core/message/Message::setContent → KILLED

2.2
Location : provide
Killed by : none
removed call to fr/sii/ogham/core/message/Message::setContent → NO_COVERAGE

3.3
Location : provide
Killed by : oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest.noneAndEmpty(oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest)
removed call to fr/sii/ogham/core/message/Message::setContent → KILLED

45

1.1
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.subjectExtractedFromTextWithDefaultSubjectShouldSendWithSubjectExtractedFromText(oghamall.it.email.EmailExtractSubjectTest)
removed call to fr/sii/ogham/core/message/Message::setContent → KILLED

2.2
Location : provide
Killed by : none
removed call to fr/sii/ogham/core/message/Message::setContent → NO_COVERAGE

3.3
Location : provide
Killed by : none
removed call to fr/sii/ogham/core/message/Message::setContent → SURVIVED

46

1.1
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.subjectExtractedFromTextWithDefaultSubjectShouldSendWithSubjectExtractedFromText(oghamall.it.email.EmailExtractSubjectTest)
negated conditional → KILLED

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

3.3
Location : provide
Killed by : oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest.noneAndEmpty(oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest)
negated conditional → KILLED

47

1.1
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.subjectExtractedFromTextWithDefaultSubjectShouldSendWithSubjectExtractedFromText(oghamall.it.email.EmailExtractSubjectTest)
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED

2.2
Location : provide
Killed by : none
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → NO_COVERAGE

3.3
Location : provide
Killed by : oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest.noneAndTxt(oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest)
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED

51

1.1
Location : provide
Killed by : none
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → NO_COVERAGE

2.2
Location : provide
Killed by : oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest.single(oghamcore.ut.email.subject.provider.MultiContentSubjectProviderTest)
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED

3.3
Location : provide
Killed by : oghamall.it.email.EmailExtractSubjectTest.noSubjectInContentsWithoutDefaultSubjectShouldSendWithoutSubject(oghamall.it.email.EmailExtractSubjectTest)
replaced return value with "" for fr/sii/ogham/core/subject/provider/MultiContentSubjectProvider::provide → KILLED

Active mutators

Tests examined


Report generated by PIT OGHAM