OSDN Git Service

文字コードを UTF-8、改行コードをLFに統一
[spring-ext/ozacc-mail.git] / src / test / java / com / ozacc / mail / impl / SendMailImplTest.java
old mode 100755 (executable)
new mode 100644 (file)
index b74ab50..ad26413
-package com.ozacc.mail.impl;\r
-\r
-import java.io.UnsupportedEncodingException;\r
-import java.util.Iterator;\r
-\r
-import javax.mail.internet.MimeUtility;\r
-\r
-import junit.framework.TestCase;\r
-\r
-import org.apache.log4j.BasicConfigurator;\r
-\r
-import com.dumbster.smtp.SimpleSmtpServer;\r
-import com.dumbster.smtp.SmtpMessage;\r
-import com.ozacc.mail.Mail;\r
-import com.ozacc.mail.MailException;\r
-\r
-/**\r
- * SendMailImplクラスのテストケース。\r
- * <p>\r
- * Dumbsterを使用してテストしているが、サポートされていない機能が多い。\r
- * \r
- * @author Tomohiro Otsuka\r
- * @version $Id: SendMailImplTest.java,v 1.3 2004/09/14 00:06:13 otsuka Exp $\r
- */\r
-public class SendMailImplTest extends TestCase {\r
-\r
-       private SendMailImpl sendMail;\r
-\r
-       private SimpleSmtpServer server;\r
-\r
-       /*\r
-        * @see TestCase#setUp()\r
-        */\r
-       protected void setUp() throws Exception {\r
-               super.setUp();\r
-\r
-               BasicConfigurator.configure();\r
-\r
-               int port = 2525;\r
-               server = SimpleSmtpServer.start(port);\r
-               sendMail = new SendMailImpl();\r
-               sendMail.setPort(port);\r
-       }\r
-\r
-       /**\r
-        * @see junit.framework.TestCase#tearDown()\r
-        */\r
-       protected void tearDown() throws Exception {\r
-               BasicConfigurator.resetConfiguration();\r
-       }\r
-\r
-       private String convertJisValue(String str) throws UnsupportedEncodingException {\r
-               return new String(str.getBytes(), "JIS");\r
-       }\r
-\r
-       /**\r
-        * 単発メールのテスト。\r
-        * \r
-        * @throws Exception\r
-        */\r
-       public void testSendMail() throws Exception {\r
-               String from = "from@example.com";\r
-               String fromName = "差出人";\r
-               String to = "info@example.com";\r
-               String subject = "件名";\r
-               String text = "テスト成功";\r
-\r
-               Mail mail = new Mail();\r
-               mail.setFrom(from, fromName);\r
-               mail.addTo(to);\r
-               mail.setSubject(subject);\r
-               mail.setText(text);\r
-\r
-               sendMail.send(mail);\r
-\r
-               server.stop();\r
-\r
-               assertEquals("1", 1, server.getReceievedEmailSize());\r
-               Iterator inbox = server.getReceivedEmail();\r
-               SmtpMessage email = (SmtpMessage)inbox.next();\r
-\r
-               assertEquals("2", mail.getTo()[0].toString(), email.getHeaderValue("To"));\r
-               assertEquals("3", mail.getFrom().toString(), email.getHeaderValue("From"));\r
-\r
-               assertEquals("4", mail.getSubject(), MimeUtility\r
-                               .decodeText(email.getHeaderValue("Subject")));\r
-               assertEquals("5", mail.getText() + "\n", convertJisValue(email.getBody()));\r
-       }\r
-\r
-       /**\r
-        * 複数メールの一括送信テスト。\r
-        * 同一接続内の複数メッセージを送信するとDumbsterがエラーを吐くので、\r
-        * とりあえず1つのMailインスタンスの配列でテスト。\r
-        * 実際のSMTPサーバ(qmail)で正常に送信できることは確認済み。\r
-        * \r
-        * @throws Exception\r
-        */\r
-       public void testSendMailMultiple() throws Exception {\r
-               String from = "from@example.com";\r
-               String fromName = "差出人";\r
-               String to = "info@example.com";\r
-               String subject = "件名";\r
-               String text = "テスト成功";\r
-\r
-               Mail mail1 = new Mail();\r
-               mail1.setFrom(from, fromName);\r
-               mail1.addTo(to);\r
-               mail1.setSubject(subject);\r
-               mail1.setText(text);\r
-\r
-               Mail mail2 = new Mail();\r
-               mail2.setFrom(from, fromName);\r
-               mail2.addTo(to);\r
-               mail2.setSubject(subject);\r
-               mail2.setText(text);\r
-\r
-               Mail mail3 = new Mail();\r
-               mail3.setFrom(from, fromName);\r
-               mail3.addTo(to);\r
-               mail3.setSubject(subject);\r
-               mail3.setText(text);\r
-\r
-               // Dumbsterのバグが直ったら、mail1, mail2, mail3 を含めてテスト\r
-               sendMail.send(new Mail[] { mail1 });\r
-\r
-               server.stop();\r
-\r
-               // Dumbsterのバグが直ったら、3 に。\r
-               assertEquals("1", 1, server.getReceievedEmailSize());\r
-\r
-               Iterator inbox = server.getReceivedEmail();\r
-               SmtpMessage email = (SmtpMessage)inbox.next();\r
-\r
-               assertEquals("2", mail1.getTo()[0].toString(), email.getHeaderValue("To"));\r
-               assertEquals("3", mail1.getFrom().toString(), email.getHeaderValue("From"));\r
-\r
-               assertEquals("4", mail1.getSubject(), MimeUtility.decodeText(email\r
-                               .getHeaderValue("Subject")));\r
-               assertEquals("5", mail1.getText() + "\n", convertJisValue(email.getBody()));\r
-       }\r
-\r
-       public void testSendMailWithReturnPath() throws Exception {\r
-               String from = "from@example.com";\r
-               String fromName = "差出人";\r
-               String to = "info@example.com";\r
-               String subject = "件名";\r
-               String text = "テスト成功";\r
-               String returnPath = "return-path@example.com";\r
-\r
-               Mail mail = new Mail();\r
-               mail.setFrom(from, fromName);\r
-               mail.addTo(to);\r
-               mail.setSubject(subject);\r
-               mail.setText(text);\r
-               mail.setReturnPath(returnPath);\r
-               mail.setImportance(Mail.Importance.HIGH);\r
-\r
-               sendMail.send(mail);\r
-\r
-               server.stop();\r
-\r
-               assertEquals(1, server.getReceievedEmailSize());\r
-               Iterator inbox = server.getReceivedEmail();\r
-               SmtpMessage email = (SmtpMessage)inbox.next();\r
-\r
-               // ヘッダー出力\r
-               /*\r
-                Iterator itr = email.getHeaderNames();\r
-                while (itr.hasNext()) {\r
-                String name = (String)itr.next();\r
-                System.out.println(name + "='" + email.getHeaderValue(name) + "'");\r
-                }\r
-                */\r
-\r
-               // Dumbsterでは、Return-Pathヘッダを保持していない\r
-               //assertEquals(mail.getReturnPath().toString(), email.getHeaderValue("Return-Path"));\r
-               // 重要度を確認\r
-               assertEquals(mail.getImportance(), email.getHeaderValue("Importance"));\r
-               assertEquals("1", email.getHeaderValue("X-Priority"));\r
-       }\r
-\r
-       /**\r
-        * 宛先を一件も指定していないためsend()時に例外をスロー。\r
-        * To、Cc、Bccを一件でも指定すれば、この例外は起こらない。\r
-        * \r
-        * @throws Exception\r
-        */\r
-       public void testSendMailNoRecpient() throws Exception {\r
-               String from = "from@example.com";\r
-               String fromName = "差出人";\r
-               String subject = "件名";\r
-               String text = "テスト成功";\r
-\r
-               Mail mail = new Mail();\r
-               mail.setFrom(from, fromName);\r
-               mail.setSubject(subject);\r
-               mail.setText(text);\r
-\r
-               try {\r
-                       sendMail.send(mail);\r
-                       fail("This should never be called.");\r
-               } catch (MailException expected) {\r
-                       assertEquals("MimeMessageの生成に失敗しました。", expected.getMessage());\r
-               }\r
-       }\r
-\r
+package com.ozacc.mail.impl;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Iterator;
+
+import javax.mail.internet.MimeUtility;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.BasicConfigurator;
+
+import com.dumbster.smtp.SimpleSmtpServer;
+import com.dumbster.smtp.SmtpMessage;
+import com.ozacc.mail.Mail;
+import com.ozacc.mail.MailException;
+
+/**
+ * SendMailImplクラスのテストケース。
+ * <p>
+ * Dumbsterを使用してテストしているが、サポートされていない機能が多い。
+ * 
+ * @author Tomohiro Otsuka
+ * @version $Id: SendMailImplTest.java,v 1.3 2004/09/14 00:06:13 otsuka Exp $
+ */
+public class SendMailImplTest extends TestCase {
+
+       private SendMailImpl sendMail;
+
+       private SimpleSmtpServer server;
+
+       /*
+        * @see TestCase#setUp()
+        */
+       protected void setUp() throws Exception {
+               super.setUp();
+
+               BasicConfigurator.configure();
+
+               int port = 2525;
+               server = SimpleSmtpServer.start(port);
+               sendMail = new SendMailImpl();
+               sendMail.setPort(port);
+       }
+
+       /**
+        * @see junit.framework.TestCase#tearDown()
+        */
+       protected void tearDown() throws Exception {
+               BasicConfigurator.resetConfiguration();
+       }
+
+       private String convertJisValue(String str) throws UnsupportedEncodingException {
+               return new String(str.getBytes(), "JIS");
+       }
+
+       /**
+        * 単発メールのテスト。
+        * 
+        * @throws Exception
+        */
+       public void testSendMail() throws Exception {
+               String from = "from@example.com";
+               String fromName = "差出人";
+               String to = "info@example.com";
+               String subject = "件名";
+               String text = "テスト成功";
+
+               Mail mail = new Mail();
+               mail.setFrom(from, fromName);
+               mail.addTo(to);
+               mail.setSubject(subject);
+               mail.setText(text);
+
+               sendMail.send(mail);
+
+               server.stop();
+
+               assertEquals("1", 1, server.getReceievedEmailSize());
+               Iterator inbox = server.getReceivedEmail();
+               SmtpMessage email = (SmtpMessage)inbox.next();
+
+               assertEquals("2", mail.getTo()[0].toString(), email.getHeaderValue("To"));
+               assertEquals("3", mail.getFrom().toString(), email.getHeaderValue("From"));
+
+               assertEquals("4", mail.getSubject(), MimeUtility
+                               .decodeText(email.getHeaderValue("Subject")));
+               assertEquals("5", mail.getText() + "\n", convertJisValue(email.getBody()));
+       }
+
+       /**
+        * 複数メールの一括送信テスト。
+        * 同一接続内の複数メッセージを送信するとDumbsterがエラーを吐くので、
+        * とりあえず1つのMailインスタンスの配列でテスト。
+        * 実際のSMTPサーバ(qmail)で正常に送信できることは確認済み。
+        * 
+        * @throws Exception
+        */
+       public void testSendMailMultiple() throws Exception {
+               String from = "from@example.com";
+               String fromName = "差出人";
+               String to = "info@example.com";
+               String subject = "件名";
+               String text = "テスト成功";
+
+               Mail mail1 = new Mail();
+               mail1.setFrom(from, fromName);
+               mail1.addTo(to);
+               mail1.setSubject(subject);
+               mail1.setText(text);
+
+               Mail mail2 = new Mail();
+               mail2.setFrom(from, fromName);
+               mail2.addTo(to);
+               mail2.setSubject(subject);
+               mail2.setText(text);
+
+               Mail mail3 = new Mail();
+               mail3.setFrom(from, fromName);
+               mail3.addTo(to);
+               mail3.setSubject(subject);
+               mail3.setText(text);
+
+               // Dumbsterのバグが直ったら、mail1, mail2, mail3 を含めてテスト
+               sendMail.send(new Mail[] { mail1 });
+
+               server.stop();
+
+               // Dumbsterのバグが直ったら、3 に。
+               assertEquals("1", 1, server.getReceievedEmailSize());
+
+               Iterator inbox = server.getReceivedEmail();
+               SmtpMessage email = (SmtpMessage)inbox.next();
+
+               assertEquals("2", mail1.getTo()[0].toString(), email.getHeaderValue("To"));
+               assertEquals("3", mail1.getFrom().toString(), email.getHeaderValue("From"));
+
+               assertEquals("4", mail1.getSubject(), MimeUtility.decodeText(email
+                               .getHeaderValue("Subject")));
+               assertEquals("5", mail1.getText() + "\n", convertJisValue(email.getBody()));
+       }
+
+       public void testSendMailWithReturnPath() throws Exception {
+               String from = "from@example.com";
+               String fromName = "差出人";
+               String to = "info@example.com";
+               String subject = "件名";
+               String text = "テスト成功";
+               String returnPath = "return-path@example.com";
+
+               Mail mail = new Mail();
+               mail.setFrom(from, fromName);
+               mail.addTo(to);
+               mail.setSubject(subject);
+               mail.setText(text);
+               mail.setReturnPath(returnPath);
+               mail.setImportance(Mail.Importance.HIGH);
+
+               sendMail.send(mail);
+
+               server.stop();
+
+               assertEquals(1, server.getReceievedEmailSize());
+               Iterator inbox = server.getReceivedEmail();
+               SmtpMessage email = (SmtpMessage)inbox.next();
+
+               // ヘッダー出力
+               /*
+                Iterator itr = email.getHeaderNames();
+                while (itr.hasNext()) {
+                String name = (String)itr.next();
+                System.out.println(name + "='" + email.getHeaderValue(name) + "'");
+                }
+                */
+
+               // Dumbsterでは、Return-Pathヘッダを保持していない
+               //assertEquals(mail.getReturnPath().toString(), email.getHeaderValue("Return-Path"));
+               // 重要度を確認
+               assertEquals(mail.getImportance(), email.getHeaderValue("Importance"));
+               assertEquals("1", email.getHeaderValue("X-Priority"));
+       }
+
+       /**
+        * 宛先を一件も指定していないためsend()時に例外をスロー。
+        * To、Cc、Bccを一件でも指定すれば、この例外は起こらない。
+        * 
+        * @throws Exception
+        */
+       public void testSendMailNoRecpient() throws Exception {
+               String from = "from@example.com";
+               String fromName = "差出人";
+               String subject = "件名";
+               String text = "テスト成功";
+
+               Mail mail = new Mail();
+               mail.setFrom(from, fromName);
+               mail.setSubject(subject);
+               mail.setText(text);
+
+               try {
+                       sendMail.send(mail);
+                       fail("This should never be called.");
+               } catch (MailException expected) {
+                       assertEquals("MimeMessageの生成に失敗しました。", expected.getMessage());
+               }
+       }
+
 }
\ No newline at end of file