1   /*
2    * Created by IntelliJ IDEA.
3    * User: owen
4    * Date: Nov 25, 2002
5    * Time: 10:44:50 AM
6    * CVS Revision: $Revision: 1.11 $
7    * Last CVS Commit: $Date: 2005/05/10 07:01:16 $
8    * Author of last CVS Commit: $Author: schang $
9    * To change this template use Options | File Templates.
10   */
11  package test.atlassian.mail.server;
12  
13  import com.atlassian.core.ofbiz.CoreFactory;
14  import com.atlassian.core.ofbiz.test.AbstractOFBizTestCase;
15  import com.atlassian.core.ofbiz.test.AbstractOFBizTestCase;
16  import com.atlassian.core.ofbiz.test.UtilsForTests;
17  import com.atlassian.core.ofbiz.test.UtilsForTests;
18  import com.atlassian.core.ofbiz.CoreFactory;
19  import com.atlassian.mail.server.MailServer;
20  import com.atlassian.mail.server.impl.PopMailServerImpl;
21  import com.atlassian.mail.server.impl.SMTPMailServerImpl;
22  import com.atlassian.mail.server.managers.OFBizMailServerManager;
23  import org.ofbiz.core.entity.GenericValue;
24  import org.ofbiz.core.util.UtilMisc;
25  import test.mock.mail.server.MockMailServerManager;
26  
27  import java.util.HashMap;
28  import java.util.Map;
29  
30  public class TestMailServerManager extends AbstractOFBizTestCase
31  {
32      public TestMailServerManager(String s)
33      {
34          super(s);
35      }
36  
37      protected void tearDown() throws Exception
38      {
39          UtilsForTests.cleanUsers();
40          super.tearDown();
41      }
42  
43      public void testCreateSMTPAndGet() throws Exception
44      {
45          MockMailServerManager mmsm = new MockMailServerManager();
46          MailServer localMailServer = new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows");
47          Long id = mmsm.create(localMailServer);
48          assertNotNull(id);
49          MailServer mailServer = mmsm.getMailServer(id);
50          assertEquals(localMailServer, mailServer);
51      }
52  
53      public void testUpdateSMTP() throws Exception
54      {
55          MockMailServerManager mmsm = new MockMailServerManager();
56          Long id = mmsm.create(new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows"));
57          MailServer mailServer = mmsm.getMailServer("Name");
58          if (OFBizMailServerManager.SERVER_TYPES[1].equals(mailServer.getType()))
59          {
60              SMTPMailServerImpl smtp = (SMTPMailServerImpl) mailServer;
61              smtp.setUsername(null);
62              smtp.setPassword(null);
63              smtp.setName("new name");
64              mmsm.update(smtp);
65              MailServer updatedMailServer = mmsm.getMailServer(id);
66              assertNull(updatedMailServer.getUsername());
67              assertNull(updatedMailServer.getPassword());
68              assertEquals("new name", updatedMailServer.getName());
69              assertEquals(mailServer, updatedMailServer);
70          }
71          else
72              fail("Mail Server returned is not an SMTP server");
73      }
74  
75      public void testDeleteSMTP() throws Exception
76      {
77          MockMailServerManager mmsm = new MockMailServerManager();
78          Long id = mmsm.create(new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows"));
79          MailServer mailServer = mmsm.getMailServer(id);
80          mmsm.delete(mailServer.getId());
81          assertNull(mmsm.getMailServer(id));
82      }
83  
84      public void testGetMailServerGV() throws Exception
85      {
86          MockMailServerManager mmsm = new MockMailServerManager();
87          Map params = UtilMisc.toMap("id", new Long(1));
88          params.put("name", "Name");
89          params.put("description", "Description");
90          params.put("from", "owen@atlassian.com");
91          params.put("prefix", "[OWEN]");
92          params.put("smtpPort", "25");
93          params.put("servername", "mail.atlassian.com");
94          params.put("username", "owen");
95          params.put("password", "fellows");
96          params.put("type", OFBizMailServerManager.SERVER_TYPES[1]);
97          GenericValue gv = CoreFactory.getGenericDelegator().makeValue("MailServer", params);
98          Long id = mmsm.create(new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows"));
99          GenericValue mailServerGV = mmsm.getMailServerGV(id);
100         assertEquals(gv, mailServerGV);
101     }
102 
103     public void testConstructMailServer1()
104     {
105         MockMailServerManager mmsm = new MockMailServerManager();
106         MailServer oldMailServer = new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows");
107         Map params = UtilMisc.toMap("id", new Long(1));
108         params.put("name", "Name");
109         params.put("description", "Description");
110         params.put("from", "owen@atlassian.com");
111         params.put("prefix", "[OWEN]");
112         params.put("servername", "mail.atlassian.com");
113         params.put("username", "owen");
114         params.put("password", "fellows");
115         params.put("type", OFBizMailServerManager.SERVER_TYPES[1]);
116         GenericValue gv = CoreFactory.getGenericDelegator().makeValue("MailServer", params);
117         MailServer newMailServer = mmsm.constructMailServer(gv);
118         assertEquals(oldMailServer, newMailServer);
119     }
120 
121     public void testConstructMailServer2()
122     {
123         MockMailServerManager mmsm = new MockMailServerManager();
124         MailServer oldMailServer = new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", true, "mail.atlassian.com", "owen", "fellows");
125         Map params = UtilMisc.toMap("id", new Long(1));
126         params.put("name", "Name");
127         params.put("description", "Description");
128         params.put("from", "owen@atlassian.com");
129         params.put("prefix", "[OWEN]");
130         params.put("jndilocation", "mail.atlassian.com");
131         params.put("username", "owen");
132         params.put("password", "fellows");
133         params.put("type", OFBizMailServerManager.SERVER_TYPES[1]);
134         GenericValue gv = CoreFactory.getGenericDelegator().makeValue("MailServer", params);
135         MailServer newMailServer = mmsm.constructMailServer(gv);
136         assertEquals(oldMailServer, newMailServer);
137     }
138 
139     public void testConstructMailServer3()
140     {
141         MockMailServerManager mmsm = new MockMailServerManager();
142         MailServer oldMailServer = new PopMailServerImpl(new Long(1), "Name", "Description", "mail.atlassian.com", "owen", "fellows");
143         Map params = UtilMisc.toMap("id", new Long(1));
144         params.put("name", "Name");
145         params.put("description", "Description");
146         params.put("servername", "mail.atlassian.com");
147         params.put("username", "owen");
148         params.put("password", "fellows");
149         params.put("type", OFBizMailServerManager.SERVER_TYPES[0]);
150         GenericValue gv = CoreFactory.getGenericDelegator().makeValue("MailServer", params);
151         MailServer newMailServer = mmsm.constructMailServer(gv);
152         assertEquals(oldMailServer, newMailServer);
153     }
154 
155     public void testConstructMailServer4()
156     {
157         MockMailServerManager mmsm = new MockMailServerManager();
158         Map params = UtilMisc.toMap("type", "notype");
159         GenericValue gv = CoreFactory.getGenericDelegator().makeValue("MailServer", params);
160         MailServer newMailServer = mmsm.constructMailServer(gv);
161         assertEquals(null, newMailServer);
162     }
163 
164     public void testGetMapFromColumns1() throws Exception
165     {
166         MockMailServerManager mmsm = new MockMailServerManager();
167         MailServer oldMailServer = new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", false, "mail.atlassian.com", "owen", "fellows");
168         Map oldMap = mmsm.getMapFromColumns(oldMailServer);
169         Map params = UtilMisc.toMap("name", "Name");
170         params.put("description", "Description");
171         params.put("from", "owen@atlassian.com");
172         params.put("prefix", "[OWEN]");
173         params.put("smtpPort", "25");
174         params.put("servername", "mail.atlassian.com");
175         params.put("username", "owen");
176         params.put("password", "fellows");
177         params.put("type", OFBizMailServerManager.SERVER_TYPES[1]);
178         assertEquals(oldMap, params);
179     }
180 
181     public void testGetMapFromColumns2() throws Exception
182     {
183         MockMailServerManager mmsm = new MockMailServerManager();
184         MailServer oldMailServer = new SMTPMailServerImpl(new Long(1), "Name", "Description", "owen@atlassian.com", "[OWEN]", true, "mail.atlassian.com", null, null);
185         Map oldMap = mmsm.getMapFromColumns(oldMailServer);
186         Map params = new HashMap();
187         params.put("name", "Name");
188         params.put("description", "Description");
189         params.put("from", "owen@atlassian.com");
190         params.put("prefix", "[OWEN]");
191         params.put("smtpPort", "25");
192         params.put("servername", null);
193         params.put("jndilocation", "mail.atlassian.com");
194         params.put("type", OFBizMailServerManager.SERVER_TYPES[1]);
195         params.put("username", null);
196         params.put("password", null);
197         assertEquals(oldMap, params);
198     }
199 
200     public void testGetMapFromColumns3() throws Exception
201     {
202         MockMailServerManager mmsm = new MockMailServerManager();
203         MailServer oldMailServer = new PopMailServerImpl(new Long(1), "Name", "Description", "mail.atlassian.com", "owen", "fellows");
204         Map oldMap = mmsm.getMapFromColumns(oldMailServer);
205         Map params = UtilMisc.toMap("name", "Name");
206         params.put("description", "Description");
207         params.put("username", "owen");
208         params.put("password", "fellows");
209         params.put("type", OFBizMailServerManager.SERVER_TYPES[0]);
210         params.put("servername", "mail.atlassian.com");
211         assertEquals(oldMap, params);
212     }
213 }