JAMES-1954 Ensure we close resources when tests ends in NettyStartTlsSMTPServer
server field was never used Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/71f89a8f Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/71f89a8f Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/71f89a8f Branch: refs/heads/master Commit: 71f89a8f8475741b2e31262da8f95f164f970b95 Parents: ba48fae Author: benwa <btell...@linagora.com> Authored: Tue Mar 7 15:57:52 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Mon Mar 13 18:32:25 2017 +0700 ---------------------------------------------------------------------- .../smtp/netty/NettyStartTlsSMTPServerTest.java | 142 +++++++++---------- 1 file changed, 71 insertions(+), 71 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/71f89a8f/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java index 7fed268..7f0ba3f 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java @@ -62,15 +62,20 @@ public class NettyStartTlsSMTPServerTest { private static final String LOCALHOST_IP = "127.0.0.1"; private static final int RANDOM_PORT = 0; - private ProtocolServer server; + private SMTPSClient smtpsClient = null; + private ProtocolServer server = null; @After - public void tearDown() { + public void tearDown() throws Exception { + if (smtpsClient != null) { + smtpsClient.disconnect(); + } if (server != null) { server.unbind(); } } + private ProtocolServer createServer(Protocol protocol, Encryption enc) { NettyServer server = NettyServer.builder() .protocol(protocol) @@ -98,48 +103,39 @@ public class NettyStartTlsSMTPServerTest { @Test public void connectShouldReturnTrueWhenConnecting() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - assertThat(SMTPReply.isPositiveCompletion(client.getReplyCode())).isTrue(); - - client.quit(); - client.disconnect(); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + assertThat(SMTPReply.isPositiveCompletion(smtpsClient.getReplyCode())).isTrue(); } @Test public void ehloShouldReturnTrueWhenSendingTheCommand() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - client.sendCommand("EHLO localhost"); - assertThat(SMTPReply.isPositiveCompletion(client.getReplyCode())).isTrue(); - - client.quit(); - client.disconnect(); + smtpsClient.sendCommand("EHLO localhost"); + assertThat(SMTPReply.isPositiveCompletion(smtpsClient.getReplyCode())).isTrue(); } @Test public void startTlsShouldBeAnnouncedWhenServerSupportsIt() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - client.sendCommand("EHLO localhost"); - - assertThat(new StartTLSAssert(client)).isStartTLSAnnounced(); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + smtpsClient.sendCommand("EHLO localhost"); - client.quit(); - client.disconnect(); + assertThat(new StartTLSAssert(smtpsClient)).isStartTLSAnnounced(); } private static class StartTLSAssert implements AssertDelegateTarget { @@ -163,79 +159,83 @@ public class NettyStartTlsSMTPServerTest { @Test public void startTlsShouldReturnTrueWhenServerSupportsIt() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - client.sendCommand("EHLO localhost"); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + smtpsClient.sendCommand("EHLO localhost"); - boolean execTLS = client.execTLS(); + boolean execTLS = smtpsClient.execTLS(); assertThat(execTLS).isTrue(); - - client.quit(); - client.disconnect(); } @Test public void startTlsShouldFailWhenFollowedByInjectedCommand() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - client.sendCommand("EHLO localhost"); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + smtpsClient.sendCommand("EHLO localhost"); - client.sendCommand("STARTTLS\r\nRSET\r\n"); - assertThat(SMTPReply.isPositiveCompletion(client.getReplyCode())).isFalse(); + smtpsClient.sendCommand("STARTTLS\r\nRSET\r\n"); + assertThat(SMTPReply.isPositiveCompletion(smtpsClient.getReplyCode())).isFalse(); } @Test public void startTlsShouldFailWhenFollowedByInjectedCommandAndNotAtBeginningOfLine() throws Exception { - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); - server.bind(); + server = createServer(createProtocol(Optional.<ProtocolHandler> absent()), Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + smtpsClient = createClient(); - SMTPSClient client = createClient(); + server.bind(); InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); - client.sendCommand("EHLO localhost"); + smtpsClient.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort()); + smtpsClient.sendCommand("EHLO localhost"); - client.sendCommand("RSET\r\nSTARTTLS\r\nRSET\r\n"); - assertThat(SMTPReply.isPositiveCompletion(client.getReplyCode())).isFalse(); + smtpsClient.sendCommand("RSET\r\nSTARTTLS\r\nRSET\r\n"); + assertThat(SMTPReply.isPositiveCompletion(smtpsClient.getReplyCode())).isFalse(); } @Test public void startTlsShouldWorkWhenUsingJavamail() throws Exception { TestMessageHook hook = new TestMessageHook(); - ProtocolServer server = createServer(createProtocol(Optional.<ProtocolHandler> of(hook)) , Encryption.createStartTls(BogusSslContextFactory.getServerContext())); + server = createServer(createProtocol(Optional.<ProtocolHandler> of(hook)) , Encryption.createStartTls(BogusSslContextFactory.getServerContext())); server.bind(); + SMTPTransport transport = null; - InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); + try { + InetSocketAddress bindedAddress = new ProtocolServerUtils(server).retrieveBindedAddress(); - Properties mailProps = new Properties(); - mailProps.put("mail.smtp.from", "test@localhost"); - mailProps.put("mail.smtp.host", bindedAddress.getHostName()); - mailProps.put("mail.smtp.port", bindedAddress.getPort()); - mailProps.put("mail.smtp.socketFactory.class", BogusSSLSocketFactory.class.getName()); - mailProps.put("mail.smtp.socketFactory.fallback", "false"); - mailProps.put("mail.smtp.starttls.enable", "true"); + Properties mailProps = new Properties(); + mailProps.put("mail.smtp.from", "test@localhost"); + mailProps.put("mail.smtp.host", bindedAddress.getHostName()); + mailProps.put("mail.smtp.port", bindedAddress.getPort()); + mailProps.put("mail.smtp.socketFactory.class", BogusSSLSocketFactory.class.getName()); + mailProps.put("mail.smtp.socketFactory.fallback", "false"); + mailProps.put("mail.smtp.starttls.enable", "true"); - Session mailSession = Session.getDefaultInstance(mailProps); + Session mailSession = Session.getDefaultInstance(mailProps); - InternetAddress[] rcpts = new InternetAddress[] { new InternetAddress("valid@localhost") }; - MimeMessage message = new MimeMessage(mailSession); - message.setFrom(new InternetAddress("test@localhost")); - message.setRecipients(Message.RecipientType.TO, rcpts); - message.setSubject("Testmail", "UTF-8"); - message.setText("Test....."); + InternetAddress[] rcpts = new InternetAddress[]{new InternetAddress("valid@localhost")}; + MimeMessage message = new MimeMessage(mailSession); + message.setFrom(new InternetAddress("test@localhost")); + message.setRecipients(Message.RecipientType.TO, rcpts); + message.setSubject("Testmail", "UTF-8"); + message.setText("Test....."); - SMTPTransport transport = (SMTPTransport) mailSession.getTransport("smtps"); + transport = (SMTPTransport) mailSession.getTransport("smtps"); - transport.connect(new Socket(bindedAddress.getHostName(), bindedAddress.getPort())); - transport.sendMessage(message, rcpts); + transport.connect(new Socket(bindedAddress.getHostName(), bindedAddress.getPort())); + transport.sendMessage(message, rcpts); - assertThat(hook.getQueued()).hasSize(1); + assertThat(hook.getQueued()).hasSize(1); + } finally { + if (transport != null) { + transport.close(); + } + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org