JavaxMailConsistencyChecker.java

1
package fr.sii.ogham.email.builder.javaxmail;
2
3
import fr.sii.ogham.core.exception.MessagingException;
4
5
import javax.activation.DataContentHandler;
6
import javax.activation.MailcapCommandMap;
7
import javax.mail.Provider;
8
import javax.mail.Session;
9
import java.util.ArrayList;
10
import java.util.List;
11
import java.util.Properties;
12
13
import static java.util.Arrays.asList;
14
15
public class JavaxMailConsistencyChecker {
16
    public static List<Provider> checkMailProvidersAvailable() throws JavaxMailConsistencyException {
17
        try {
18
            Provider[] providers = Session.getInstance(new Properties()).getProviders();
19 1 1. checkMailProvidersAvailable : replaced return value with Collections.emptyList for fr/sii/ogham/email/builder/javaxmail/JavaxMailConsistencyChecker::checkMailProvidersAvailable → RUN_ERROR
            return asList(providers);
20
        } catch(Exception | NoClassDefFoundError e) {
21
            throw new JavaxMailProvidersLoadFailed(e);
22
        }
23
    }
24
25
    public static List<DataContentHandler> checkDataHandlersAvailable() throws JavaxMailConsistencyException {
26
        try {
27
            MailcapCommandMap commandMap = new MailcapCommandMap();
28
            List<DataContentHandler> found = new ArrayList<>();
29
            for (String mimetype : commandMap.getMimeTypes()) {
30
                DataContentHandler dataContentHandler = commandMap.createDataContentHandler(mimetype);
31 1 1. checkDataHandlersAvailable : negated conditional → NO_COVERAGE
                if (dataContentHandler != null) {
32
                    found.add(dataContentHandler);
33
                }
34
            }
35 1 1. checkDataHandlersAvailable : replaced return value with Collections.emptyList for fr/sii/ogham/email/builder/javaxmail/JavaxMailConsistencyChecker::checkDataHandlersAvailable → NO_COVERAGE
            return found;
36
        } catch(Exception | NoClassDefFoundError e) {
37
            throw new JavaxDataHandlersLoadFailed(e);
38
        }
39
    }
40
41
    public static class JavaxMailConsistencyException extends MessagingException {
42
        public JavaxMailConsistencyException(String message, Throwable cause) {
43
            super(message, cause);
44
        }
45
    }
46
47
    public static class JavaxMailProvidersLoadFailed extends JavaxMailConsistencyException {
48
        public JavaxMailProvidersLoadFailed(Throwable cause) {
49
            super("javax.mail.Provider implementations can't be loaded. Cause: "+cause.getMessage(), cause);
50
        }
51
    }
52
53
    public static class JavaxDataHandlersLoadFailed extends JavaxMailConsistencyException {
54
        public JavaxDataHandlersLoadFailed(Throwable cause) {
55
            super("javax.activation.DataHandler implementations can't be loaded. Cause: "+cause.getMessage(), cause);
56
        }
57
    }
58
}

Mutations

19

1.1
Location : checkMailProvidersAvailable
Killed by :
replaced return value with Collections.emptyList for fr/sii/ogham/email/builder/javaxmail/JavaxMailConsistencyChecker::checkMailProvidersAvailable → RUN_ERROR

31

1.1
Location : checkDataHandlersAvailable
Killed by :
negated conditional → NO_COVERAGE

35

1.1
Location : checkDataHandlersAvailable
Killed by :
replaced return value with Collections.emptyList for fr/sii/ogham/email/builder/javaxmail/JavaxMailConsistencyChecker::checkDataHandlersAvailable → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.13.1