implemented tests for MailConfig
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
import static de.srsoftware.oidc.api.Constants.*;
|
||||
import static de.srsoftware.utils.Strings.uuid;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import jakarta.mail.Authenticator;
|
||||
import jakarta.mail.PasswordAuthentication;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public abstract class MailConfigTest {
|
||||
protected abstract MailConfig mailConfig();
|
||||
|
||||
@Test
|
||||
public void testSmtpHost() {
|
||||
assertEquals("", mailConfig().smtpHost());
|
||||
var host = uuid();
|
||||
mailConfig().smtpHost(host);
|
||||
assertEquals(host, mailConfig().smtpHost());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSmtpPort() {
|
||||
assertEquals(0, mailConfig().smtpPort());
|
||||
var port = new Random().nextInt();
|
||||
mailConfig().smtpPort(port);
|
||||
assertEquals(port, mailConfig().smtpPort());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSenderAddress() {
|
||||
assertEquals("", mailConfig().senderAddress());
|
||||
var address = uuid();
|
||||
mailConfig().senderAddress(address);
|
||||
assertEquals(address, mailConfig().senderAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSenderPassword() {
|
||||
assertEquals("", mailConfig().senderPassword());
|
||||
var password = uuid();
|
||||
mailConfig().senderPassword(password);
|
||||
assertEquals(password, mailConfig().senderPassword());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStartTls() {
|
||||
mailConfig().startTls(false);
|
||||
assertFalse(mailConfig().startTls());
|
||||
mailConfig().startTls(true);
|
||||
assertTrue(mailConfig().startTls());
|
||||
mailConfig().startTls(false);
|
||||
assertFalse(mailConfig().startTls());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSmtpAuth() {
|
||||
mailConfig().smtpAuth(false);
|
||||
assertFalse(mailConfig().smtpAuth());
|
||||
mailConfig().smtpAuth(true);
|
||||
assertTrue(mailConfig().smtpAuth());
|
||||
mailConfig().smtpAuth(false);
|
||||
assertFalse(mailConfig().smtpAuth());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProps() {
|
||||
var host = uuid();
|
||||
var port = new Random().nextInt();
|
||||
var address = uuid();
|
||||
var password = uuid();
|
||||
mailConfig().senderPassword(password);
|
||||
mailConfig().senderAddress(address);
|
||||
mailConfig().smtpHost(host);
|
||||
mailConfig().smtpPort(port);
|
||||
mailConfig().startTls(true);
|
||||
mailConfig().smtpAuth(true);
|
||||
|
||||
var props = mailConfig().props();
|
||||
assertEquals(host, props.get("mail.smtp.host"));
|
||||
assertEquals(port, props.get("mail.smtp.port"));
|
||||
assertEquals(host, props.get("mail.smtp.ssl.trust"));
|
||||
assertEquals("true", props.get("mail.smtp.auth"));
|
||||
assertEquals("true", props.get("mail.smtp.starttls.enable"));
|
||||
|
||||
mailConfig().startTls(false);
|
||||
mailConfig().smtpAuth(false);
|
||||
props = mailConfig().props();
|
||||
assertEquals(host, props.get("mail.smtp.host"));
|
||||
assertEquals(port, props.get("mail.smtp.port"));
|
||||
assertEquals(host, props.get("mail.smtp.ssl.trust"));
|
||||
assertEquals("false", props.get("mail.smtp.auth"));
|
||||
assertEquals("false", props.get("mail.smtp.starttls.enable"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMap() {
|
||||
var host = uuid();
|
||||
var port = new Random().nextInt();
|
||||
var address = uuid();
|
||||
var password = uuid();
|
||||
|
||||
mailConfig().senderPassword(password);
|
||||
mailConfig().senderAddress(address);
|
||||
mailConfig().smtpHost(host);
|
||||
mailConfig().smtpPort(port);
|
||||
mailConfig().startTls(true);
|
||||
mailConfig().smtpAuth(false);
|
||||
var map = mailConfig().map();
|
||||
assertEquals(map, Map.of( //
|
||||
SMTP_HOST, host, //
|
||||
SMTP_PORT, port, //
|
||||
SMTP_AUTH, false, //
|
||||
SMTP_USER, address, //
|
||||
START_TLS, true));
|
||||
|
||||
mailConfig().startTls(false);
|
||||
mailConfig().smtpAuth(true);
|
||||
map = mailConfig().map();
|
||||
assertEquals(map, Map.of( //
|
||||
SMTP_HOST, host, //
|
||||
SMTP_PORT, port, //
|
||||
SMTP_AUTH, true, //
|
||||
SMTP_USER, address, //
|
||||
START_TLS, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthenticator() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
||||
var host = uuid();
|
||||
var port = new Random().nextInt();
|
||||
var address = uuid();
|
||||
var password = uuid();
|
||||
|
||||
mailConfig().senderPassword(password);
|
||||
mailConfig().senderAddress(address);
|
||||
mailConfig().smtpHost(host);
|
||||
mailConfig().smtpPort(port);
|
||||
mailConfig().startTls(true);
|
||||
mailConfig().smtpAuth(false);
|
||||
Authenticator authenticator = mailConfig().authenticator();
|
||||
var method = authenticator.getClass().getDeclaredMethod("getPasswordAuthentication");
|
||||
method.setAccessible(true);
|
||||
var o = method.invoke(authenticator);
|
||||
assertTrue(o instanceof PasswordAuthentication);
|
||||
var pwa = (PasswordAuthentication)o;
|
||||
assertEquals(password, pwa.getPassword());
|
||||
assertEquals(address, pwa.getUserName());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.datastore.file;
|
||||
|
||||
import static de.srsoftware.oidc.api.Constants.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import de.srsoftware.oidc.api.MailConfig;
|
||||
import de.srsoftware.oidc.api.MailConfigTest;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
||||
public class FileStoreMailConfigTest extends MailConfigTest {
|
||||
private MailConfig mailConfig;
|
||||
|
||||
|
||||
@Override
|
||||
protected MailConfig mailConfig() {
|
||||
return mailConfig;
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void setup() throws IOException {
|
||||
var storage = new File("/tmp/" + UUID.randomUUID());
|
||||
if (storage.exists()) storage.delete();
|
||||
mailConfig = new FileStore(storage, null);
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import java.io.File;
|
||||
import java.sql.SQLException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
||||
public class SqlteClientServiceTest extends ClientServiceTest {
|
||||
public class SqliteClientServiceTest extends ClientServiceTest {
|
||||
private ClientService clientService;
|
||||
|
||||
@Override
|
||||
Reference in New Issue
Block a user