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 no...@apache.org on 2010/12/30 16:04:53 UTC

svn commit: r1053908 - in /james/server/trunk: pop3server/src/test/java/org/apache/james/pop3server/ remotemanager/src/test/java/org/apache/james/remotemanager/ smtpserver/src/test/java/org/apache/james/smtpserver/

Author: norman
Date: Thu Dec 30 15:04:53 2010
New Revision: 1053908

URL: http://svn.apache.org/viewvc?rev=1053908&view=rev
Log:
Merge abstract test classes with implementations

Added:
    james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
      - copied, changed from r1052807, james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java
    james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java
      - copied, changed from r1052807, james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
      - copied, changed from r1052876, james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
Removed:
    james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java
    james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java

Copied: james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java (from r1052807, james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java?p2=james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java&p1=james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java&r1=1052807&r2=1053908&rev=1053908&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java (original)
+++ james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java Thu Dec 30 15:04:53 2010
@@ -37,6 +37,7 @@ import org.apache.commons.logging.impl.S
 import org.apache.commons.net.pop3.POP3Client;
 import org.apache.commons.net.pop3.POP3MessageInfo;
 import org.apache.commons.net.pop3.POP3Reply;
+import org.apache.james.pop3server.netty.POP3Server;
 import org.apache.james.server.PortUtil;
 import org.apache.james.server.mock.MockJSR250Loader;
 import org.apache.james.server.mock.MockProtocolHandlerChain;
@@ -54,7 +55,7 @@ import org.apache.james.mailbox.store.Au
 import org.apache.james.user.lib.mock.MockUsersRepository;
 import org.apache.james.util.POP3BeforeSMTPHelper;
 
-public abstract class AbstractAsyncPOP3ServerTest extends TestCase {
+public class POP3ServerTest extends TestCase {
 
     private int m_pop3ListenerPort = PortUtil.getNonPrivilegedPort();
     private POP3TestConfiguration m_testConfiguration;
@@ -70,10 +71,33 @@ public abstract class AbstractAsyncPOP3S
             "Subject: test\r\n\r\n"+
             "Body Text POP3ServerTest.setupTestMails\r\n").getBytes();
     
-    public AbstractAsyncPOP3ServerTest() {
+    public POP3ServerTest() {
         super("AsyncPOP3ServerTest");
     }
 
+    private POP3Server m_pop3Server;
+
+    
+    protected void initPOP3Server(POP3TestConfiguration testConfiguration) throws Exception {
+        m_pop3Server.configure(testConfiguration);
+        m_pop3Server.init();
+    }
+
+    
+    protected void setUpPOP3Server() throws Exception {
+        
+        m_pop3Server = new POP3Server();
+        m_pop3Server.setDNSService(dnsservice);
+        m_pop3Server.setFileSystem(fSystem);
+        m_pop3Server.setProtocolHandlerChain(chain);
+       
+        
+        SimpleLog log = new SimpleLog("Mock");
+        log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
+        m_pop3Server.setLog(log);
+    }
+
+
     protected void setUp() throws Exception {
         setUpServiceManager();
         
@@ -92,9 +116,6 @@ public abstract class AbstractAsyncPOP3S
         initPOP3Server(testConfiguration);
     }
 
-    protected abstract void setUpPOP3Server() throws Exception;
-    protected abstract void initPOP3Server(POP3TestConfiguration testConfiguration) throws Exception;
-    
     
     protected void setUpServiceManager() throws Exception {
         serviceManager = new MockJSR250Loader();
@@ -133,6 +154,7 @@ public abstract class AbstractAsyncPOP3S
         return dns;
     }
     protected void tearDown() throws Exception {
+        
         if (m_pop3Protocol != null) {
            if ( m_pop3Protocol.isConnected()){
                m_pop3Protocol.sendCommand("quit");
@@ -143,6 +165,8 @@ public abstract class AbstractAsyncPOP3S
         manager.deleteEverything();
         //manager.deleteAll();
 
+        m_pop3Server.destroy();
+
         super.tearDown();
     }
 

Copied: james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java (from r1052807, james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java?p2=james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java&p1=james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java&r1=1052807&r2=1053908&rev=1053908&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java (original)
+++ james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java Thu Dec 30 15:04:53 2010
@@ -34,6 +34,7 @@ import junit.framework.TestCase;
 
 import org.apache.commons.logging.impl.SimpleLog;
 import org.apache.commons.net.telnet.TelnetClient;
+import org.apache.james.remotemanager.netty.RemoteManager;
 import org.apache.james.server.PortUtil;
 import org.apache.james.server.mock.MockJSR250Loader;
 import org.apache.james.server.mock.MockProtocolHandlerChain;
@@ -47,7 +48,7 @@ import org.apache.james.user.lib.mock.Mo
 import org.apache.james.util.InternetPrintWriter;
 import org.apache.james.vut.lib.mock.MockVirtualUserTableManagementImpl;
 
-public abstract class AbstractRemoteManagerTest extends TestCase {
+public class RemoteManagerTest extends TestCase {
     private int m_remoteManagerListenerPort = PortUtil.getNonPrivilegedPort();
     private RemoteManagerTestConfiguration m_testConfiguration;
     private String m_host = "127.0.0.1";
@@ -79,10 +80,31 @@ public abstract class AbstractRemoteMana
         initRemoteManager(testConfiguration);
     }
 
-    protected abstract void setUpRemoteManager() throws Exception;
-
-    protected abstract void initRemoteManager(RemoteManagerTestConfiguration testConfiguration) throws Exception;
+    private RemoteManager remotemanager;
 
+    protected void initRemoteManager(RemoteManagerTestConfiguration testConfiguration) throws Exception {
+        remotemanager.configure(testConfiguration);
+        remotemanager.init();
+    }
+
+    protected void setUpRemoteManager() throws Exception {
+        
+        remotemanager = new RemoteManager();
+        remotemanager.setDNSService(dnsservice);
+        remotemanager.setFileSystem(filesystem);
+        remotemanager.setProtocolHandlerChain(chain);
+        SimpleLog log = new SimpleLog("Mock");
+        log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
+        remotemanager.setLog(log);
+               
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        remotemanager.destroy();
+    }
+    
     protected void login() throws IOException {
         login(m_testConfiguration.getLoginName(), m_testConfiguration.getLoginPassword());
     }

Copied: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java (from r1052876, james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java?p2=james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java&p1=james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java&r1=1052876&r2=1053908&rev=1053908&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java Thu Dec 30 15:04:53 2010
@@ -42,11 +42,13 @@ import junit.framework.TestCase;
 import org.apache.commons.logging.impl.SimpleLog;
 import org.apache.commons.net.smtp.SMTPClient;
 import org.apache.commons.net.smtp.SMTPReply;
+import org.apache.james.protocols.impl.AbstractChannelPipelineFactory;
 import org.apache.james.queue.api.mock.MockMailQueue;
 import org.apache.james.queue.api.mock.MockMailQueueFactory;
 import org.apache.james.server.PortUtil;
 import org.apache.james.server.mock.MockJSR250Loader;
 import org.apache.james.server.mock.MockProtocolHandlerChain;
+import org.apache.james.smtpserver.netty.SMTPServer;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
@@ -58,7 +60,7 @@ import org.apache.mailet.HostAddress;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 
-public abstract class AbstractSMTPServerTest extends TestCase {
+public abstract class SMTPServerTest extends TestCase {
 
     final class AlterableDNSServer implements DNSService {
 
@@ -151,7 +153,7 @@ public abstract class AbstractSMTPServer
     protected MockMailQueueFactory queueFactory;
     protected MockMailQueue queue;
     
-    public AbstractSMTPServerTest() {
+    public SMTPServerTest() {
         super("AsyncSMTPServerTest");
         m_smtpListenerPort = PortUtil.getNonPrivilegedPort();
     }
@@ -169,8 +171,78 @@ public abstract class AbstractSMTPServer
         setUpSMTPServer();
     }
 
-    protected abstract void setUpSMTPServer() throws Exception;
-    protected abstract void initSMTPServer(SMTPTestConfiguration testConfiguration) throws Exception;
+    private SMTPServer m_smtpServer;
+
+    protected void initSMTPServer(SMTPTestConfiguration testConfiguration) throws Exception {
+        m_smtpServer.configure(testConfiguration);      
+        m_smtpServer.init();
+      
+    }
+
+    protected void setUpSMTPServer() throws Exception {
+        SimpleLog log = new SimpleLog("SMTP");
+        log.setLevel(SimpleLog.LOG_LEVEL_ALL);
+        m_smtpServer = new SMTPServer();
+        m_smtpServer.setDNSService(m_dnsServer);
+        m_smtpServer.setFileSystem(fileSystem);      
+        
+        m_smtpServer.setProtocolHandlerChain(chain);
+        
+        m_smtpServer.setLog(log);
+    }
+
+
+    public void testMaxLineLength() throws Exception {
+        finishSetUp(m_testConfiguration);
+
+        SMTPClient smtpProtocol = new SMTPClient();
+        smtpProtocol.connect("127.0.0.1", m_smtpListenerPort);
+        
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < AbstractChannelPipelineFactory.MAX_LINE_LENGTH; i++) {
+            sb.append("A");
+        }
+        smtpProtocol.sendCommand("EHLO " + sb.toString());
+        System.out.println(smtpProtocol.getReplyString());
+        assertEquals("Line length exceed", 500, smtpProtocol.getReplyCode());
+
+        smtpProtocol.sendCommand("EHLO test");
+        assertEquals("Line length ok", 250, smtpProtocol.getReplyCode());
+
+
+        smtpProtocol.quit();
+        smtpProtocol.disconnect();
+    }
+    
+    public void testConnectionLimit() throws Exception {
+        m_testConfiguration.setConnectionLimit(2);
+        finishSetUp(m_testConfiguration);
+
+        SMTPClient smtpProtocol = new SMTPClient();
+        smtpProtocol.connect("127.0.0.1", m_smtpListenerPort);
+        SMTPClient smtpProtocol2 = new SMTPClient();
+        smtpProtocol2.connect("127.0.0.1", m_smtpListenerPort);
+        
+        SMTPClient smtpProtocol3 = new SMTPClient();
+
+        try {
+            smtpProtocol3.connect("127.0.0.1", m_smtpListenerPort);
+            Thread.sleep(3000);
+            fail("Shold disconnect connection 3");
+        } catch (Exception e) {
+            
+        }
+        
+        smtpProtocol.quit();
+        smtpProtocol.disconnect();
+        smtpProtocol2.quit();
+        smtpProtocol2.disconnect();
+        
+        smtpProtocol3.connect("127.0.0.1", m_smtpListenerPort);
+        Thread.sleep(3000);
+
+       
+    }
 
     protected void finishSetUp(SMTPTestConfiguration testConfiguration) throws Exception {
         testConfiguration.init();
@@ -185,6 +257,8 @@ public abstract class AbstractSMTPServer
 
     protected void tearDown() throws Exception {
         queue.clear();
+        m_smtpServer.destroy();
+
         super.tearDown();
         
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org