1 package com.ozacc.mail.mock;
\r
3 import junit.framework.TestCase;
\r
5 import org.apache.log4j.BasicConfigurator;
\r
7 import com.dumbster.smtp.SimpleSmtpServer;
\r
8 import com.ozacc.mail.Mail;
\r
11 * SendMailImplクラスのテストケース。
\r
13 * Dumbsterを使用してテストしているが、サポートされていない機能が多い。
\r
15 * @author Tomohiro Otsuka
\r
16 * @version $Id: MockSendMailTest.java,v 1.6.2.1 2005/01/18 07:24:47 otsuka Exp $
\r
18 public class MockSendMailTest extends TestCase {
\r
20 private MockSendMail mockSendMail;
\r
22 private SimpleSmtpServer server;
\r
25 * @see TestCase#setUp()
\r
27 protected void setUp() throws Exception {
\r
30 BasicConfigurator.configure();
\r
32 mockSendMail = new MockSendMail();
\r
33 mockSendMail.setDebug(true);
\r
37 * @see junit.framework.TestCase#tearDown()
\r
39 protected void tearDown() throws Exception {
\r
40 BasicConfigurator.resetConfiguration();
\r
43 public void testSendMailNotMatchMailNum() throws Exception {
\r
44 Mail mail = new Mail();
\r
45 mail.addTo("to@example.com");
\r
46 mail.setFrom("from@example.com");
\r
48 mockSendMail.addExpectedMail(mail);
\r
49 mockSendMail.addExpectedMail(mail);
\r
51 mockSendMail.send(mail);
\r
54 mockSendMail.verify();
\r
55 fail("This should never be called.");
\r
56 } catch (AssertionFailedException expected) {
\r
61 public void testSendMailSuccess() throws Exception {
\r
62 String from = "from@example.com";
\r
63 String fromName = "差出人";
\r
64 String to = "info@example.com";
\r
65 String subject = "件名";
\r
66 String text = "テスト成功";
\r
68 Mail mail = new Mail();
\r
69 mail.setFrom(from, fromName);
\r
71 mail.setSubject(subject);
\r
74 mockSendMail.addExpectedMail(mail);
\r
76 mockSendMail.send(mail);
\r
78 mockSendMail.verify();
\r
81 public void testSendMailToAddressNotMatch() throws Exception {
\r
82 String from = "from@example.com";
\r
83 String fromName = "差出人";
\r
84 String to = "info@example.com";
\r
85 String subject = "件名";
\r
86 String text = "テスト成功";
\r
88 Mail mail1 = new Mail();
\r
89 mail1.setFrom(from, fromName);
\r
91 mail1.setSubject(subject);
\r
92 mail1.setText(text);
\r
94 Mail mail2 = new Mail();
\r
95 mail2.setFrom(from, fromName);
\r
96 mail2.addTo("contact@example.com");
\r
97 mail2.setSubject(subject);
\r
98 mail2.setText(text);
\r
100 mockSendMail.addExpectedMail(mail1);
\r
102 mockSendMail.send(mail2);
\r
105 mockSendMail.verify();
\r
106 fail("This should never be called.");
\r
107 } catch (AssertionFailedException expected) {
\r
112 public void testSendMailWithMockMail() throws Exception {
\r
113 Mail sentMail = new Mail();
\r
114 sentMail.setFrom("from@example.com");
\r
115 sentMail.setSubject("件名");
\r
116 sentMail.addTo("to@example.com");
\r
117 sentMail.setText("動的生成される本文");
\r
119 Mail expectedMail = new Mail();
\r
120 expectedMail.setFrom("from@example.com");
\r
121 expectedMail.setSubject("件名");
\r
123 MockMail mockMail = new MockMail();
\r
124 mockMail.setFrom("from@example.com");
\r
125 mockMail.setSubject("件名");
\r
127 MockSendMail sendMail = new MockSendMail();
\r
128 sendMail.setDebug(true);
\r
130 sendMail.addExpectedMail(mockMail);
\r
131 sendMail.send(sentMail);
\r
132 sendMail.verify(); // 成功
\r
134 sendMail = new MockSendMail();
\r
135 sendMail.addExpectedMail(expectedMail);
\r
136 sendMail.send(sentMail);
\r
138 sendMail.verify(); // エラー
\r
139 fail("This should never be called.");
\r
140 } catch (AssertionFailedException expected) {
\r
145 public void testSendMailWithMockMulitpartMail() throws Exception {
\r
146 Mail sentMail = new Mail();
\r
147 sentMail.setFrom("from@example.com");
\r
148 sentMail.setSubject("件名");
\r
149 sentMail.addTo("to@example.com");
\r
150 sentMail.setText("動的生成される本文");
\r
152 Mail expectedMail = new Mail();
\r
153 expectedMail.setFrom("from@example.com");
\r
154 expectedMail.setSubject("件名");
\r
155 expectedMail.addTo("to@example.com");
\r
156 expectedMail.setText("動的生成される本文");
\r
157 expectedMail.setHtmlText("<html><body>HTMLの本文</body></html>");
\r
159 MockSendMail sendMail = new MockSendMail();
\r
160 sendMail.setDebug(true);
\r
162 sendMail.addExpectedMail(expectedMail);
\r
163 sendMail.send(sentMail);
\r
167 fail("This should never be called.");
\r
168 } catch (AssertionFailedException expected) {
\r
172 sendMail.initialize();
\r
174 sendMail.addExpectedMail(expectedMail);
\r
175 sendMail.send(sentMail);
\r
178 fail("This should never be called.");
\r
179 } catch (AssertionFailedException expected) {
\r
183 sendMail.initialize();
\r
185 sentMail.setHtmlText("<html><body>HTMLの本文</body></html>");
\r
186 sendMail.addExpectedMail(expectedMail);
\r
187 sendMail.send(sentMail);
\r
190 sendMail.initialize();
\r
192 expectedMail.setHtmlText(null);
\r
193 sendMail.addExpectedMail(expectedMail);
\r
194 sendMail.send(sentMail);
\r
195 // expectedはマルチパートではないからsentMailのHTMLとは比較されない
\r
198 sendMail.initialize();
\r
200 MockMail expectedMockMail = new MockMail(expectedMail);
\r
201 sendMail.addExpectedMail(expectedMockMail);
\r
202 sendMail.send(sentMail);
\r
205 } catch (AssertionFailedException expected) {
\r
206 fail("This should never be called.");
\r
210 public void testSendMailToNameNotMatch() throws Exception {
\r
211 String from = "from@example.com";
\r
212 String fromName = "差出人";
\r
213 String to = "info@example.com";
\r
214 String subject = "件名";
\r
215 String text = "テスト成功";
\r
217 Mail mail1 = new Mail();
\r
218 mail1.setFrom(from, fromName);
\r
219 mail1.addTo(to, "宛先A");
\r
220 mail1.setSubject(subject);
\r
221 mail1.setText(text);
\r
223 Mail mail2 = new Mail();
\r
224 mail2.setFrom(from, fromName);
\r
225 mail2.addTo(to, "宛先B");
\r
226 mail2.setSubject(subject);
\r
227 mail2.setText(text);
\r
229 mockSendMail.addExpectedMail(mail1);
\r
231 mockSendMail.send(mail2);
\r
234 mockSendMail.verify();
\r
235 fail("This should never be called.");
\r
236 } catch (AssertionFailedException expected) {
\r
241 public void testSendMailFromNotMatch() throws Exception {
\r
242 String from = "from@example.com";
\r
243 String fromName = "差出人";
\r
244 String to = "info@example.com";
\r
245 String subject = "件名";
\r
246 String text = "テスト成功";
\r
248 Mail mail1 = new Mail();
\r
249 mail1.setFrom(from, fromName);
\r
251 mail1.setSubject(subject);
\r
252 mail1.setText(text);
\r
254 Mail mail2 = new Mail();
\r
255 mail2.setFrom("from@foo.com", fromName);
\r
257 mail2.setSubject(subject);
\r
258 mail2.setText(text);
\r
260 mockSendMail.addExpectedMail(mail1);
\r
262 mockSendMail.send(mail2);
\r
265 mockSendMail.verify();
\r
266 fail("This should never be called.");
\r
267 } catch (AssertionFailedException expected) {
\r