You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/01/05 02:56:51 UTC
[32/44] james-project git commit: JAMES-2267 Make InMemorySmtp
slightly easier to work with
JAMES-2267 Make InMemorySmtp slightly easier to work with
Also, a SMTP gateway allows to get ride of it.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c6532c8f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c6532c8f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c6532c8f
Branch: refs/heads/improve-mailet-testing-experience-v1
Commit: c6532c8fb762ef63c9970b259964e022aab20349
Parents: 5f65878
Author: benwa <bt...@linagora.com>
Authored: Thu Dec 21 11:11:31 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 5 09:33:52 2018 +0700
----------------------------------------------------------------------
.../apache/james/mpt/smtp/ForwardSmtpTest.java | 5 +----
.../james/dnsservice/api/InMemoryDNSService.java | 6 ++++++
.../GatewayRemoteDeliveryIntegrationTest.java | 19 +++++--------------
.../transport/mailets/GroupMappingTest.java | 15 +++------------
.../james/jmap/VacationRelayIntegrationTest.java | 5 +----
5 files changed, 16 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6532c8f/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java
index 12e41fb..bcfdd5d 100644
--- a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java
+++ b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java
@@ -22,7 +22,6 @@ import static com.jayway.awaitility.Duration.FIVE_HUNDRED_MILLISECONDS;
import static com.jayway.awaitility.Duration.ONE_MINUTE;
import static org.hamcrest.Matchers.equalTo;
-import java.net.InetAddress;
import java.util.Locale;
import org.apache.james.mpt.script.SimpleScriptedTestProtocol;
@@ -70,11 +69,9 @@ public abstract class ForwardSmtpTest {
scriptedTest = new SimpleScriptedTestProtocol("/org/apache/james/smtp/scripts/", hostSystem)
.withLocale(Locale.US)
.withUser(USER_AT_DOMAIN, PASSWORD);
-
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
hostSystem.getInMemoryDnsService()
- .registerRecord("yopmail.com", containerIp, "yopmail.com");
+ .registerMxRecord("yopmail.com", fakeSmtp.getContainerIp());
hostSystem.addAddressMapping(USER, DOMAIN, "ray@yopmail.com");
RestAssured.requestSpecification = FakeSmtpHelper.requestSpecification(fakeSmtp.getContainerIp());
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6532c8f/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
index 851ace7..3a3ff92 100644
--- a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
+++ b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
@@ -56,6 +56,12 @@ public class InMemoryDNSService implements DNSService {
registerRecord(hostname, ImmutableList.of(address), ImmutableList.of(mxRecord), emptyTxtRecords);
}
+ public InMemoryDNSService registerMxRecord(String hostname, String ip) throws UnknownHostException {
+ InetAddress containerIp = InetAddress.getByName(ip);
+ registerRecord(hostname, containerIp, hostname);
+ return this;
+ }
+
public void registerRecord(String hostname, List<InetAddress> addresses, Collection<String> mxRecords, Collection<String> txtRecords ){
records.put(hostname, dnsRecordFor(mxRecords, txtRecords, addresses));
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6532c8f/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
index f5d3818..55900f0 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
@@ -31,7 +31,6 @@ import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
-import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
import org.apache.james.dnsservice.api.DNSService;
@@ -85,12 +84,16 @@ public class GatewayRemoteDeliveryIntegrationTest {
private TemporaryJamesServer jamesServer;
private DataProbe dataProbe;
+ private InMemoryDNSService inMemoryDNSService;
@Before
public void setup() throws Exception {
awaitOneMinute.until(() -> fakeSmtp.tryConnect(25));
RestAssured.requestSpecification = FakeSmtpHelper.requestSpecification(fakeSmtp.getContainerIp());
+
+ inMemoryDNSService = new InMemoryDNSService()
+ .registerMxRecord(JAMES_ANOTHER_DOMAIN, fakeSmtp.getContainerIp());
}
@After
@@ -179,9 +182,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
@Test
public void outgoingMailShouldNotBeSentDirectlyToTheHostWhenGatewayFails() throws Exception {
String gatewayProperty = "invalid.domain";
- InMemoryDNSService inMemoryDNSService = new InMemoryDNSService();
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
- inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
jamesServer = TemporaryJamesServer.builder()
.withBase(SMTP_ONLY_MODULE)
@@ -203,12 +203,10 @@ public class GatewayRemoteDeliveryIntegrationTest {
.statusCode(200)
.body("", hasSize(0));
}
+
@Test
public void remoteDeliveryShouldBounceUponFailure() throws Exception {
String gatewayProperty = "invalid.domain";
- InMemoryDNSService inMemoryDNSService = new InMemoryDNSService();
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
- inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
jamesServer = TemporaryJamesServer.builder()
.withBase(SMTP_AND_IMAP_MODULE)
@@ -237,9 +235,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
@Test
public void remoteDeliveryShouldBounceUponFailureWhenNoBounceProcessor() throws Exception {
String gatewayProperty = "invalid.domain";
- InMemoryDNSService inMemoryDNSService = new InMemoryDNSService();
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
- inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
jamesServer = TemporaryJamesServer.builder()
.withBase(SMTP_AND_IMAP_MODULE)
@@ -279,10 +274,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
@Test
public void directResolutionShouldBeWellPerformed() throws Exception {
- InMemoryDNSService inMemoryDNSService = new InMemoryDNSService();
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
- inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
-
jamesServer = TemporaryJamesServer.builder()
.withBase(SMTP_ONLY_MODULE)
.withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6532c8f/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
index 9a95c42..5f51620 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
@@ -30,13 +30,10 @@ import static org.apache.james.mailets.configuration.Constants.calmlyAwait;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.equalTo;
-import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
import javax.mail.internet.MimeMessage;
-import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.dnsservice.api.InMemoryDNSService;
import org.apache.james.jmap.mailet.VacationMailet;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.TemporaryJamesServer;
@@ -90,7 +87,6 @@ public class GroupMappingTest {
.withAffinityToContainer()
.waitingFor(new HostPortWaitStrategy());
- private final InMemoryDNSService inMemoryDNSService = new InMemoryDNSService();
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Rule
@@ -98,13 +94,8 @@ public class GroupMappingTest {
@Rule
public SMTPMessageSender messageSender = new SMTPMessageSender(DEFAULT_DOMAIN);
- private InetAddress containerIp;
@Before
public void setup() throws Exception {
-
- containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
- inMemoryDNSService.registerRecord("yopmail.com", containerIp, "yopmail.com");
-
MailetContainer mailetContainer = MailetContainer.builder()
.addProcessor(CommonProcessors.simpleRoot())
.addProcessor(CommonProcessors.error())
@@ -126,11 +117,11 @@ public class GroupMappingTest {
.addProperty("maxDnsProblemRetries", "0")
.addProperty("deliveryThreads", "10")
.addProperty("sendpartial", "true")
- .addProperty("bounceProcessor", "bounces")))
+ .addProperty("bounceProcessor", "bounces")
+ .addProperty("gateway", fakeSmtp.getContainerIp())))
.build();
jamesServer = TemporaryJamesServer.builder()
- .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
.withMailetContainer(mailetContainer)
.build(temporaryFolder);
@@ -464,7 +455,7 @@ public class GroupMappingTest {
.until(() -> {
try {
with()
- .baseUri("http://" + containerIp.getHostAddress())
+ .baseUri("http://" + fakeSmtp.getContainerIp())
.port(80)
.get("/api/email")
.then()
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6532c8f/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
index 3ef66d6..dda4ddd 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
@@ -21,7 +21,6 @@ package org.apache.james.jmap;
import static org.hamcrest.Matchers.equalTo;
-import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
import org.apache.commons.net.smtp.SMTPClient;
@@ -79,10 +78,8 @@ public abstract class VacationRelayIntegrationTest {
@Before
public void setUp() throws Exception {
-
- InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
getInMemoryDns()
- .registerRecord("yopmail.com", containerIp, "yopmail.com");
+ .registerMxRecord("yopmail.com", fakeSmtp.getContainerIp());
guiceJamesServer = getJmapServer();
guiceJamesServer.start();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org