KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > folder > imap > IMAPSyncTest


1 package org.columba.mail.folder.imap;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Arrays JavaDoc;
5 import java.util.Collections JavaDoc;
6 import java.util.List JavaDoc;
7
8 import junit.framework.TestCase;
9
10 import org.columba.core.command.CommandCancelledException;
11 import org.columba.mail.imap.TestHeaderList;
12 import org.columba.mail.imap.TestServer;
13 import org.columba.mail.message.ColumbaHeader;
14 import org.columba.mail.message.IPersistantHeaderList;
15 import org.columba.ristretto.imap.IMAPException;
16 import org.columba.ristretto.imap.MailboxStatus;
17
18 public class IMAPSyncTest extends TestCase {
19
20     public void testSimpleNewMails() throws IOException JavaDoc, CommandCancelledException, IMAPException, Exception JavaDoc {
21         IPersistantHeaderList testList = new TestHeaderList();
22         MailboxStatus status = new MailboxStatus();
23         status.setMessages(100);
24         status.setUidNext(101);
25         TestServer testServer = new TestServer(status);
26         
27         IMAPFolder folder = new IMAPFolder(testList, testServer);
28         
29         // Add some messages
30
for( int i=1; i<=100; i++) {
31             ColumbaHeader header = new ColumbaHeader();
32             header.set("columba.uid", i);
33             
34             testList.add(header, i);
35             testServer.addHeader(header,i);
36         }
37         
38         
39         // Check for the new messages
40
for( int i=1; i<=10; i++) {
41             ColumbaHeader header = new ColumbaHeader();
42             header.set("columba.uid", i+100);
43             testServer.addHeader(header,i+100);
44         }
45         status.setMessages(110);
46         status.setUidNext(111);
47
48         assertEquals(100, testList.count());
49         folder.synchronizeHeaderlist();
50         
51         // Check for success
52
assertEquals(110, testList.count());
53         List JavaDoc keys = Arrays.asList(testList.getUids());
54         Collections.sort(keys);
55         int testUid = 1;
56         for( Object JavaDoc uid: keys) {
57             assertEquals(testUid++, uid);
58         }
59         
60         assertEquals(111, testUid);
61     }
62     
63     public void testSimpleRemovedMails() throws IOException JavaDoc, CommandCancelledException, IMAPException, Exception JavaDoc {
64         IPersistantHeaderList testList = new TestHeaderList();
65         MailboxStatus status = new MailboxStatus();
66         status.setMessages(100);
67         status.setUidNext(101);
68         TestServer testServer = new TestServer(status);
69         
70         IMAPFolder folder = new IMAPFolder(testList, testServer);
71         
72         // Add some messages
73
for( int i=1; i<=100; i++) {
74             ColumbaHeader header = new ColumbaHeader();
75             header.set("columba.uid", i);
76             
77             testList.add(header, i);
78             testServer.addHeader(header,i);
79         }
80         
81         
82         // Check for the new messages
83
for( int i=1; i<=10; i++) {
84             testServer.removeHeader(100 - 3 * i);
85         }
86         status.setMessages(90);
87
88         assertEquals(100, testList.count());
89         folder.synchronizeHeaderlist();
90         
91         // Check for success
92
assertEquals(90, testList.count());
93         List JavaDoc keys = Arrays.asList(testList.getUids());
94         for( Object JavaDoc uid: keys) {
95             if(testServer.getHeaderList().exists(uid) == false) {
96                 System.out.println("UID is removed but not from headerlist: " + uid);
97                 assertTrue(false);
98             }
99         }
100     }
101
102     public void testNewAndRemovedMails() throws IOException JavaDoc, CommandCancelledException, IMAPException, Exception JavaDoc {
103         IPersistantHeaderList testList = new TestHeaderList();
104         MailboxStatus status = new MailboxStatus();
105         status.setMessages(100);
106         status.setUidNext(101);
107         TestServer testServer = new TestServer(status);
108         
109         IMAPFolder folder = new IMAPFolder(testList, testServer);
110         
111         // Add some messages
112
for( int i=1; i<=100; i++) {
113             ColumbaHeader header = new ColumbaHeader();
114             header.set("columba.uid", i);
115             
116             testList.add(header, i);
117             testServer.addHeader(header,i);
118
119         }
120         
121         
122         // Add some new messages
123
// and remove the same number of old messages
124
for( int i=1; i<=10; i++) {
125             ColumbaHeader header = new ColumbaHeader();
126             header.set("columba.uid", i+100);
127             testServer.addHeader(header,i+100);
128             testServer.removeHeader(100 - 3 * i);
129             
130         }
131         status.setMessages(100);
132         status.setUidNext(111);
133
134         assertEquals(100, testList.count());
135         folder.synchronizeHeaderlist();
136         
137         // Check for success
138
assertEquals(100, testList.count());
139         List JavaDoc keys = Arrays.asList(testList.getUids());
140         for( Object JavaDoc uid: keys) {
141             if(testServer.getHeaderList().exists(uid) == false) {
142                 System.out.println("UID is removed but not from headerlist: " + uid);
143                 assertTrue(false);
144             }
145         }
146     }
147
148 }
149
Popular Tags