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  	 * @see TestCase#setUp()
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 }