OSDN Git Service

文字コードを UTF-8、改行コードをLFに統一
[spring-ext/ozacc-mail.git] / src / test / java / com / ozacc / mail / mailet / MailetRunnerTest.java
1 package com.ozacc.mail.mailet;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.mail.internet.InternetAddress;
7
8 import org.apache.log4j.BasicConfigurator;
9
10 import junit.framework.TestCase;
11
12 import com.ozacc.mail.fetch.ReceivedMail;
13 import com.ozacc.mail.mock.MockFetchMailPro;
14
15 /**
16  * MailetRunnerのテストケース。
17  * 
18  * @author Tomohiro Otsuka
19  * @version $Id: MailetRunnerTest.java,v 1.1.2.1 2005/02/06 13:53:54 otsuka Exp $
20  */
21 public class MailetRunnerTest extends TestCase {
22
23         private MailetRunner mailetRunner;
24
25         /*
26          * @see TestCase#setUp()
27          */
28         protected void setUp() throws Exception {
29                 super.setUp();
30                 BasicConfigurator.configure();
31
32                 MockFetchMailPro fetchMailPro = new MockFetchMailPro();
33                 fetchMailPro.setupGetMails(getSampleMails());
34
35                 Mailet mailet = getSubjectOutputMailet();
36                 Matcher matcher = getExampleComAddressMatcher();
37                 List matcherList = new ArrayList();
38                 matcherList.add(matcher);
39                 MailetWrapper mw = new MailetWrapper(mailet, matcherList);
40                 List mwList = new ArrayList();
41                 mwList.add(mw);
42                 mwList.add(mw);
43
44                 mailetRunner = new MailetRunner();
45                 mailetRunner.setFetchMailPro(fetchMailPro);
46                 mailetRunner.setMailetWrapperList(mwList);
47         }
48
49         /**
50          * @return 
51          */
52         private ReceivedMail[] getSampleMails() {
53                 List list = new ArrayList();
54                 ReceivedMail m1 = new ReceivedMail();
55                 m1.setSubject("m1 - 出力されます。");
56                 m1.addTo("to@example.com");
57                 list.add(m1);
58                 ReceivedMail m2 = new ReceivedMail();
59                 m2.setSubject("m2 - 出力されません。");
60                 m2.addTo("to@example.net");
61                 list.add(m2);
62                 ReceivedMail m3 = new ReceivedMail();
63                 m3.setSubject("m3 - 出力されます。");
64                 m3.addTo("to@example.net");
65                 m3.addTo("to@example.com");
66                 list.add(m3);
67                 return (ReceivedMail[])list.toArray(new ReceivedMail[list.size()]);
68         }
69
70         /**
71          * @return 
72          */
73         private Matcher getExampleComAddressMatcher() {
74                 Matcher m = new Matcher() {
75
76                         public boolean match(ReceivedMail mail) {
77                                 InternetAddress[] toAddresses = mail.getTo();
78                                 for (int i = 0; i < toAddresses.length; i++) {
79                                         InternetAddress address = toAddresses[i];
80                                         if (address.getAddress().equalsIgnoreCase("to@example.com")) {
81                                                 return true;
82                                         }
83                                 }
84                                 return false;
85                         }
86                 };
87                 return m;
88         }
89
90         /**
91          * @return 
92          */
93         private Mailet getSubjectOutputMailet() {
94                 return new Mailet() {
95
96                         public void service(ReceivedMail mail) {
97                                 System.out.println(mail.getSubject());
98                         }
99                 };
100         }
101
102         /*
103          * @see TestCase#tearDown()
104          */
105         protected void tearDown() throws Exception {
106                 super.tearDown();
107                 BasicConfigurator.resetConfiguration();
108         }
109
110         public void testRun() {
111                 mailetRunner.run();
112         }
113
114 }