Advertisement
Guest User

code

a guest
Sep 14th, 2015
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.62 KB | None | 0 0
  1. package com.chrisbaur.test.mailaction;
  2.  
  3. import static org.junit.Assert.assertTrue;
  4.  
  5. import java.io.File;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8.  
  9. import org.junit.Rule;
  10. import org.junit.Test;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13.  
  14. import com.chrisbaur.mailaction.BasicSendAndReceive;
  15. import com.chrisbaur.mailbean.MailBean;
  16. import com.chrisbaur.properties.MailConfigBean;
  17. import com.chrisbaur.test.MethodLogger;
  18.  
  19. import jodd.mail.EmailAttachment;
  20.  
  21. /**
  22. * A basic test method that determines if a simple message sent is the same
  23. * message received
  24. *
  25. * @author Ken Fogel
  26. *
  27. */
  28. public class MailActionTest {
  29.  
  30. // A Rule is implemented as a class with methods that are associated
  31. // with the lifecycle of a unit test. These methods run when required.
  32. // Avoids the need to cut and paste code into every test method.
  33. @Rule
  34. public MethodLogger methodLogger = new MethodLogger();
  35.  
  36. // Real programmers use logging, not System.out.println
  37. private final Logger log = LoggerFactory.getLogger(getClass().getName());
  38.  
  39. //Email accounts and passwords
  40. private final String receiver = "christo.receive@gmail.com";
  41. private final String sender = "christo.send@gmail.com";
  42. private final String rPass = "Receivemail!";
  43. private final String sPass = "Sendmail!";
  44. private final String email1 = "chriskbaur@gmail.com";
  45. private final String email2 = "christobaur@hotmail.fr";
  46. private final String email3 = "c-baur@hotmail.com";
  47. private final String email4 = "christoffer.baur@dawsoncollege.qc.ca";
  48. private final EmailAttachment e1 = EmailAttachment.attachment().bytes(new File("cat.jpg")).setInline("cat.jpg").create();
  49. private final EmailAttachment e2 = EmailAttachment.attachment().bytes(new File("cat.jpg")).setInline("cat.jpg").create();
  50. private final EmailAttachment a1 = EmailAttachment.attachment().bytes(new File("cat.jpg")).create();
  51. private final EmailAttachment a2 = EmailAttachment.attachment().bytes(new File("cat.jpg")).create();
  52.  
  53. private final ArrayList<String> twoReceiver = new ArrayList<String>();
  54. private final ArrayList<String> TwoMemberCc = new ArrayList<String>(Arrays.asList(email1, email2));
  55. private final ArrayList<String> TwoMemberBcc = new ArrayList<String>(Arrays.asList(email3, email4));
  56. private final ArrayList<String> oneMemberCc = new ArrayList<String>(Arrays.asList(email1));
  57. private final ArrayList<String> oneMemberBcc = new ArrayList<String>(Arrays.asList(email3));
  58. private final ArrayList<String> noMemberCc = new ArrayList<String>();
  59. private final ArrayList<String> noMemberBcc = new ArrayList<String>();
  60. private final ArrayList<EmailAttachment> oneEmbedded = new ArrayList<EmailAttachment>(Arrays.asList(e1));
  61. private final ArrayList<EmailAttachment> twoEmbedded = new ArrayList<EmailAttachment>(Arrays.asList(e1, e2));
  62. private final ArrayList<EmailAttachment> oneAttach = new ArrayList<EmailAttachment>(Arrays.asList(a1));
  63. private final ArrayList<EmailAttachment> twoAttach = new ArrayList<EmailAttachment>(Arrays.asList(a1, a2));
  64. private final ArrayList<EmailAttachment> noEmbedded = new ArrayList<EmailAttachment>();
  65. private final ArrayList<EmailAttachment> noAttach = new ArrayList<EmailAttachment>();
  66. private final ArrayList<EmailAttachment> BothAttach = new ArrayList<EmailAttachment>(Arrays.asList(e1,a1));
  67.  
  68.  
  69.  
  70.  
  71. /**
  72. * Test method for
  73. * {@link com.chrisbaur.mailaction.BasicSendAndReceive#sendEmail(com.chrisbaur.mailbean.MailBean, com.chrisbaur.properties.MailConfigBean)}
  74. * .
  75. *
  76. * In this test a message is created, sent, received and compared.
  77. */
  78. @Test
  79. public void testSendEmail() {
  80. twoReceiver.add(receiver);
  81. twoReceiver.add(email1);
  82. sendEmail(twoReceiver, "First Test", "This test has no cc, bcc, attachments, html", null, "Sent", null, null, null );
  83.  
  84. // A better test approach is to have a custom equals and hashCode method
  85. // in the MailBean. This way you could just write:
  86. // assertEquals(mailSendbean, mailReceiveBean);
  87. // I leave this for you to implement. Here is the crude implementation.
  88. // if (mailBeanSend.getToField().get(0).trim().equals(mailBeansReceive.get(0).getToField().get(0).trim())) {
  89. // if (mailBeanSend.getFromField().trim().equals(mailBeansReceive.get(0).getFromField().trim())) {
  90. // if (mailBeanSend.getSubjectField().trim().equals(mailBeansReceive.get(0).getSubjectField().trim())) {
  91. // if (mailBeanSend.getTextMessageField().trim()
  92. // .equals(mailBeansReceive.get(0).getTextMessageField().trim())) {
  93. // test = true;
  94. // }
  95. // }
  96. // }
  97. // }
  98.  
  99. // Testing by using hashCode, and equals if necessary
  100. //if(mailBeanSend.hashCode() == mailBeanReceive.hashCode()))
  101.  
  102. // It would be better if we were informed which fields did not match.
  103. // Another feature left to you.
  104. }
  105. /**
  106. *
  107. * @param receivers
  108. * @param subjectField
  109. * @param textMessage
  110. * @param htmlMessage
  111. * @param folder
  112. * @param cc
  113. * @param bcc
  114. * @param emailattachments
  115. */
  116. private void sendEmail(ArrayList<String> receivers, String subjectField, String textMessage, String htmlMessage,
  117. String folder, ArrayList<String> cc, ArrayList<String> bcc, ArrayList<EmailAttachment> emailAttachments){
  118.  
  119. MailConfigBean sendConfigBean = new MailConfigBean("smtp.gmail.com", sender, sPass);
  120. MailConfigBean receiveConfigBean = new MailConfigBean("imap.gmail.com", receiver, rPass);
  121. BasicSendAndReceive basicSendAndReceive = new BasicSendAndReceive();
  122.  
  123. MailBean mailBeanSend = new MailBean(receivers, sendConfigBean.getUserEmailAddress(), subjectField, textMessage, htmlMessage, folder, 0, cc,
  124. bcc, emailAttachments);
  125. for(String s : receivers)
  126. mailBeanSend.getToField().add(s);
  127. mailBeanSend.setFromField(sendConfigBean.getUserEmailAddress());
  128. mailBeanSend.setSubjectField(subjectField);
  129. mailBeanSend.setTextMessageField(textMessage);
  130. mailBeanSend.setHtmlMessageField(htmlMessage);
  131. mailBeanSend.setFolder(folder);
  132. mailBeanSend.setMailStatus(0);
  133. mailBeanSend.setCcField(cc);
  134. mailBeanSend.setBccField(bcc);
  135. mailBeanSend.setAttachments(emailAttachments);
  136. String messageId = basicSendAndReceive.sendEmail(mailBeanSend, sendConfigBean);
  137. log.info("MessageId is " + messageId);
  138.  
  139. // Add a five second pause to allow the Gmail server to receive what has
  140. // been sent
  141. try {
  142. Thread.sleep(5000);
  143. } catch (InterruptedException e) {
  144. log.error("Threaded sleep failed", e);
  145. }
  146.  
  147. ArrayList<MailBean> mailBeanReceive = basicSendAndReceive.receiveEmail(receiveConfigBean);
  148.  
  149. boolean test = false;
  150.  
  151. // An optional block of log statements so that you can see the message
  152. log.info(" To: " + mailBeanSend.getToField().get(0) + " : " + mailBeanReceive.get(0).getToField().get(0));
  153. log.info(" From: " + mailBeanSend.getFromField() + " : " + mailBeanReceive.get(0).getFromField());
  154. log.info("Subject: " + mailBeanSend.getSubjectField() + " : " + mailBeanReceive.get(0).getSubjectField());
  155. log.info(" Text: " + mailBeanSend.getTextMessageField() + "=" + mailBeanSend.getTextMessageField().length()
  156. + " : " + mailBeanReceive.get(0).getTextMessageField() + "="
  157. + mailBeanReceive.get(0).getTextMessageField().length());
  158.  
  159. assertTrue("Messages are not the same", test);
  160. }
  161. // EmailMessage htmlMessage = new EmailMessage(
  162. // "<html><META http-equiv=Content-Type content=\"text/html; charset=utf-8\">" +
  163. // "<body><h1>Hey!</h1><img src='cid:c.png'><h2>Hay!</h2></body></html>",
  164. // MimeTypes.MIME_TEXT_HTML);
  165. // email.addMessage(htmlMessage);
  166. // if (attachment.getContentId() != null)
  167. // mailBean.getEmbedded().add(attachment);
  168. // else
  169. // mailBean.getAttachments().add(attachment);
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement