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
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
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 }