Skip to content

Commit 2bd5120

Browse files
committed
Added some tests
1 parent 6319d16 commit 2bd5120

File tree

8 files changed

+52
-74
lines changed

8 files changed

+52
-74
lines changed

modules/core-module/src/main/java/org/simplejavamail/api/mailer/config/EmailGovernance.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* Governance for all emails being sent through the current {@link org.simplejavamail.api.mailer.Mailer} instance.
1212
* <p>
1313
* In simpeler terms: this class represents actions taken or configuration used by default for each individual email sent through the current mailer. For example, you might want to S/MIME sign all
14-
* emails by default. You can do it manually on each email of course, but then the keystore used for this not reused.
14+
* emails by default. You can do it manually on each email of course, but then the keystore used for this is not reused.
1515
*/
1616
public interface EmailGovernance {
1717

modules/core-module/src/main/java/org/simplejavamail/config/ConfigLoader.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
import org.slf4j.Logger;
1010
import org.slf4j.LoggerFactory;
1111

12-
import java.io.*;
12+
import java.io.File;
13+
import java.io.FileInputStream;
14+
import java.io.FileNotFoundException;
15+
import java.io.IOException;
16+
import java.io.InputStream;
1317
import java.util.HashMap;
1418
import java.util.Map;
1519
import java.util.Properties;
Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,26 @@
11
package org.simplejavamail.mailer.internal;
22

33
import com.sanctionco.jmail.EmailValidator;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Getter;
6+
import lombok.ToString;
47
import org.jetbrains.annotations.Nullable;
58
import org.simplejavamail.api.mailer.config.EmailGovernance;
69
import org.simplejavamail.api.mailer.config.Pkcs12Config;
710

811
/**
912
* @see EmailGovernance
1013
*/
14+
@ToString
15+
@AllArgsConstructor
16+
@Getter()
1117
class EmailGovernanceImpl implements EmailGovernance {
12-
@Nullable private final EmailValidator emailValidator;
13-
@Nullable private final Pkcs12Config pkcs12ConfigForSmimeSigning;
14-
15-
EmailGovernanceImpl(@Nullable final EmailValidator emailValidator, @Nullable final Pkcs12Config pkcs12ConfigForSmimeSigning) {
16-
this.emailValidator = emailValidator;
17-
this.pkcs12ConfigForSmimeSigning = pkcs12ConfigForSmimeSigning;
18-
}
19-
20-
@Override
21-
public String toString() {
22-
final StringBuilder sb = new StringBuilder("EmailGovernanceImpl{");
23-
sb.append("emailValidator=").append(emailValidator);
24-
sb.append(", pkcs12ConfigForSmimeSigning=").append(pkcs12ConfigForSmimeSigning);
25-
sb.append('}');
26-
return sb.toString();
27-
}
28-
2918
/**
3019
* @see EmailGovernance#getEmailValidator()
3120
*/
32-
@Override
33-
public @Nullable EmailValidator getEmailValidator() {
34-
return emailValidator;
35-
}
36-
21+
@Nullable private final EmailValidator emailValidator;
3722
/**
3823
* @see EmailGovernance#getPkcs12ConfigForSmimeSigning()
3924
*/
40-
@Override
41-
public @Nullable Pkcs12Config getPkcs12ConfigForSmimeSigning() {
42-
return pkcs12ConfigForSmimeSigning;
43-
}
25+
@Nullable private final Pkcs12Config pkcs12ConfigForSmimeSigning;
4426
}

modules/simple-java-mail/src/main/java/org/simplejavamail/mailer/internal/MailerImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
import org.simplejavamail.api.email.Email;
99
import org.simplejavamail.api.internal.authenticatedsockssupport.socks5server.AnonymousSocks5Server;
1010
import org.simplejavamail.api.mailer.Mailer;
11-
import org.simplejavamail.api.mailer.config.*;
11+
import org.simplejavamail.api.mailer.config.EmailGovernance;
12+
import org.simplejavamail.api.mailer.config.OperationalConfig;
13+
import org.simplejavamail.api.mailer.config.ProxyConfig;
14+
import org.simplejavamail.api.mailer.config.ServerConfig;
15+
import org.simplejavamail.api.mailer.config.TransportStrategy;
1216
import org.simplejavamail.config.ConfigLoader;
1317
import org.simplejavamail.internal.moduleloader.ModuleLoader;
1418
import org.simplejavamail.internal.util.concurrent.AsyncOperationHelper;

modules/simple-java-mail/src/main/java/org/simplejavamail/mailer/internal/MailerRegularBuilderImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
import javax.net.ssl.SSLSocketFactory;
1212

1313
import static java.util.Optional.ofNullable;
14-
import static org.simplejavamail.config.ConfigLoader.Property.*;
14+
import static org.simplejavamail.config.ConfigLoader.Property.CUSTOM_SSLFACTORY_CLASS;
15+
import static org.simplejavamail.config.ConfigLoader.Property.SMTP_HOST;
16+
import static org.simplejavamail.config.ConfigLoader.Property.SMTP_PASSWORD;
17+
import static org.simplejavamail.config.ConfigLoader.Property.SMTP_PORT;
18+
import static org.simplejavamail.config.ConfigLoader.Property.SMTP_USERNAME;
19+
import static org.simplejavamail.config.ConfigLoader.Property.TRANSPORT_STRATEGY;
1520
import static org.simplejavamail.config.ConfigLoader.hasProperty;
1621
import static org.simplejavamail.internal.util.MiscUtil.checkArgumentNotEmpty;
1722
import static org.simplejavamail.internal.util.MiscUtil.emptyAsNull;
Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.simplejavamail.mailer.internal;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
35
import org.simplejavamail.api.mailer.config.ProxyConfig;
46

57
import org.jetbrains.annotations.Nullable;
@@ -9,6 +11,8 @@
911
/**
1012
* @see ProxyConfig
1113
*/
14+
@AllArgsConstructor
15+
@Getter
1216
class ProxyConfigImpl implements ProxyConfig {
1317

1418
@Nullable private final String remoteProxyHost;
@@ -17,14 +21,6 @@ class ProxyConfigImpl implements ProxyConfig {
1721
@Nullable private final String password;
1822
@Nullable private final Integer proxyBridgePort;
1923

20-
ProxyConfigImpl(@Nullable final String remoteProxyHost, @Nullable final Integer remoteProxyPort, @Nullable final String username, @Nullable final String password, @Nullable final Integer proxyBridgePort) {
21-
this.remoteProxyHost = remoteProxyHost;
22-
this.remoteProxyPort = remoteProxyPort;
23-
this.username = username;
24-
this.password = password;
25-
this.proxyBridgePort = proxyBridgePort;
26-
}
27-
2824
@Override
2925
public boolean requiresProxy() {
3026
return remoteProxyHost != null;
@@ -47,34 +43,4 @@ public String toString() {
4743
}
4844
return str;
4945
}
50-
51-
@Override
52-
@Nullable
53-
public Integer getProxyBridgePort() {
54-
return proxyBridgePort;
55-
}
56-
57-
@Override
58-
@Nullable
59-
public String getRemoteProxyHost() {
60-
return remoteProxyHost;
61-
}
62-
63-
@Override
64-
@Nullable
65-
public Integer getRemoteProxyPort() {
66-
return remoteProxyPort;
67-
}
68-
69-
@Override
70-
@Nullable
71-
public String getUsername() {
72-
return username;
73-
}
74-
75-
@Override
76-
@Nullable
77-
public String getPassword() {
78-
return password;
79-
}
8046
}

modules/simple-java-mail/src/main/java/org/simplejavamail/mailer/internal/ServerConfigImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package org.simplejavamail.mailer.internal;
22

3+
import org.simplejavamail.api.mailer.config.ServerConfig;
4+
35
import org.jetbrains.annotations.NotNull;
46
import org.jetbrains.annotations.Nullable;
5-
import org.simplejavamail.api.mailer.config.ServerConfig;
67

78
import javax.net.ssl.SSLSocketFactory;
89

@@ -20,8 +21,8 @@ class ServerConfigImpl implements ServerConfig {
2021
@Nullable private final String customSSLFactoryClass;
2122
@Nullable private final SSLSocketFactory customSSLFactoryInstance;
2223

23-
ServerConfigImpl(@NotNull final String host, @NotNull final Integer port, @Nullable final String username, @Nullable final String password,
24-
@Nullable final String customSSLFactoryClass, final @Nullable SSLSocketFactory customSSLFactoryInstance) {
24+
ServerConfigImpl(@NotNull final String host, @NotNull final Integer port, @Nullable final String username, @Nullable final String password, @Nullable final String customSSLFactoryClass,
25+
final @Nullable SSLSocketFactory customSSLFactoryInstance) {
2526
this.host = host;
2627
this.port = port;
2728
this.username = username;

modules/simple-java-mail/src/test/java/org/simplejavamail/mailer/internal/MailerImplTest.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.simplejavamail.mailer.internal;
22

33
import jakarta.mail.Session;
4+
import lombok.val;
45
import org.jetbrains.annotations.NotNull;
56
import org.junit.Before;
67
import org.junit.Test;
8+
import org.simplejavamail.MailException;
79
import org.simplejavamail.api.mailer.Mailer;
810
import org.simplejavamail.api.mailer.config.EmailGovernance;
911
import org.simplejavamail.api.mailer.config.ProxyConfig;
@@ -14,11 +16,10 @@
1416
import java.util.Properties;
1517

1618
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1720
import static org.mockito.Mockito.mock;
1821
import static org.mockito.Mockito.when;
19-
import static org.simplejavamail.api.mailer.config.TransportStrategy.SMTP;
20-
import static org.simplejavamail.api.mailer.config.TransportStrategy.SMTPS;
21-
import static org.simplejavamail.api.mailer.config.TransportStrategy.SMTP_TLS;
22+
import static org.simplejavamail.api.mailer.config.TransportStrategy.*;
2223
import static org.simplejavamail.util.TestDataHelper.loadPkcs12KeyStore;
2324
import static testutil.EmailHelper.createDummyOperationalConfig;
2425

@@ -70,6 +71,21 @@ public void trustAllHosts_SMTP_TLS() {
7071
assertThat(session.getProperties().getProperty("mail.smtp.ssl.checkserveridentity")).isEqualTo("true");
7172
assertThat(session.getProperties().getProperty("mail.smtps.ssl.checkserveridentity")).isNull();
7273
}
74+
75+
@Test
76+
public void setPropertOAuth2Property() {
77+
val serverConfig = new ServerConfigImpl("hosty", 10, "usey", "passey", null, null);
78+
val mailer = new MailerImpl(serverConfig, SMTP_OAUTH2, createDummyEmailGovernance(), createEmptyProxyConfig(), null, createDummyOperationalConfig(EMPTY_LIST, true, false));
79+
assertThat(mailer.getSession().getProperties().getProperty("mail.smtp.auth.mechanisms")).isEqualTo("XOAUTH2");
80+
}
81+
82+
@Test
83+
public void checkForMissingOAuth2Token() {
84+
val serverConfig = new ServerConfigImpl("hosty", 10, "usey", null, null, null);
85+
assertThatThrownBy(() -> new MailerImpl(serverConfig, SMTP_OAUTH2, createDummyEmailGovernance(), createEmptyProxyConfig(), null, createDummyOperationalConfig(EMPTY_LIST, true, false)))
86+
.hasMessage("TransportStrategy is OAUTH2 but no OAUTH2 token provided as password")
87+
.isInstanceOf(MailException.class);
88+
}
7389

7490
@Test
7591
public void trustHosts() {

0 commit comments

Comments
 (0)