JavaMailConsistencyChecker.java

1
package fr.sii.ogham.email.builder.javamail;
2
3
import fr.sii.ogham.core.exception.MessagingException;
4
5
import jakarta.activation.DataContentHandler;
6
import jakarta.activation.MailcapCommandMap;
7
import jakarta.mail.Provider;
8
import jakarta.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 JavaMailConsistencyChecker {
16
    public static List<Provider> checkMailProvidersAvailable() throws JavaMailConsistencyException {
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/javamail/JavaMailConsistencyChecker::checkMailProvidersAvailable → RUN_ERROR
            return asList(providers);
20
        } catch(Exception | NoClassDefFoundError e) {
21
            throw new JavaMailProvidersLoadFailed(e);
22
        }
23
    }
24
25
    public static List<DataContentHandler> checkDataHandlersAvailable() throws JavaMailConsistencyException {
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 → RUN_ERROR
                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/javamail/JavaMailConsistencyChecker::checkDataHandlersAvailable → RUN_ERROR
            return found;
36
        } catch(Exception | NoClassDefFoundError e) {
37
            throw new JavaDataHandlersLoadFailed(e);
38
        }
39
    }
40
41
    public static class JavaMailConsistencyException extends MessagingException {
42
        public JavaMailConsistencyException(String message, Throwable cause) {
43
            super(message, cause);
44
        }
45
    }
46
47
    public static class JavaMailProvidersLoadFailed extends JavaMailConsistencyException {
48
        public JavaMailProvidersLoadFailed(Throwable cause) {
49
            super("jakarta.mail.Provider implementations can't be loaded. Cause: "+cause.getMessage(), cause);
50
        }
51
    }
52
53
    public static class JavaDataHandlersLoadFailed extends JavaMailConsistencyException {
54
        public JavaDataHandlersLoadFailed(Throwable cause) {
55
            super("jakarta.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/javamail/JavaMailConsistencyChecker::checkMailProvidersAvailable → RUN_ERROR

31

1.1
Location : checkDataHandlersAvailable
Killed by :
negated conditional → RUN_ERROR

35

1.1
Location : checkDataHandlersAvailable
Killed by :
replaced return value with Collections.emptyList for fr/sii/ogham/email/builder/javamail/JavaMailConsistencyChecker::checkDataHandlersAvailable → RUN_ERROR

Active mutators

Tests examined


Report generated by PIT 1.13.1