1   package com.ozacc.mail.impl;
2   
3   import java.io.File;
4   
5   import javax.mail.internet.InternetAddress;
6   
7   import junit.framework.TestCase;
8   
9   import org.apache.log4j.BasicConfigurator;
10  
11  import com.ozacc.mail.Mail;
12  import com.ozacc.mail.MailBuildException;
13  import com.ozacc.mail.MultipleMailBuilder;
14  
15  /***
16   * 
17   * @since 1.0.1
18   * @author Tomohiro Otsuka
19   * @version $Id: XMLMailBuilderImplTest.java,v 1.6.2.1 2005/01/21 22:17:27 otsuka Exp $
20   */
21  public class XMLMailBuilderImplTest extends TestCase {
22  
23  	private MultipleMailBuilder builder;
24  
25  	/*
26  	 * @see TestCase#setUp()
27  	 */
28  	protected void setUp() throws Exception {
29  		super.setUp();
30  		BasicConfigurator.configure();
31  
32  		builder = new XMLMailBuilderImpl();
33  	}
34  
35  	/***
36  	 * @see junit.framework.TestCase#tearDown()
37  	 */
38  	protected void tearDown() throws Exception {
39  		super.tearDown();
40  		BasicConfigurator.resetConfiguration();
41  	}
42  
43  	public final void testBuildMailCDATA() throws Exception {
44  		String classPath = "/com/ozacc/mail/test-mail6-cdata.xml";
45  
46  		String expectedBody = "¤³¤?¤ÏCDATA¤Î¥Æ¥­¥¹¥È¤Ç¤¹¡£";
47  
48  		Mail result = builder.buildMail(classPath);
49  
50  		assertEquals(expectedBody, result.getText());
51  	}
52  
53  	public final void testBuildMultipartMailFromFile() throws Exception {
54  		String path = "src/test/com/ozacc/mail/test-mail1.xml";
55  		File file = new File(path);
56  
57  		String subject = "XMLMailBuilder¤Î¥Æ¥¹¥È¥±¡¼¥¹";
58  		String text = "²?¹Ô¤·¤Þ¤¹¡£\n²?¹Ô¤·¤Þ¤·¤¿¡£\n¥Æ¥¹¥È¤ÏÀ®¸ù¡£";
59  		String htmlText = "<html><body>¤³¤?¤ÏHTML¥Æ¥­¥¹¥È</body></html>";
60  
61  		InternetAddress from = new InternetAddress("from@example.com", "º¹½Ð¿Í");
62  		InternetAddress returnPath = new InternetAddress("return@example.com");
63  		InternetAddress replyTo = new InternetAddress("reply@example.com");
64  
65  		InternetAddress to1 = new InternetAddress("to1@example.com", "°¸À?1");
66  		InternetAddress to2 = new InternetAddress("to2@example.com");
67  
68  		InternetAddress cc1 = new InternetAddress("cc1@example.com", "CC1");
69  		InternetAddress cc2 = new InternetAddress("cc2@example.com");
70  
71  		InternetAddress bcc = new InternetAddress("bcc@example.com");
72  
73  		Mail result = builder.buildMail(file);
74  
75  		System.out.println(result);
76  
77  		assertEquals(subject, result.getSubject());
78  		assertEquals(text, result.getText());
79  
80  		assertTrue(result.isMultipartMail());
81  		assertTrue(result.isHtmlMail());
82  		assertEquals(htmlText, result.getHtmlText());
83  
84  		assertEquals(from, result.getFrom());
85  		assertEquals(returnPath, result.getReturnPath());
86  		assertEquals(replyTo, result.getReplyTo());
87  
88  		InternetAddress[] tos = result.getTo();
89  		assertEquals(2, tos.length);
90  		assertEquals(to1, tos[0]);
91  		assertEquals(to2, tos[1]);
92  
93  		InternetAddress[] ccs = result.getCc();
94  		assertEquals(2, ccs.length);
95  		assertEquals(cc1, ccs[0]);
96  		assertEquals(cc2, ccs[1]);
97  
98  		InternetAddress[] bccs = result.getBcc();
99  		assertEquals(1, bccs.length);
100 		assertEquals(bcc, bccs[0]);
101 	}
102 
103 	/*
104 	 * Class under test for Mail buildMail(String)
105 	 */
106 	public final void testBuildMailFromClassPath() throws Exception {
107 		String classPath = "/com/ozacc/mail/test-mail1.xml";
108 
109 		String subject = "XMLMailBuilder¤Î¥Æ¥¹¥È¥±¡¼¥¹";
110 		String text = "²?¹Ô¤·¤Þ¤¹¡£\n²?¹Ô¤·¤Þ¤·¤¿¡£\n¥Æ¥¹¥È¤ÏÀ®¸ù¡£";
111 
112 		InternetAddress from = new InternetAddress("from@example.com", "º¹½Ð¿Í");
113 		InternetAddress returnPath = new InternetAddress("return@example.com");
114 		InternetAddress replyTo = new InternetAddress("reply@example.com");
115 
116 		InternetAddress to1 = new InternetAddress("to1@example.com", "°¸À?1");
117 		InternetAddress to2 = new InternetAddress("to2@example.com");
118 
119 		InternetAddress cc1 = new InternetAddress("cc1@example.com", "CC1");
120 		InternetAddress cc2 = new InternetAddress("cc2@example.com");
121 
122 		InternetAddress bcc = new InternetAddress("bcc@example.com");
123 
124 		Mail result = builder.buildMail(classPath);
125 
126 		assertEquals(subject, result.getSubject());
127 		assertEquals(text, result.getText());
128 
129 		assertEquals(from, result.getFrom());
130 		assertEquals(returnPath, result.getReturnPath());
131 		assertEquals(replyTo, result.getReplyTo());
132 
133 		InternetAddress[] tos = result.getTo();
134 		assertEquals(2, tos.length);
135 		assertEquals(to1, tos[0]);
136 		assertEquals(to2, tos[1]);
137 
138 		InternetAddress[] ccs = result.getCc();
139 		assertEquals(2, ccs.length);
140 		assertEquals(cc1, ccs[0]);
141 		assertEquals(cc2, ccs[1]);
142 
143 		InternetAddress[] bccs = result.getBcc();
144 		assertEquals(1, bccs.length);
145 		assertEquals(bcc, bccs[0]);
146 	}
147 
148 	/*
149 	 * Class under test for Mail buildMail(File)
150 	 */
151 	public final void testBuildMailFile() throws Exception {
152 		String path = "src/test/com/ozacc/mail/test-mail1.xml";
153 		File file = new File(path);
154 
155 		String subject = "XMLMailBuilder¤Î¥Æ¥¹¥È¥±¡¼¥¹";
156 		String text = "²?¹Ô¤·¤Þ¤¹¡£\n²?¹Ô¤·¤Þ¤·¤¿¡£\n¥Æ¥¹¥È¤ÏÀ®¸ù¡£";
157 
158 		InternetAddress from = new InternetAddress("from@example.com", "º¹½Ð¿Í");
159 		InternetAddress returnPath = new InternetAddress("return@example.com");
160 		InternetAddress replyTo = new InternetAddress("reply@example.com");
161 
162 		InternetAddress to1 = new InternetAddress("to1@example.com", "°¸À?1");
163 		InternetAddress to2 = new InternetAddress("to2@example.com");
164 
165 		InternetAddress cc1 = new InternetAddress("cc1@example.com", "CC1");
166 		InternetAddress cc2 = new InternetAddress("cc2@example.com");
167 
168 		InternetAddress bcc = new InternetAddress("bcc@example.com");
169 
170 		Mail result = builder.buildMail(file);
171 
172 		assertEquals(subject, result.getSubject());
173 		assertEquals(text, result.getText());
174 
175 		assertEquals(from, result.getFrom());
176 		assertEquals(returnPath, result.getReturnPath());
177 		assertEquals(replyTo, result.getReplyTo());
178 
179 		InternetAddress[] tos = result.getTo();
180 		assertEquals(2, tos.length);
181 		assertEquals(to1, tos[0]);
182 		assertEquals(to2, tos[1]);
183 
184 		InternetAddress[] ccs = result.getCc();
185 		assertEquals(2, ccs.length);
186 		assertEquals(cc1, ccs[0]);
187 		assertEquals(cc2, ccs[1]);
188 
189 		InternetAddress[] bccs = result.getBcc();
190 		assertEquals(1, bccs.length);
191 		assertEquals(bcc, bccs[0]);
192 	}
193 
194 	public void testBuildMailFromMultipleMailsTemplate() throws Exception {
195 		String path = "src/test/com/ozacc/mail/test-mail7-multiple.xml";
196 		File file = new File(path);
197 
198 		Mail result1 = builder.buildMail(file, "first");
199 		assertEquals("1ÄÌÌÜ", result1.getText());
200 
201 		Mail result2 = builder.buildMail(file, "second");
202 		assertEquals("2ÄÌÌÜ", result2.getText());
203 
204 		try {
205 			Mail result3 = builder.buildMail(file, "¥µ¡¼¥É");
206 		} catch (MailBuildException expected) {
207 			
208 		}
209 	}
210 }