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 import org.apache.velocity.VelocityContext;
11
12 import com.ozacc.mail.Mail;
13 import com.ozacc.mail.VelocityMailBuilder;
14 import com.ozacc.mail.impl.JDomXMLMailBuilderTest.Customer;
15
16 /***
17 *
18 * @since 1.0.1
19 * @author Tomohiro Otsuka
20 * @version $Id: XMLVelocityMailBuilderImplTest.java,v 1.1.2.1 2004/10/24 10:28:09 otsuka Exp $
21 */
22 public class XMLVelocityMailBuilderImplTest extends TestCase {
23
24 private VelocityMailBuilder builder;
25
26
27
28
29 protected void setUp() throws Exception {
30 super.setUp();
31 BasicConfigurator.configure();
32 builder = new XMLVelocityMailBuilderImpl();
33 }
34
35 /***
36 * @see junit.framework.TestCase#tearDown()
37 */
38 protected void tearDown() throws Exception {
39 BasicConfigurator.resetConfiguration();
40 }
41
42 public void testBuildMailFromFile() throws Exception {
43 String path = "src/test/com/ozacc/mail/test-mail3-velocity.xml";
44 File file = new File(path);
45
46 String name = "°ËÅ?È?º?";
47 String email = "misaki@example.com";
48 Customer customer = new Customer(name, email);
49 String item = "GIVE&TAKE (Beige)";
50
51 InternetAddress from = new InternetAddress("shop@example.com", "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥×");
52 InternetAddress to = new InternetAddress(email, name);
53
54 String subject = "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥× - ¤´Ãú渤γÎǧ";
55 String text = name + "ÍÍ\n\n¤ªÇ㤤¾å¤²¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£\n\nGIVE&TAKE (Beige)";
56
57 VelocityContext context = new VelocityContext();
58 context.put("customer", customer);
59 context.put("item", item);
60
61
62 Mail result = builder.buildMail(file, context);
63
64 assertEquals(from, result.getFrom());
65 assertEquals(to, result.getTo()[0]);
66 assertEquals(subject, result.getSubject());
67 assertEquals(text, result.getText());
68 }
69
70 public final void testBuildMailStringVelocityContext() throws Exception {
71 String classPath = "/com/ozacc/mail/test-mail3-velocity.xml";
72
73 String name = "°ËÅ?È?º?";
74 String email = "misaki@example.com";
75 Customer customer = new Customer(name, email);
76 String item = "GIVE&TAKE (Beige)";
77
78 InternetAddress from = new InternetAddress("shop@example.com", "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥×");
79 InternetAddress to = new InternetAddress(email, name);
80
81 String subject = "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥× - ¤´Ãú渤γÎǧ";
82 String text = name + "ÍÍ\n\n¤ªÇ㤤¾å¤²¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£\n\nGIVE&TAKE (Beige)";
83
84 VelocityContext context = new VelocityContext();
85 context.put("customer", customer);
86 context.put("item", item);
87
88
89 Mail result = builder.buildMail(classPath, context);
90
91 assertEquals(from, result.getFrom());
92 assertEquals(to, result.getTo()[0]);
93 assertEquals(subject, result.getSubject());
94 assertEquals(text, result.getText());
95 }
96
97 public final void testBuildMailStringVelocityContextWithCache() throws Exception {
98 builder.setCacheEnabled(true);
99
100 String classPath = "/com/ozacc/mail/test-mail3-velocity.xml";
101
102 String name = "°ËÅ?È?º?";
103 String email = "misaki@example.com";
104 Customer customer = new Customer(name, email);
105 String item = "GIVE&TAKE (Beige)";
106
107 InternetAddress from = new InternetAddress("shop@example.com", "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥×");
108 InternetAddress to = new InternetAddress(email, name);
109 String subject = "XMLMailBuilder¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥× - ¤´Ãú渤γÎǧ";
110 String text = name + "ÍÍ\n\n¤ªÇ㤤¾å¤²¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£\n\nGIVE&TAKE (Beige)";
111
112 VelocityContext context = new VelocityContext();
113 context.put("customer", customer);
114 context.put("item", item);
115
116
117 Mail result = builder.buildMail(classPath, context);
118 Mail result2 = builder.buildMail(classPath, context);
119 builder.clearCache();
120 Mail result3 = builder.buildMail(classPath, context);
121
122 assertEquals(from, result.getFrom());
123 assertEquals(to, result.getTo()[0]);
124 assertEquals(subject, result.getSubject());
125 assertEquals(text, result.getText());
126 }
127 }