1 package test.atlassian.mail.server.managers;
2
3 import com.atlassian.mail.server.managers.XMLMailServerManager;
4 import com.atlassian.mail.server.PopMailServer;
5 import com.atlassian.mail.server.SMTPMailServer;
6 import com.atlassian.mail.server.impl.SMTPMailServerImpl;
7 import com.atlassian.mail.MailException;
8
9 import junit.framework.TestCase;
10 import org.ofbiz.core.util.UtilMisc;
11
12 import java.util.Collections;
13 import java.util.List;
14
15 public class TestXMLMailServerManager extends TestCase
16 {
17 public void testMailServers() throws MailException
18 {
19 XMLMailServerManager sm = new XMLMailServerManager();
20 sm.init(Collections.EMPTY_MAP);
21 assertEquals("mail-servers.xml", sm.getConfigFile());
22
23 assertEquals(0, sm.getPopMailServers().size());
24 assertEquals(1, sm.getSmtpMailServers().size());
25
26 SMTPMailServer smtpserver = sm.getDefaultSMTPMailServer();
27 assertEquals("smtptwo", smtpserver.getName());
28 assertNull(smtpserver.getHostname());
29 assertEquals("java:comp/env/Mail", smtpserver.getJndiLocation());
30 assertEquals(1, smtpserver.getId().longValue());
31 }
32
33 public void testTestMailServers() throws MailException
34 {
35 XMLMailServerManager sm = new XMLMailServerManager();
36 sm.init(UtilMisc.toMap("config-file", "test-mail-servers.xml"));
37 assertEquals("test-mail-servers.xml", sm.getConfigFile());
38
39 assertEquals(1, sm.getPopMailServers().size());
40 PopMailServer popserver = sm.getDefaultPopMailServer();
41 assertEquals("defpop", popserver.getName());
42 assertEquals("mail.atlassian.com", popserver.getHostname());
43 assertEquals("foo", popserver.getUsername());
44 assertEquals("bar", popserver.getPassword());
45 assertEquals("The default pop server.", popserver.getDescription());
46 assertEquals(new Long(2), popserver.getId());
47
48 assertEquals(1, sm.getSmtpMailServers().size());
49 SMTPMailServer smtpserver = sm.getDefaultSMTPMailServer();
50 assertEquals("defsmtp", smtpserver.getName());
51 assertEquals("mail.atlassian.com", smtpserver.getHostname());
52 assertEquals("foo@atlassian.com", smtpserver.getDefaultFrom());
53 assertEquals(new Long(1), smtpserver.getId());
54 }
55
56 public void testDeleteMailServer() throws MailException
57 {
58
59 XMLMailServerManager sm = new XMLMailServerManager();
60 sm.init(UtilMisc.toMap("config-file", "test-mail-servers.xml"));
61
62
63 List smtpMailServers = sm.getSmtpMailServers();
64 assertEquals(1, smtpMailServers.size());
65 SMTPMailServer s = (SMTPMailServer) smtpMailServers.get(0);
66 sm.delete(s.getId());
67
68 assertEquals(0, sm.getSmtpMailServers().size());
69
70
71 try
72 {
73 sm.delete(new Long(999));
74 fail();
75 }
76 catch (Exception e)
77 {
78
79 }
80 }
81
82 public void testUpdateMailServer() throws MailException
83 {
84
85 XMLMailServerManager sm = new XMLMailServerManager();
86 sm.init(UtilMisc.toMap("config-file", "test-mail-servers.xml"));
87
88
89 List smtpMailServers = sm.getSmtpMailServers();
90 assertEquals(1, smtpMailServers.size());
91 SMTPMailServer s = (SMTPMailServer) smtpMailServers.get(0);
92
93
94 s.setDefaultFrom("dave@atlassian");
95 s.setHostname("testhostname");
96
97
98 Long id = s.getId();
99 sm.update(s);
100
101
102 SMTPMailServer updatedServer = (SMTPMailServer) sm.getMailServer(id);
103 assertEquals("dave@atlassian", updatedServer.getDefaultFrom());
104 assertEquals("testhostname", updatedServer.getHostname());
105 }
106
107 public void testIdGenerationScheme() throws MailException
108 {
109
110 XMLMailServerManager sm = new XMLMailServerManager();
111 sm.init(UtilMisc.toMap("config-file", "test-mail-servers.xml"));
112
113
114 SMTPMailServer server1 = createSMTPMailServer("a");
115 assertEquals(3, sm.create(server1).longValue());
116
117
118 sm.delete(new Long(2));
119
120
121 SMTPMailServer server4 = createSMTPMailServer("d");
122 assertEquals(4, sm.create(server4).longValue());
123 }
124
125 private SMTPMailServer createSMTPMailServer(String name)
126 {
127 return new SMTPMailServerImpl(null, name, null, null, null, false, null, null, null);
128 }
129 }