WrapExceptionMessagingService.java

1
package fr.sii.ogham.core.service;
2
3
import fr.sii.ogham.core.exception.MessagingException;
4
import fr.sii.ogham.core.exception.MessagingRuntimeException;
5
import fr.sii.ogham.core.message.Message;
6
7
/**
8
 * Decorator that catch all exceptions including {@link RuntimeException}. It
9
 * translates any exceptions into {@link MessagingException}.
10
 * 
11
 * @author Aurélien Baudet
12
 */
13
public class WrapExceptionMessagingService implements MessagingService {
14
	/**
15
	 * The delegate service that will really send messages
16
	 */
17
	private MessagingService delegate;
18
19
	public WrapExceptionMessagingService(MessagingService delegate) {
20
		super();
21
		this.delegate = delegate;
22
	}
23
24
	/**
25
	 * Sends the message. The message can be anything with any content and that
26
	 * must be delivered to something or someone.
27
	 * 
28
	 * If there is any exception, it caught and translated in
29
	 * {@link MessagingException}.
30
	 * 
31
	 * @param message
32
	 *            the message to send
33
	 * @throws MessagingException
34
	 *             when the message couldn't be sent
35
	 */
36
	@Override
37
	@SuppressWarnings("squid:S2221")
38
	public void send(Message message) throws MessagingException {
39
		try {
40 6 1. send : removed call to fr/sii/ogham/core/service/MessagingService::send → NO_COVERAGE
2. send : removed call to fr/sii/ogham/core/service/MessagingService::send → TIMED_OUT
3. send : removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED
4. send : removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED
5. send : removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED
6. send : removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED
			delegate.send(message);
41
		} catch (MessagingException e) {
42
			throw e; // this is wanted to avoid wrapping MessagingException with
43
						// MessagingException
44
		} catch (MessagingRuntimeException e) {
45
			throw new MessagingException("Message can't be sent due to technical exception. Cause: " + e.getMessage(), e);
46
		} catch (IllegalArgumentException e) {
47
			throw new MessagingException("Message can't be sent due to precondition not met. Cause: " + e.getMessage(), e);
48
		} catch (IllegalStateException e) {
49
			throw new MessagingException("Message can't be sent due to some illegal use. Cause: " + e.getMessage(), e);
50
		} catch (Exception e) {
51
			throw new MessagingException("Message can't be sent due to uncaught exception. Cause: " + e.getMessage(), e);
52
		}
53
	}
54
}

Mutations

40

1.1
Location : send
Killed by : none
removed call to fr/sii/ogham/core/service/MessagingService::send → TIMED_OUT

2.2
Location : send
Killed by : oghamcloudhopper.it.AutoRetryExtensionTest.smsNotRetriedDueToCloudhopperError(oghamcloudhopper.it.AutoRetryExtensionTest)
removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED

3.3
Location : send
Killed by : oghamjavamail.it.UnreadableAttachmentTest.attachmentUnreadable(oghamjavamail.it.UnreadableAttachmentTest)
removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED

4.4
Location : send
Killed by : none
removed call to fr/sii/ogham/core/service/MessagingService::send → NO_COVERAGE

5.5
Location : send
Killed by : oghamcore.ut.core.WrapExceptionMessagingServiceTest.messagingRuntimeExceptionShouldBeWrapped(oghamcore.ut.core.WrapExceptionMessagingServiceTest)
removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED

6.6
Location : send
Killed by : oghamall.it.sms.SmsCustomImplTest.simple(oghamall.it.sms.SmsCustomImplTest)
removed call to fr/sii/ogham/core/service/MessagingService::send → KILLED

Active mutators

Tests examined


Report generated by PIT OGHAM