Fix mail apps for Spring Boot 3.1

This commit is contained in:
abilan
2023-06-08 18:23:12 -04:00
committed by Corneil du Plessis
parent d29c5887ac
commit 7dc4d4a3f5
4 changed files with 26 additions and 53 deletions

View File

@@ -34,6 +34,8 @@ import org.springframework.cloud.stream.binder.test.TestChannelBinderConfigurati
import org.springframework.context.annotation.Import;
import org.springframework.messaging.Message;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.DynamicPropertyRegistry;
import org.springframework.test.context.DynamicPropertySource;
import static org.assertj.core.api.Assertions.assertThat;
@@ -58,6 +60,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class MailSourceTests {
private static GreenMail mailServer;
private static GreenMailUser mailUser;
@BeforeAll
public static void setup() {
ServerSetup imap = ServerSetupTest.IMAP.dynamicPort();
@@ -65,8 +68,11 @@ class MailSourceTests {
mailServer = new GreenMail(imap);
mailUser = mailServer.setUser("user", "pw");
mailServer.start();
String imapPort = Integer.toString(mailServer.getImap().getServerSetup().getPort());
System.setProperty("test.mail.server.port", imapPort);
}
@DynamicPropertySource
static void mongoDbProperties(DynamicPropertyRegistry registry) {
registry.add("test.mail.server.port", mailServer.getImap().getServerSetup()::getPort);
}
@AfterAll

View File

@@ -13,20 +13,11 @@
<name>mail-supplier</name>
<description>Mail Supplier</description>
<properties>
<jakarta-mail.version>2.1.0</jakarta-mail.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mail</artifactId>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>${jakarta-mail.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>jakarta.mail</artifactId>
@@ -34,19 +25,9 @@
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail-junit5</artifactId>
<version>2.0.0-alpha-3</version>
<artifactId>greenmail</artifactId>
<version>2.0.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

@@ -23,36 +23,36 @@ import com.icegreen.greenmail.util.GreenMail;
import com.icegreen.greenmail.util.GreenMailUtil;
import com.icegreen.greenmail.util.ServerSetup;
import com.icegreen.greenmail.util.ServerSetupTest;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import reactor.core.publisher.Flux;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.integration.dsl.StandardIntegrationFlow;
import org.springframework.integration.test.context.SpringIntegrationTest;
import org.springframework.messaging.Message;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.DynamicPropertyRegistry;
import org.springframework.test.context.DynamicPropertySource;
@SpringIntegrationTest(noAutoStartup = "*")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"mail.supplier.mark-as-read=true",
"mail.supplier.delete=false",
"mail.supplier.user-flag=testSIUserFlag",
"mail.supplier.java-mail-properties=mail.imap.socketFactory.fallback=true\\n mail.store.protocol=imap\\n mail.debug=true"})
"mail.supplier.mark-as-read=true",
"mail.supplier.delete=false",
"mail.supplier.user-flag=testSIUserFlag",
"mail.supplier.java-mail-properties=mail.imap.socketFactory.fallback=true\\n mail.store.protocol=imap\\n mail.debug=true"})
@DirtiesContext
public abstract class AbstractMailSupplierTests {
protected static GreenMail mailServer;
protected static GreenMailUser mailUser;
@Autowired
protected Supplier<Flux<Message<?>>> mailSupplier;
@Autowired
protected StandardIntegrationFlow integrationFlow;
protected void sendMessage(String subject, String body) {
mailUser.deliver(GreenMailUtil.createTextEmail("bar@bax", "test@test", subject, body, mailServer.getSmtp().getServerSetup()));
}
@@ -66,34 +66,21 @@ public abstract class AbstractMailSupplierTests {
ServerSetup smtp = ServerSetupTest.SMTP.dynamicPort();
smtp.setServerStartupTimeout(10000);
mailServer = new GreenMail(new ServerSetup[]{imap, pop3, smtp});
mailServer = new GreenMail(new ServerSetup[] {imap, pop3, smtp});
mailUser = mailServer.setUser("user", "pw");
mailServer.start();
String imapPort = Integer.toString(mailServer.getImap().getServerSetup().getPort());
String pop3Port = Integer.toString(mailServer.getPop3().getServerSetup().getPort());
String smtpPort = Integer.toString(mailServer.getPop3().getServerSetup().getPort());
System.setProperty("test.mail.server.imap.port", imapPort);
System.setProperty("test.mail.server.pop3.port", pop3Port);
System.setProperty("test.mail.server.smtp.port", smtpPort);
}
@BeforeEach
void start() {
integrationFlow.start();
}
@AfterEach
void stop() {
integrationFlow.stop();
}
@AfterAll
public static void cleanup() {
System.clearProperty("test.mail.server.port");
@DynamicPropertySource
static void mongoDbProperties(DynamicPropertyRegistry registry) {
registry.add("test.mail.server.imap.port", mailServer.getImap().getServerSetup()::getPort);
registry.add("test.mail.server.pop3.port", mailServer.getPop3().getServerSetup()::getPort);
registry.add("test.mail.server.smtp.port", mailServer.getSmtp().getServerSetup()::getPort);
}
@SpringBootApplication
public static class MailSupplierTestApplication {
}
}

View File

@@ -40,7 +40,6 @@
<spring-kafka.version>3.0.7</spring-kafka.version>
<spring-rabbit.version>3.0.4</spring-rabbit.version>
<spring.version>6.0.9</spring.version>
<spring-integration.version>6.0.5</spring-integration.version>
<spring-cloud.version>2022.0.3</spring-cloud.version>
<spring-cloud-starters.version>4.0.3</spring-cloud-starters.version>