JAMES-2285 Get ride of an DNS test implementation
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4642814f Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4642814f Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4642814f Branch: refs/heads/master Commit: 4642814f11605085467939cda4699999a38d08a2 Parents: 583f348 Author: benwa <[email protected]> Authored: Sat Jan 20 17:32:39 2018 +0700 Committer: benwa <[email protected]> Committed: Tue Jan 30 15:09:47 2018 +0700 ---------------------------------------------------------------------- .../dnsservice/api/InMemoryDNSService.java | 3 +- .../james/smtpserver/ValidRcptMXTest.java | 47 ++++---------------- 2 files changed, 11 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/4642814f/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 5c1a0f4..11b0e4b 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 @@ -51,9 +51,10 @@ public class InMemoryDNSService implements DNSService { return new DNSRecord(addresses, mxRecords, txtRecords); } - public void registerRecord(String hostname, InetAddress address, String mxRecord) { + public InMemoryDNSService registerRecord(String hostname, InetAddress address, String mxRecord) { Collection<String> emptyTxtRecords = ImmutableList.of(); registerRecord(hostname, ImmutableList.of(address), ImmutableList.of(mxRecord), emptyTxtRecords); + return this; } public InMemoryDNSService registerMxRecord(String hostname, String ip) throws UnknownHostException { http://git-wip-us.apache.org/repos/asf/james-project/blob/4642814f/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java index c7b9d33..3d4eea9 100644 --- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java +++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java @@ -20,26 +20,21 @@ package org.apache.james.smtpserver; import static org.junit.Assert.assertEquals; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import org.apache.james.core.MailAddress; import org.apache.james.dnsservice.api.DNSService; -import org.apache.james.dnsservice.api.mock.MockDNSService; +import org.apache.james.dnsservice.api.InMemoryDNSService; import org.apache.james.protocols.smtp.SMTPSession; import org.apache.james.protocols.smtp.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; import org.apache.james.smtpserver.fastfail.ValidRcptMX; import org.junit.Test; +import org.testcontainers.shaded.com.google.common.collect.ImmutableList; public class ValidRcptMXTest { private static final String INVALID_HOST = "invalid.host.de"; - private static final String INVALID_MX = "mx." + INVALID_HOST; - private static final String LOOPBACK = "127.0.0.1"; private SMTPSession setupMockedSMTPSession(MailAddress rcpt) { return new BaseFakeSMTPSession() { @@ -73,44 +68,20 @@ public class ValidRcptMXTest { }; } - private DNSService setupMockedDNSServer() { - - return new MockDNSService() { - - @Override - public Collection<String> findMXRecords(String hostname) { - Collection<String> mx = new ArrayList<>(); - - if (hostname.equals(INVALID_HOST)) { - mx.add(INVALID_MX); - } - return mx; - } - - @Override - public InetAddress getByName(String host) throws UnknownHostException { - if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) { - return InetAddress.getByName(LOOPBACK); - } else if (host.equals("255.255.255.255")) { - return InetAddress.getByName("255.255.255.255"); - } - throw new UnknownHostException("Unknown host"); - } - }; - } - @Test public void testRejectLoopbackMX() throws Exception { - Collection<String> bNetworks = new ArrayList<>(); - bNetworks.add("127.0.0.1"); + String bannedAddress = "172.53.64.2"; - DNSService dns = setupMockedDNSServer(); + DNSService dns = new InMemoryDNSService() + .registerMxRecord(INVALID_HOST, bannedAddress) + .registerMxRecord("255.255.255.255", "255.255.255.255") + .registerMxRecord(bannedAddress, bannedAddress); MailAddress mailAddress = new MailAddress("test@" + INVALID_HOST); SMTPSession session = setupMockedSMTPSession(mailAddress); - ValidRcptMX handler = new ValidRcptMX(); + ValidRcptMX handler = new ValidRcptMX(); handler.setDNSService(dns); - handler.setBannedNetworks(bNetworks, dns); + handler.setBannedNetworks(ImmutableList.of(bannedAddress ), dns); int rCode = handler.doRcpt(session, null, mailAddress).getResult(); assertEquals("Reject", rCode, HookReturnCode.DENY); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
