|
1
|
|
package org.europa.together.application; |
|
2
|
|
|
|
3
|
|
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; |
|
4
|
|
import jakarta.activation.DataHandler; |
|
5
|
|
import jakarta.activation.DataSource; |
|
6
|
|
import jakarta.mail.MessagingException; |
|
7
|
|
import jakarta.mail.Multipart; |
|
8
|
|
import jakarta.mail.NoSuchProviderException; |
|
9
|
|
import jakarta.mail.PasswordAuthentication; |
|
10
|
|
import jakarta.mail.Session; |
|
11
|
|
import jakarta.mail.internet.InternetAddress; |
|
12
|
|
import jakarta.mail.internet.MimeBodyPart; |
|
13
|
|
import jakarta.mail.internet.MimeMessage; |
|
14
|
|
import jakarta.mail.internet.MimeMultipart; |
|
15
|
|
import java.io.IOException; |
|
16
|
|
import java.util.Date; |
|
17
|
|
import java.util.HashMap; |
|
18
|
|
import java.util.List; |
|
19
|
|
import java.util.Map; |
|
20
|
|
import java.util.Properties; |
|
21
|
|
import jakarta.activation.FileDataSource; |
|
22
|
|
import org.europa.together.business.ConfigurationDAO; |
|
23
|
|
import org.europa.together.business.CryptoTools; |
|
24
|
|
import org.europa.together.business.Logger; |
|
25
|
|
import org.europa.together.business.MailClient; |
|
26
|
|
import org.europa.together.business.PropertyReader; |
|
27
|
|
import org.europa.together.domain.ConfigurationDO; |
|
28
|
|
import org.europa.together.domain.HashAlgorithm; |
|
29
|
|
import org.europa.together.domain.LogLevel; |
|
30
|
|
import org.europa.together.domain.Mail; |
|
31
|
|
import org.europa.together.utils.Constraints; |
|
32
|
|
import org.europa.together.utils.StringUtils; |
|
33
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
34
|
|
import org.springframework.stereotype.Repository; |
|
35
|
|
|
|
36
|
|
/** |
|
37
|
|
* Implementation of a simple SMTP Mailer. |
|
38
|
|
*/ |
|
39
|
|
@Repository |
|
40
|
|
public class JakartaMailClient implements MailClient { |
|
41
|
|
|
|
42
|
|
private static final long serialVersionUID = 6L; |
|
43
|
|
private static final Logger LOGGER = new LogbackLogger(JakartaMailClient.class); |
|
44
|
|
|
|
45
|
|
@Autowired |
|
46
|
|
private ConfigurationDAO configurationDAO; |
|
47
|
|
@Autowired |
|
48
|
|
private CryptoTools cryptoTools; |
|
49
|
|
@Autowired |
|
50
|
|
private PropertyReader propertyReader; |
|
51
|
|
|
|
52
|
|
private Map<String, String> configuration; |
|
53
|
|
private MimeMessage message; |
|
54
|
|
private Mail email; |
|
55
|
|
private int configMaximumMailBulk; |
|
56
|
|
private long configCountWaitTime; |
|
57
|
|
|
|
58
|
|
/** |
|
59
|
|
* Constructor. |
|
60
|
|
*/ |
|
61
|
|
public JakartaMailClient() { |
|
62
|
1
1. <init> : removed call to org/europa/together/application/JakartaMailClient::initConfig → KILLED
|
initConfig(); |
|
63
|
|
configMaximumMailBulk = -1; |
|
64
|
|
configCountWaitTime = -1; |
|
65
|
|
LOGGER.log("instance class", LogLevel.INFO); |
|
66
|
|
} |
|
67
|
|
|
|
68
|
|
@Override |
|
69
|
|
public Map<String, String> getDebugActiveConfiguration() { |
|
70
|
1
1. getDebugActiveConfiguration : replaced return value with Collections.emptyMap for org/europa/together/application/JakartaMailClient::getDebugActiveConfiguration → KILLED
|
return Map.copyOf(configuration); |
|
71
|
|
} |
|
72
|
|
|
|
73
|
|
@Override |
|
74
|
|
public void clearConfiguration() { |
|
75
|
1
1. clearConfiguration : removed call to java/util/Map::clear → KILLED
|
configuration.clear(); |
|
76
|
|
} |
|
77
|
|
|
|
78
|
|
@Override |
|
79
|
|
public boolean loadConfigurationFromProperties(final String resource) |
|
80
|
|
throws IOException { |
|
81
|
|
boolean success = true; |
|
82
|
1
1. loadConfigurationFromProperties : removed call to org/europa/together/application/JakartaMailClient::initConfig → SURVIVED
|
initConfig(); |
|
83
|
|
Map<String, String> properties = new HashMap<>(); |
|
84
|
|
try { |
|
85
|
|
propertyReader.appendPropertiesFromClasspath(resource); |
|
86
|
|
properties = propertyReader.getPropertyList(); |
|
87
|
|
} catch (Exception ex) { |
|
88
|
|
success = false; |
|
89
|
|
LOGGER.catchException(ex); |
|
90
|
|
} |
|
91
|
|
|
|
92
|
|
try { |
|
93
|
|
propertyReader.appendPropertiesFromFile(resource); |
|
94
|
|
properties = propertyReader.getPropertyList(); |
|
95
|
|
} catch (Exception ex) { |
|
96
|
|
success = false; |
|
97
|
|
LOGGER.catchException(ex); |
|
98
|
|
} |
|
99
|
|
|
|
100
|
1
1. loadConfigurationFromProperties : negated conditional → KILLED
|
if (!properties.isEmpty()) { |
|
101
|
1
1. loadConfigurationFromProperties : removed call to java/util/Map::putAll → KILLED
|
configuration.putAll(properties); |
|
102
|
|
} else { |
|
103
|
|
success = false; |
|
104
|
|
throw new IOException("Could not load " + resource + " from file system or classpath."); |
|
105
|
|
} |
|
106
|
2
1. loadConfigurationFromProperties : replaced boolean return with false for org/europa/together/application/JakartaMailClient::loadConfigurationFromProperties → SURVIVED
2. loadConfigurationFromProperties : replaced boolean return with true for org/europa/together/application/JakartaMailClient::loadConfigurationFromProperties → SURVIVED
|
return success; |
|
107
|
|
} |
|
108
|
|
|
|
109
|
|
@Override |
|
110
|
|
public boolean loadConfigurationFromDatabase() { |
|
111
|
|
boolean success = false; |
|
112
|
1
1. loadConfigurationFromDatabase : removed call to org/europa/together/application/JakartaMailClient::initConfig → KILLED
|
initConfig(); |
|
113
|
|
LOGGER.log("Load all configuration sets of: " + CONFIG_SET |
|
114
|
|
+ " - Version: " + CONFIG_VERSION |
|
115
|
|
+ " - Module: " + Constraints.MODULE_NAME, LogLevel.DEBUG); |
|
116
|
|
List<ConfigurationDO> configurationEntries |
|
117
|
|
= configurationDAO.getAllConfigurationSetEntries(Constraints.MODULE_NAME, |
|
118
|
|
CONFIG_VERSION, CONFIG_SET); |
|
119
|
|
LOGGER.log("Size of config SET: " + configurationEntries.size(), LogLevel.DEBUG); |
|
120
|
2
1. loadConfigurationFromDatabase : negated conditional → KILLED
2. loadConfigurationFromDatabase : changed conditional boundary → KILLED
|
if (configurationEntries.size() > 0) { |
|
121
|
1
1. loadConfigurationFromDatabase : removed call to org/europa/together/application/JakartaMailClient::processConfiguration → KILLED
|
processConfiguration(configurationEntries); |
|
122
|
|
success = true; |
|
123
|
|
} |
|
124
|
|
LOGGER.log("DB CONFIG: " + configuration, LogLevel.DEBUG); |
|
125
|
2
1. loadConfigurationFromDatabase : replaced boolean return with true for org/europa/together/application/JakartaMailClient::loadConfigurationFromDatabase → KILLED
2. loadConfigurationFromDatabase : replaced boolean return with false for org/europa/together/application/JakartaMailClient::loadConfigurationFromDatabase → KILLED
|
return success; |
|
126
|
|
} |
|
127
|
|
|
|
128
|
|
@Override |
|
129
|
|
public int getBulkMailLimiter() { |
|
130
|
1
1. getBulkMailLimiter : replaced int return with 0 for org/europa/together/application/JakartaMailClient::getBulkMailLimiter → KILLED
|
return this.configMaximumMailBulk; |
|
131
|
|
} |
|
132
|
|
|
|
133
|
|
@Override |
|
134
|
|
public long getWaitTime() { |
|
135
|
1
1. getWaitTime : replaced long return with 0 for org/europa/together/application/JakartaMailClient::getWaitTime → KILLED
|
return this.configCountWaitTime; |
|
136
|
|
} |
|
137
|
|
|
|
138
|
|
@Override |
|
139
|
|
public void composeMail(final Mail email) |
|
140
|
|
throws MessagingException { |
|
141
|
|
MimeMessage mimeMessage = null; |
|
142
|
|
LOGGER.log("Compose E-Mail", LogLevel.DEBUG); |
|
143
|
|
mimeMessage = new MimeMessage(getSession()); |
|
144
|
|
//HEADER - EVENLOPE |
|
145
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setHeader → SURVIVED
|
mimeMessage.setHeader("From: ", configuration.get("mailer.sender")); |
|
146
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setHeader → SURVIVED
|
mimeMessage.setHeader("Return-Path: ", configuration.get("mailer.sender")); |
|
147
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setSentDate → SURVIVED
|
mimeMessage.setSentDate(new Date()); |
|
148
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setSubject → KILLED
|
mimeMessage.setSubject(email.getSubject()); |
|
149
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setFrom → SURVIVED
|
mimeMessage.setFrom(new InternetAddress(configuration.get("mailer.sender"))); |
|
150
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setSender → KILLED
|
mimeMessage.setSender(new InternetAddress(configuration.get("mailer.sender"))); |
|
151
|
|
LOGGER.log("E-Mail {evenlope} done", LogLevel.DEBUG); |
|
152
|
|
// CONTENT |
|
153
|
|
MimeBodyPart bodypart = new MimeBodyPart(); |
|
154
|
1
1. composeMail : negated conditional → SURVIVED
|
if (email.getMimeType().equals("html")) { |
|
155
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeBodyPart::setContent → SURVIVED
|
bodypart.setContent(email.getMessage(), "text/html; charset=utf-8"); |
|
156
|
|
} else { |
|
157
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeBodyPart::setText → SURVIVED
|
bodypart.setText(email.getMessage(), "utf-8"); |
|
158
|
|
} |
|
159
|
|
LOGGER.log("E-Mail {content} done", LogLevel.DEBUG); |
|
160
|
|
// ATTACHMENTS : http://www.jguru.com/faq/view.jsp?EID=30251 |
|
161
|
|
Multipart multipart = new MimeMultipart(); |
|
162
|
1
1. composeMail : removed call to jakarta/mail/Multipart::addBodyPart → SURVIVED
|
multipart.addBodyPart(bodypart); |
|
163
|
1
1. composeMail : negated conditional → SURVIVED
|
if (!email.getAttachmentList().isEmpty()) { |
|
164
|
|
for (FileDataSource file : email.getAttachmentList()) { |
|
165
|
|
DataSource source = file; |
|
166
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeBodyPart::setDataHandler → SURVIVED
|
bodypart.setDataHandler(new DataHandler(source)); |
|
167
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeBodyPart::setFileName → SURVIVED
|
bodypart.setFileName(file.getName()); |
|
168
|
1
1. composeMail : removed call to jakarta/mail/Multipart::addBodyPart → SURVIVED
|
multipart.addBodyPart(bodypart); |
|
169
|
|
} |
|
170
|
|
} |
|
171
|
|
LOGGER.log("E-Mail {atachments} done", LogLevel.DEBUG); |
|
172
|
1
1. composeMail : removed call to jakarta/mail/internet/MimeMessage::setContent → SURVIVED
|
mimeMessage.setContent(multipart); |
|
173
|
|
this.message = mimeMessage; |
|
174
|
|
this.email = new Mail(email); |
|
175
|
|
} |
|
176
|
|
|
|
177
|
|
@Override |
|
178
|
|
public Session getSession() |
|
179
|
|
throws NoSuchProviderException { |
|
180
|
|
Session connection = Session.getInstance(wireConfigurationEntries(), |
|
181
|
|
new jakarta.mail.Authenticator() { |
|
182
|
|
@Override |
|
183
|
|
protected PasswordAuthentication getPasswordAuthentication() { |
|
184
|
1
1. getPasswordAuthentication : replaced return value with null for org/europa/together/application/JakartaMailClient$1::getPasswordAuthentication → KILLED
|
return new PasswordAuthentication( |
|
185
|
|
configuration.get("mailer.user"), |
|
186
|
|
configuration.get("mailer.password") |
|
187
|
|
); |
|
188
|
|
} |
|
189
|
|
}); |
|
190
|
1
1. getSession : removed call to jakarta/mail/Session::setDebug → SURVIVED
|
connection.setDebug(Boolean.valueOf(configuration.get("mailer.debug"))); |
|
191
|
1
1. getSession : replaced return value with null for org/europa/together/application/JakartaMailClient::getSession → KILLED
|
return connection; |
|
192
|
|
} |
|
193
|
|
|
|
194
|
|
@Override |
|
195
|
|
public Mail getMailObject() { |
|
196
|
1
1. getMailObject : replaced return value with null for org/europa/together/application/JakartaMailClient::getMailObject → KILLED
|
return new Mail(email); |
|
197
|
|
} |
|
198
|
|
|
|
199
|
|
@Override |
|
200
|
|
public MimeMessage getMimeMessage() { |
|
201
|
|
final MimeMessage msg = this.message; |
|
202
|
1
1. getMimeMessage : replaced return value with null for org/europa/together/application/JakartaMailClient::getMimeMessage → KILLED
|
return msg; |
|
203
|
|
} |
|
204
|
|
|
|
205
|
|
@SuppressFBWarnings |
|
206
|
|
//SpotBugs: hard coded Password |
|
207
|
|
private void initConfig() { |
|
208
|
|
this.configuration = new HashMap<>(); |
|
209
|
|
configuration.put("mailer.host", "mailer.host"); |
|
210
|
|
configuration.put("mailer.port", "mailer.port"); |
|
211
|
|
configuration.put("mailer.sender", "mailer.sender"); |
|
212
|
|
configuration.put("mailer.user", "mailer.user"); |
|
213
|
|
configuration.put("mailer.password", "mailer.password"); |
|
214
|
|
configuration.put("mailer.ssl", "mailer.ssl"); |
|
215
|
|
configuration.put("mailer.tls", "mailer.tls"); |
|
216
|
|
configuration.put("mailer.debug", "false"); |
|
217
|
|
configuration.put("mailer.count", "-1"); |
|
218
|
|
configuration.put("mailer.wait", "-1"); |
|
219
|
|
} |
|
220
|
|
|
|
221
|
|
private Properties wireConfigurationEntries() { |
|
222
|
|
configCountWaitTime = Long.parseLong(configuration.get("mailer.wait")); |
|
223
|
|
configMaximumMailBulk = Integer.parseInt(configuration.get("mailer.count")); |
|
224
|
|
Properties props = new Properties(); |
|
225
|
|
props.put("mail.smtp.host", configuration.get("mailer.host")); |
|
226
|
|
props.put("mail.smtp.port", configuration.get("mailer.port")); |
|
227
|
|
props.put("mail.smtp.auth", "true"); |
|
228
|
|
props.put("mail.smtp.starttls.enable", configuration.get("mailer.tls")); |
|
229
|
|
props.put("mail.smtp.ssl.enable", configuration.get("mailer.ssl")); |
|
230
|
|
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); |
|
231
|
|
props.put("mail.smtp.socketFactory.port", configuration.get("mailer.port")); |
|
232
|
|
props.put("mail.smtp.socketFactory.fallback", "false"); |
|
233
|
|
|
|
234
|
|
props.put("mail.smtp.connectiontimeout", "8000"); // 8 seconds |
|
235
|
|
props.put("mail.smtp.timeout", "10000"); // 10 seconds |
|
236
|
1
1. wireConfigurationEntries : replaced return value with null for org/europa/together/application/JakartaMailClient::wireConfigurationEntries → KILLED
|
return props; |
|
237
|
|
} |
|
238
|
|
|
|
239
|
|
private void processConfiguration(final List<ConfigurationDO> configurationEntries) { |
|
240
|
|
LOGGER.log("Process E-Mail Configuration (" + configurationEntries.size() + ")", |
|
241
|
|
LogLevel.DEBUG); |
|
242
|
|
for (ConfigurationDO entry : configurationEntries) { |
|
243
|
|
String value; |
|
244
|
1
1. processConfiguration : negated conditional → KILLED
|
if (StringUtils.isEmpty(entry.getValue())) { |
|
245
|
|
value = entry.getDefaultValue(); |
|
246
|
|
} else { |
|
247
|
|
value = entry.getValue(); |
|
248
|
|
} |
|
249
|
|
if (entry.getKey() |
|
250
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.host", |
|
251
|
|
HashAlgorithm.SHA256))) { |
|
252
|
|
configuration.replace("mailer.host", value); |
|
253
|
|
} else if (entry.getKey() |
|
254
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.port", |
|
255
|
|
HashAlgorithm.SHA256))) { |
|
256
|
|
configuration.replace("mailer.port", value); |
|
257
|
|
} else if (entry.getKey() |
|
258
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.sender", |
|
259
|
|
HashAlgorithm.SHA256))) { |
|
260
|
|
configuration.replace("mailer.sender", value); |
|
261
|
|
} else if (entry.getKey() |
|
262
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.user", |
|
263
|
|
HashAlgorithm.SHA256))) { |
|
264
|
|
configuration.replace("mailer.user", value); |
|
265
|
|
} else if (entry.getKey() |
|
266
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.password", |
|
267
|
|
HashAlgorithm.SHA256))) { |
|
268
|
|
configuration.replace("mailer.password", value); |
|
269
|
|
} else if (entry.getKey() |
|
270
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.ssl", |
|
271
|
|
HashAlgorithm.SHA256))) { |
|
272
|
|
configuration.replace("mailer.ssl", value); |
|
273
|
|
} else if (entry.getKey() |
|
274
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.tls", |
|
275
|
|
HashAlgorithm.SHA256))) { |
|
276
|
|
configuration.replace("mailer.tls", value); |
|
277
|
|
} else if (entry.getKey() |
|
278
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.debug", |
|
279
|
|
HashAlgorithm.SHA256))) { |
|
280
|
|
configuration.replace("mailer.debug", value); |
|
281
|
|
} else if (entry.getKey() |
|
282
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.count", |
|
283
|
|
HashAlgorithm.SHA256))) { |
|
284
|
|
configuration.replace("mailer.count", value); |
|
285
|
|
} else if (entry.getKey() |
|
286
|
1
1. processConfiguration : negated conditional → KILLED
|
.equals(cryptoTools.calculateHash("mailer.wait", |
|
287
|
|
HashAlgorithm.SHA256))) { |
|
288
|
|
configuration.replace("mailer.wait", value); |
|
289
|
|
} |
|
290
|
|
} |
|
291
|
|
} |
|
292
|
|
} |
| | Mutations |
| 62 |
|
1.1 Location : <init> Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:initialConfiguration()] removed call to org/europa/together/application/JakartaMailClient::initConfig → KILLED
|
| 70 |
|
1.1 Location : getDebugActiveConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:initialConfiguration()] replaced return value with Collections.emptyMap for org/europa/together/application/JakartaMailClient::getDebugActiveConfiguration → KILLED
|
| 75 |
|
1.1 Location : clearConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:failConnetSMTPServer()] removed call to java/util/Map::clear → KILLED
|
| 82 |
|
1.1 Location : loadConfigurationFromProperties Killed by : none removed call to org/europa/together/application/JakartaMailClient::initConfig → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:failLoadConfigurationFromPropertyFile()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromClasspath()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromFileSystem()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
|
| 100 |
|
1.1 Location : loadConfigurationFromProperties Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:failLoadConfigurationFromPropertyFile()] negated conditional → KILLED
|
| 101 |
|
1.1 Location : loadConfigurationFromProperties Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromClasspath()] removed call to java/util/Map::putAll → KILLED
|
| 106 |
|
1.1 Location : loadConfigurationFromProperties Killed by : none replaced boolean return with false for org/europa/together/application/JakartaMailClient::loadConfigurationFromProperties → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromClasspath()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromFileSystem()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
2.2 Location : loadConfigurationFromProperties Killed by : none replaced boolean return with true for org/europa/together/application/JakartaMailClient::loadConfigurationFromProperties → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromClasspath()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromFileSystem()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
|
| 112 |
|
1.1 Location : loadConfigurationFromDatabase Killed by : org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:updateConfiguration()] removed call to org/europa/together/application/JakartaMailClient::initConfig → KILLED
|
| 120 |
|
1.1 Location : loadConfigurationFromDatabase Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:tryLoadConfigEntryNotExist()] negated conditional → KILLED
2.2 Location : loadConfigurationFromDatabase Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:failLoadConfigurationFromDatabase()] changed conditional boundary → KILLED
|
| 121 |
|
1.1 Location : loadConfigurationFromDatabase Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] removed call to org/europa/together/application/JakartaMailClient::processConfiguration → KILLED
|
| 125 |
|
1.1 Location : loadConfigurationFromDatabase Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:failLoadConfigurationFromDatabase()] replaced boolean return with true for org/europa/together/application/JakartaMailClient::loadConfigurationFromDatabase → KILLED
2.2 Location : loadConfigurationFromDatabase Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:tryLoadConfigEntryNotExist()] replaced boolean return with false for org/europa/together/application/JakartaMailClient::loadConfigurationFromDatabase → KILLED
|
| 130 |
|
1.1 Location : getBulkMailLimiter Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:initialConfiguration()] replaced int return with 0 for org/europa/together/application/JakartaMailClient::getBulkMailLimiter → KILLED
|
| 135 |
|
1.1 Location : getWaitTime Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:initialConfiguration()] replaced long return with 0 for org/europa/together/application/JakartaMailClient::getWaitTime → KILLED
|
| 145 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeMessage::setHeader → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 146 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeMessage::setHeader → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 147 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeMessage::setSentDate → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 148 |
|
1.1 Location : composeMail Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()] removed call to jakarta/mail/internet/MimeMessage::setSubject → KILLED
|
| 149 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeMessage::setFrom → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 150 |
|
1.1 Location : composeMail Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()] removed call to jakarta/mail/internet/MimeMessage::setSender → KILLED
|
| 154 |
|
1.1 Location : composeMail Killed by : none negated conditional → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 155 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeBodyPart::setContent → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
|
| 157 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeBodyPart::setText → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 162 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/Multipart::addBodyPart → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 163 |
|
1.1 Location : composeMail Killed by : none negated conditional → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 166 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeBodyPart::setDataHandler → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
|
| 167 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeBodyPart::setFileName → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
|
| 168 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/Multipart::addBodyPart → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
|
| 172 |
|
1.1 Location : composeMail Killed by : none removed call to jakarta/mail/internet/MimeMessage::setContent → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 184 |
|
1.1 Location : getPasswordAuthentication Killed by : org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()] replaced return value with null for org/europa/together/application/JakartaMailClient$1::getPasswordAuthentication → KILLED
|
| 190 |
|
1.1 Location : getSession Killed by : none removed call to jakarta/mail/Session::setDebug → SURVIVED
Covering tests
Covered by tests:
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMail()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeTextMailWithAttachment()]
- org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendBulkMail()]
- org.europa.together.service.MailClientServiceTest.[engine:junit-jupiter]/[class:org.europa.together.service.MailClientServiceTest]/[method:failConnectionSendMail()]
|
| 191 |
|
1.1 Location : getSession Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()] replaced return value with null for org/europa/together/application/JakartaMailClient::getSession → KILLED
|
| 196 |
|
1.1 Location : getMailObject Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:getMailObject()] replaced return value with null for org/europa/together/application/JakartaMailClient::getMailObject → KILLED
|
| 202 |
|
1.1 Location : getMimeMessage Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:composeHtmlMail()] replaced return value with null for org/europa/together/application/JakartaMailClient::getMimeMessage → KILLED
|
| 236 |
|
1.1 Location : wireConfigurationEntries Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:connectSMTPServer()] replaced return value with null for org/europa/together/application/JakartaMailClient::wireConfigurationEntries → KILLED
|
| 244 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 250 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 254 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 258 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 262 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 266 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 270 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 274 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 278 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 282 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|
| 286 |
|
1.1 Location : processConfiguration Killed by : org.europa.together.application.JakartaMailClientTest.[engine:junit-jupiter]/[class:org.europa.together.application.JakartaMailClientTest]/[method:loadConfigurationFromDatabase()] negated conditional → KILLED
|