1
2
3
4
5
6
7
8
9
10
11 package test.mock.mail.server;
12
13 import alt.javax.mail.Session;
14 import com.atlassian.mail.server.managers.OFBizMailServerManager;
15 import com.atlassian.mail.server.MailServer;
16 import com.atlassian.mail.server.SMTPMailServer;
17 import com.atlassian.mail.server.impl.PopMailServerImpl;
18 import com.atlassian.mail.MailException;
19 import com.opensymphony.util.TextUtils;
20 import org.ofbiz.core.entity.GenericValue;
21
22 import javax.mail.Authenticator;
23 import java.util.Map;
24 import java.util.Properties;
25
26 import test.mock.mail.MockSession;
27
28 public class MockMailServerManager extends OFBizMailServerManager
29 {
30 private MockSession mockSession = new MockSession();
31
32 public Map getMapFromColumns(MailServer mailServer) throws MailException
33 {
34 return super.getMapFromColumns(mailServer);
35 }
36
37 public GenericValue getMailServerGV(Long id) throws MailException
38 {
39 return super.getMailServerGV(id);
40 }
41
42 public MailServer constructMailServer(GenericValue gv)
43 {
44 if (SERVER_TYPES[0].equals(gv.getString("type")))
45 return new PopMailServerImpl(gv.getLong("id"), gv.getString("name"), gv.getString("description"), gv.getString("servername"), gv.getString("username"), gv.getString("password"));
46 else if (SERVER_TYPES[1].equals(gv.getString("type")))
47 {
48 if (TextUtils.stringSet(gv.getString("servername")))
49 {
50 return new MockSMTPMailServer(gv.getLong("id"), gv.getString("name"), gv.getString("description"), gv.getString("from"), gv.getString("prefix"), false, gv.getString("servername"), gv.getString("username"), gv.getString("password"));
51 }
52 else
53 {
54 return new MockSMTPMailServer(gv.getLong("id"), gv.getString("name"), gv.getString("description"), gv.getString("from"), gv.getString("prefix"), true, gv.getString("jndilocation"), gv.getString("username"), gv.getString("password"));
55 }
56 }
57 else
58 return null;
59 }
60
61 public Session getSession(Properties props, Authenticator auth)
62 {
63 return mockSession.getInstance(props, auth);
64 }
65 }