KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > folder > command > MarkFolderAsReadCommandTest


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.folder.command;
17
18 import java.io.ByteArrayInputStream JavaDoc;
19 import java.io.ByteArrayOutputStream JavaDoc;
20 import java.io.IOException JavaDoc;
21 import java.io.InputStream JavaDoc;
22 import java.io.OutputStreamWriter JavaDoc;
23
24 import org.columba.core.command.NullWorkerStatusController;
25 import org.columba.mail.command.MailFolderCommandReference;
26 import org.columba.mail.folder.AbstractFolderTst;
27 import org.columba.mail.folder.AbstractMessageFolder;
28 import org.columba.mail.folder.MailboxTstFactory;
29
30 /**
31  * @author redsolo
32  */

33 public class MarkFolderAsReadCommandTest extends AbstractFolderTst {
34
35     public MarkFolderAsReadCommandTest(String JavaDoc arg0) {
36         super(arg0);
37     }
38     
39     /**
40      * @param factory folder factory
41      * @param test the name of the test
42      */

43     public MarkFolderAsReadCommandTest(MailboxTstFactory factory, String JavaDoc test) {
44         super(factory, test);
45     }
46
47     /**
48      * Test to mark a folder as read.
49      * @throws Exception thrown by the command itself.
50      */

51     public void testExecute() throws Exception JavaDoc {
52         AbstractMessageFolder folder = getSourceFolder();
53
54         Object JavaDoc uid1 = folder.addMessage(createMessageStream("sub1", "body1"));
55         Object JavaDoc uid2 = folder.addMessage(createMessageStream("sub2", "body2"));
56         Object JavaDoc uid3 = folder.addMessage(createMessageStream("sub3", "body3"));
57         Object JavaDoc uid4 = folder.addMessage(createMessageStream("sub4", "body4"));
58         Object JavaDoc uid5 = folder.addMessage(createMessageStream("sub5", "body5"));
59
60         assertNotNull("Msg 1's uid was null", uid1);
61         assertNotNull("Msg 2's uid was null", uid2);
62         assertNotNull("Msg 3's uid was null", uid3);
63
64         folder.markMessage(new Object JavaDoc[]{uid1, uid3, uid5}, MarkMessageCommand.MARK_AS_UNREAD);
65         folder.markMessage(new Object JavaDoc[]{uid2, uid4}, MarkMessageCommand.MARK_AS_READ);
66
67         assertNotNull("Flags for msg 1 was null", folder.getFlags(uid1));
68         assertFalse("Msg 1 is read", folder.getFlags(uid1).getSeen());
69         assertNotNull("Flags for msg 2 was null", folder.getFlags(uid2));
70         assertTrue("Msg 2 is read", folder.getFlags(uid2).getSeen());
71         assertNotNull("Flags for msg 3 was null", folder.getFlags(uid3));
72         assertFalse("Msg 3 is read", folder.getFlags(uid3).getSeen());
73
74         MailFolderCommandReference references = new MailFolderCommandReference(folder);
75         MarkFolderAsReadCommand command = new MarkFolderAsReadCommand(references);
76         command.execute(NullWorkerStatusController.getInstance());
77
78         assertEquals("Message 1 isnt read", true, folder.getFlags(uid1).getSeen());
79         assertEquals("Message 2 isnt read", true, folder.getFlags(uid2).getSeen());
80         assertEquals("Message 3 isnt read", true, folder.getFlags(uid3).getSeen());
81         assertEquals("Message 4 isnt read", true, folder.getFlags(uid4).getSeen());
82         assertEquals("Message 5 isnt read", true, folder.getFlags(uid5).getSeen());
83     }
84
85     /**
86      * Creates a inputstream as a valid email
87      * @param subject the subject of email
88      * @param body the body
89      * @return an input stream
90      * @throws IOException thrown if there is some real strange things with the writers
91      */

92     private InputStream JavaDoc createMessageStream(String JavaDoc subject, String JavaDoc body) throws IOException JavaDoc {
93         ByteArrayOutputStream JavaDoc outputStream = new ByteArrayOutputStream JavaDoc();
94         OutputStreamWriter JavaDoc writer = new OutputStreamWriter JavaDoc(outputStream);
95
96         writer.write("Subject: " + subject + "\n");
97         writer.write("\n");
98         writer.write(body);
99
100         return new ByteArrayInputStream JavaDoc(outputStream.toByteArray());
101     }
102
103 }
104
Popular Tags