1 package pt.digitalis.dif.utils.mail.sanitycheck;
2
3 import pt.digitalis.dif.sanitycheck.ExecutionResult;
4 import pt.digitalis.dif.sanitycheck.ISanityCheckTestSuite;
5 import pt.digitalis.dif.sanitycheck.TestResult;
6 import pt.digitalis.dif.sanitycheck.annotations.SanityCheckTest;
7 import pt.digitalis.dif.utils.mail.MailAction;
8 import pt.digitalis.dif.utils.mail.MailMemoryPool;
9 import pt.digitalis.dif.utils.mail.MailSender;
10 import pt.digitalis.dif.utils.mail.MailType;
11 import pt.digitalis.utils.pools.ActionStatus;
12
13
14
15
16
17 public class CheckMail implements ISanityCheckTestSuite {
18
19
20
21
22
23
24 @SanityCheckTest
25 public TestResult test1MailConfiguration()
26 {
27 MailSender mailSender = MailSender.getInstance();
28
29 String errorMessage = "";
30 TestResult result = null;
31
32 if (mailSender.getConfiguration().getMailServer() == null
33 || "".equals(mailSender.getConfiguration().getMailServer()))
34 errorMessage += "MailServer, ";
35
36 if (mailSender.getConfiguration().getDefaultFromAddress() == null
37 || "".equals(mailSender.getConfiguration().getDefaultFromAddress()))
38 errorMessage += "DefaultFromAddress, ";
39
40 if (!"".equals(errorMessage))
41 {
42 errorMessage = errorMessage.substring(0, errorMessage.length() - 2);
43 errorMessage += " has configuration problems check in [CONFS]/Digi Utils/mail.";
44
45 result = new TestResult(ExecutionResult.FAILED);
46 result.setErrorMessage(errorMessage);
47 }
48 else
49 {
50 result = new TestResult(ExecutionResult.PASSED);
51 }
52
53 return result;
54 }
55
56
57
58
59
60
61 @SanityCheckTest
62 public TestResult test2MailAuthenticationConfiguration()
63 {
64 MailSender mailSender = MailSender.getInstance();
65 String errorMessage = "";
66 TestResult result = null;
67
68 if ("".equals(mailSender.getConfiguration().getMailServerUsername()))
69 errorMessage += "MailServerUsername, ";
70
71 if ("".equals(mailSender.getConfiguration().getMailServerPassword()))
72 errorMessage += "MailServerPassword, ";
73
74 if (!"".equals(errorMessage))
75 {
76 errorMessage = errorMessage.substring(0, errorMessage.length() - 2);
77 errorMessage += " with empty value. This could be a problem if you server has authentication or some restritions. If you don't need authenticantion bether keep #/Default/Value#. Check [CONFS]/Digi Utils/mail.";
78
79 result = new TestResult(ExecutionResult.WARNING);
80 result.setErrorMessage(errorMessage);
81 }
82 else
83 {
84 result = new TestResult(ExecutionResult.PASSED);
85 }
86
87 return result;
88 }
89
90
91
92
93
94
95 @SanityCheckTest
96 public TestResult test3MailSend()
97 {
98
99 MailSender mailSender = MailSender.getInstance();
100 String errorMessage = "";
101 TestResult result = null;
102
103 MailAction mailAction = new MailAction();
104 mailAction.setSubject("Mail Sanity Check");
105 mailAction.setMailSenderInstance(mailSender);
106 mailAction.setAddressTo(mailSender.getConfiguration().getDefaultFromAddress());
107
108 mailAction.setType(MailType.HTML);
109
110 mailAction.setBody("Mail Sanity Check");
111 mailAction = MailMemoryPool.getPool().executeActionWait(mailAction);
112
113 if (mailAction.getStatus().equals(ActionStatus.FAILED))
114 errorMessage += mailAction.getReason() + " | " + mailAction.getReasonException();
115
116 if (!"".equals(errorMessage))
117 {
118 result = new TestResult(ExecutionResult.FAILED);
119 result.setErrorMessage(errorMessage);
120 }
121 else
122 {
123 result = new TestResult(ExecutionResult.PASSED);
124 }
125
126 return result;
127
128 }
129
130 }