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 ba...@apache.org on 2006/05/16 19:41:18 UTC

svn commit: r407009 - /james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java

Author: bago
Date: Tue May 16 10:41:18 2006
New Revision: 407009

URL: http://svn.apache.org/viewcvs?rev=407009&view=rev
Log:
Converted POP3ServerTest to use commons-net POP3Client instead of ristretto POP3Protocol (completed JAMES-498)

Modified:
    james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java

Modified: james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java
URL: http://svn.apache.org/viewcvs/james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java?rev=407009&r1=407008&r2=407009&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java Tue May 16 10:41:18 2006
@@ -19,6 +19,8 @@
 import org.apache.avalon.cornerstone.services.sockets.SocketManager;
 import org.apache.avalon.cornerstone.services.threads.ThreadManager;
 import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.commons.net.pop3.POP3Client;
+import org.apache.commons.net.pop3.POP3MessageInfo;
 import org.apache.james.core.MailImpl;
 import org.apache.james.core.MimeMessageCopyOnWriteProxy;
 import org.apache.james.core.MimeMessageInputStreamSource;
@@ -35,18 +37,12 @@
 import org.apache.james.userrepository.MockUsersRepository;
 import org.apache.james.util.connection.SimpleConnectionManager;
 import org.apache.mailet.MailAddress;
-import org.columba.ristretto.io.Source;
-import org.columba.ristretto.pop3.POP3Exception;
-import org.columba.ristretto.pop3.POP3Protocol;
-import org.columba.ristretto.pop3.POP3Response;
-import org.columba.ristretto.pop3.ScanListEntry;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.mail.util.SharedByteArrayInputStream;
 
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.Reader;
 import java.util.ArrayList;
 
 import junit.framework.TestCase;
@@ -64,7 +60,7 @@
     private POP3Server m_pop3Server;
 
     private MockUsersRepository m_usersRepository = new MockUsersRepository();
-    private POP3Protocol m_pop3Protocol = null;
+    private POP3Client m_pop3Protocol = null;
 
     public POP3ServerTest() {
         super("POP3ServerTest");
@@ -102,108 +98,76 @@
 
     protected void tearDown() throws Exception {
         super.tearDown();
-        if (m_pop3Protocol != null) m_pop3Protocol.quit();
+        if (m_pop3Protocol != null) {
+            m_pop3Protocol.sendCommand("quit");
+            m_pop3Protocol.disconnect();
+        }
         m_pop3Server.dispose();
     }
 
-    public void testAuthenticationFail() throws Exception, POP3Exception {
+    public void testAuthenticationFail() throws Exception {
         finishSetUp(m_testConfiguration);
-
-        m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                m_pop3ListenerPort);
-        m_pop3Protocol.openPort();
+        
+        m_pop3Protocol = new POP3Client();
+        m_pop3Protocol.connect("127.0.0.1", m_pop3ListenerPort);
 
         m_usersRepository.addUser("known", "test2");
 
-        int res = 0;
-        try {
-            m_pop3Protocol.userPass("known", "test".toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
-
-        assertEquals(-1, res);
+        m_pop3Protocol.login("known", "test");
+        assertEquals(0, m_pop3Protocol.getState());
+        assertTrue(m_pop3Protocol.getReplyString().startsWith("-ERR"));
     }
 
-    public void testUnknownUser() throws Exception, POP3Exception {
+    public void testUnknownUser() throws Exception {
         finishSetUp(m_testConfiguration);
 
-        m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                m_pop3ListenerPort);
-        m_pop3Protocol.openPort();
-
-        int res = 0;
-        try {
-            m_pop3Protocol.userPass("unknown", "test".toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        m_pop3Protocol = new POP3Client();
+        m_pop3Protocol.connect("127.0.0.1", m_pop3ListenerPort);
 
-        assertEquals(-1, res);
+        m_pop3Protocol.login("unknown", "test");
+        assertEquals(0, m_pop3Protocol.getState());
+        assertTrue(m_pop3Protocol.getReplyString().startsWith("-ERR"));
     }
 
-    public void testKnownUserEmptyInbox() throws Exception, POP3Exception {
+    public void testKnownUserEmptyInbox() throws Exception {
         finishSetUp(m_testConfiguration);
 
-        m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                m_pop3ListenerPort);
-        m_pop3Protocol.openPort();
+        m_pop3Protocol = new POP3Client();
+        m_pop3Protocol.connect("127.0.0.1",m_pop3ListenerPort);
 
         m_usersRepository.addUser("foo", "bar");
         m_mailServer.setUserInbox("foo", new MockMailRepository());
 
-        int res = 0;
+        m_pop3Protocol.login("foo", "bar");
+        System.err.println(m_pop3Protocol.getState());
+        assertEquals(1, m_pop3Protocol.getState());
 
-        try {
-            m_pop3Protocol.userPass("foo", "bar".toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-            fail("pass failed");
-        }
-
-        assertEquals(0, res);
-
-        res = 0;
-        ScanListEntry[] entries = null;
-        try {
-            entries = m_pop3Protocol.list();
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        POP3MessageInfo[] entries = entries = m_pop3Protocol.listMessages();
+        assertEquals(1, m_pop3Protocol.getState());
 
         assertNotNull(entries);
         assertEquals(entries.length, 0);
-        assertEquals(res, 0);
     }
 
-    public void testNotAsciiCharsInPassword() throws Exception, POP3Exception {
+    public void testNotAsciiCharsInPassword() throws Exception {
         finishSetUp(m_testConfiguration);
 
-        m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                m_pop3ListenerPort);
-        m_pop3Protocol.openPort();
+        m_pop3Protocol = new POP3Client();
+        m_pop3Protocol.connect("127.0.0.1",m_pop3ListenerPort);
 
         String pass = "bar" + (new String(new char[] { 200, 210 })) + "foo";
         m_usersRepository.addUser("foo", pass);
         m_mailServer.setUserInbox("foo", new MockMailRepository());
 
-        int res = 0;
-        try {
-            m_pop3Protocol.userPass("foo", pass.toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse() != null ? e.getResponse().getType() : -1;
-        }
-
-        assertEquals(0, res);
+        m_pop3Protocol.login("foo", pass);
+        assertEquals(1, m_pop3Protocol.getState());
     }
 
-    public void testKnownUserInboxWithMessages() throws Exception,
-            POP3Exception {
+    public void testKnownUserInboxWithMessages() throws Exception {
         finishSetUp(m_testConfiguration);
 
-        m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                m_pop3ListenerPort);
-        m_pop3Protocol.openPort();
+        m_pop3Protocol = new POP3Client();
+        m_pop3Protocol.connect("127.0.0.1",m_pop3ListenerPort);
 
         m_usersRepository.addUser("foo2", "bar2");
         MockMailRepository mailRep = new MockMailRepository();
@@ -212,102 +176,51 @@
 
         m_mailServer.setUserInbox("foo2", mailRep);
 
-        int res = 0;
-        try {
-            m_pop3Protocol.userPass("foo2", "bar2".toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
-
-        assertEquals(0, res);
+        m_pop3Protocol.login("foo2", "bar2");
+        assertEquals(1, m_pop3Protocol.getState());
 
-        res = 0;
-        ScanListEntry[] entries = null;
-        try {
-            entries = m_pop3Protocol.list();
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        POP3MessageInfo[] entries = m_pop3Protocol.listMessages();
 
         assertNotNull(entries);
         assertEquals(2, entries.length);
-        assertEquals(res, 0);
+        assertEquals(1, m_pop3Protocol.getState());
 
-        Source i = null;
-        try {
-            i = m_pop3Protocol.top(entries[0].getIndex(), 0);
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
-
-        assertNotNull(i);
-        i.close();
+        Reader r = m_pop3Protocol.retrieveMessageTop(entries[0].number, 0);
+        assertNotNull(r);
+        r.close();
 
-        InputStream i2 = null;
-        try {
-            i2 = m_pop3Protocol.retr(entries[0].getIndex());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        Reader r2 = m_pop3Protocol.retrieveMessage(entries[0].number);
+        assertNotNull(r2);
+        r2.close();
 
-        assertNotNull(i2);
-
-        i2.close();
-
-        boolean deleted = false;
-        try {
-            deleted = m_pop3Protocol.dele(entries[0].getIndex());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        boolean deleted = m_pop3Protocol.deleteMessage(entries[0].number);
 
         assertTrue(deleted);
-        assertEquals(res, 0);
-
-        m_pop3Protocol.quit();
+        assertEquals(1, m_pop3Protocol.getState());
 
-        m_pop3Protocol.openPort();
+        m_pop3Protocol.sendCommand("quit");
+        m_pop3Protocol.disconnect();
 
-        res = 0;
-        try {
-            m_pop3Protocol.userPass("foo2", "bar2".toCharArray());
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        }
+        m_pop3Protocol.connect("127.0.0.1",m_pop3ListenerPort);
 
-        assertEquals(0, res);
+        m_pop3Protocol.login("foo2", "bar2");
+        assertEquals(1, m_pop3Protocol.getState());
 
-        res = 0;
         entries = null;
 
-        try {
-            int[] stats = m_pop3Protocol.stat();
-            assertEquals(2, stats.length);
-            assertEquals(1, stats[0]);
-            assertEquals(92, stats[1]);
-        } catch (POP3Exception e) {
-            fail("stat failed");
-        }
+        POP3MessageInfo stats = m_pop3Protocol.status();
+        assertEquals(92, stats.size);
+        assertEquals(1, stats.number);
 
-        try {
-            entries = m_pop3Protocol.list();
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        } finally {
-            assertNotNull(entries);
-            assertEquals(1, entries.length);
-            assertEquals(res, 0);
-        }
+        entries = m_pop3Protocol.listMessages();
 
-        i = null;
-        try {
-            i = m_pop3Protocol.top(entries[0].getIndex(), 0);
-        } catch (POP3Exception e) {
-            res = e.getResponse().getType();
-        } finally {
-            assertNotNull(i);
-            i.close();
-        }
+        assertNotNull(entries);
+        assertEquals(1, entries.length);
+        assertEquals(1, m_pop3Protocol.getState());
+
+        Reader r3 = m_pop3Protocol.retrieveMessageTop(entries[0].number, 0);
+        assertNotNull(r3);
+        r3.close();
     }
 
     private void setupTestMails(MockMailRepository mailRep) throws MessagingException {
@@ -346,69 +259,35 @@
         //do not setupTestMails, this is done later
         m_mailServer.setUserInbox("foo2", mailRep2);
 
-        POP3Protocol pop3Protocol2 = null;
+        POP3Client pop3Protocol2 = null;
         try {
             // open two connections
-            m_pop3Protocol = new POP3Protocol("127.0.0.1",
-                    m_pop3ListenerPort);
-            pop3Protocol2 = new POP3Protocol("127.0.0.1",
-                    m_pop3ListenerPort);
-            m_pop3Protocol.openPort();
-            pop3Protocol2.openPort();
+            m_pop3Protocol = new POP3Client();
+            m_pop3Protocol.connect("127.0.0.1", m_pop3ListenerPort);
+            pop3Protocol2 = new POP3Client();
+            pop3Protocol2.connect("127.0.0.1", m_pop3ListenerPort);
 
-            assertEquals("first connection taken", 1, m_pop3Protocol.getState());
-            assertEquals("second connection taken", 1, pop3Protocol2.getState());
+            assertEquals("first connection taken", 0, m_pop3Protocol.getState());
+            assertEquals("second connection taken", 0, pop3Protocol2.getState());
 
             // open two accounts
-            try {
-                m_pop3Protocol.userPass("foo1", "bar1".toCharArray());
-            } catch (POP3Exception e) {
-                e.getResponse().getType();
-            }
+            m_pop3Protocol.login("foo1", "bar1");
 
-            try {
-                pop3Protocol2.userPass("foo2", "bar2".toCharArray());
-            } catch (POP3Exception e) {
-                e.getResponse().getType();
-            }
+            pop3Protocol2.login("foo2", "bar2");
 
-            ScanListEntry[] entries = null;
-            try {
-                entries = m_pop3Protocol.list();
-                assertEquals("foo1 has mails", 2, entries.length);
-            } catch (POP3Exception e) {
-                e.getResponse().getType();
-            }
+            POP3MessageInfo[] entries = m_pop3Protocol.listMessages();
+            assertEquals("foo1 has mails", 2, entries.length);
+
+            entries = pop3Protocol2.listMessages();
+            assertEquals("foo2 has no mails", 0, entries.length);
 
-            try {
-                entries = pop3Protocol2.list();
-                assertEquals("foo2 has no mails", 0, entries.length);
-            } catch (POP3Exception e) {
-                e.getResponse().getType();
-            }
         } finally {
             // put both to rest, field var is handled by tearDown()
-            if (pop3Protocol2 != null) pop3Protocol2.quit();
+            if (pop3Protocol2 != null) {
+                pop3Protocol2.sendCommand("quit");
+                pop3Protocol2.disconnect();
+            }
         }
     }
 
-}
-
-class MyPOP3Protocol extends POP3Protocol {
-
-    public MyPOP3Protocol(String s, int i) {
-        super(s, i);
-    }
-
-    public MyPOP3Protocol(String s) {
-        super(s);
-    }
-
-    public void sendCommand(String string, String[] strings) throws IOException {
-        super.sendCommand(string, strings);
-    }
-
-    public POP3Response getResponse() throws IOException, POP3Exception {
-        return super.readSingleLineResponse();
-    }
 }



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