View Javadoc

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   * @author Galaio da Silva <a href="mailto:jgalaio@digitalis.pt">jgalaio@digitalis.pt</a><br/>
15   * @created 30 de Ago de 2011
16   */
17  public class CheckMail implements ISanityCheckTestSuite {
18  
19      /**
20       * Test the Mail configurations
21       * 
22       * @return <code>SanityUnitResult</code>
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       * Test the Mail authentication configurations
58       * 
59       * @return <code>SanityUnitResult</code>
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       * Test send mail
92       * 
93       * @return <code>SanityUnitResult</code>
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 }