/** * Gets the currently received messages. * * @return the available messages. */ public MimeMessage[] getReceivedMessages() { return greenMail.getReceivedMessages(); }
/** * Gets the currently received messages. * * @return the available messages. */ public MimeMessage[] getReceivedMessages() { return greenMail.getReceivedMessages(); }
@Override public MimeMessage[] getReceivedMessages() { return getGreenMail().getReceivedMessages(); }
public MimeMessage waitForEmail() { ensureStarted(); try { if (!greenMail.waitForIncomingEmail(1)) { throw new IllegalStateException("No email received"); } return greenMail.getReceivedMessages()[0]; } catch (InterruptedException e) { throw new IllegalStateException("Interrupted while waiting for an email"); } }
public class GreenMailTest extends UnitTest { private GreenMail mail; @Before public void startGreenMail() { GreenMail greenMail = new GreenMail(); greenMail.start(); } @Test public void myTestThatUsesGreenMail() { GreenMailUtil.sendTextEmailTest("to@localhost.com", "from@localhost.com", "subject", "body"); assertEquals("body", GreenMailUtil.getBody(greenMail.getReceivedMessages()[0])); } @After public void stopGreenMail() { greenMail.stop(); } }
public void testContentType() throws Exception { StringBuilder elem = new StringBuilder(); elem.append("<email xmlns=\"uri:oozie:email-action:0.2\">"); elem.append("<to>purushah@yahoo-inc.com</to>"); elem.append("<subject>sub</subject>"); elem.append("<content_type>text/html</content_type>"); elem.append("<body><body> This is a test mail </body></body>"); elem.append("</email>"); EmailActionExecutor emailContnetType = new EmailActionExecutor(); emailContnetType.validateAndMail(createAuthContext("email-action"), XmlUtils.parseXml(elem.toString())); assertEquals("<body> This is a test mail </body>", GreenMailUtil.getBody(server.getReceivedMessages()[0])); assertTrue(server.getReceivedMessages()[0].getContentType().contains("text/html")); }
public void testContentTypeDefault() throws Exception { EmailActionExecutor email = new EmailActionExecutor(); email.validateAndMail(createAuthContext("email-action"), prepareEmailElement(true, true)); checkEmail(server.getReceivedMessages()[0], true, true); assertTrue(server.getReceivedMessages()[0].getContentType().contains("text/plain")); }
@Test void mailFailed() { final InstallData data = mock(InstallData.class); when(data.getVariable(eq(Variables.SMTP_PORT.getKey()))) .thenReturn(String.valueOf(EMAIL.getSmtp().getPort())); when(data.getVariable(eq(Variables.SMTP_HOSTNAME.getKey()))) .thenReturn(String.valueOf(EMAIL.getSmtp().getBindTo())); when(data.getVariable(eq(Variables.SMTP_USERNAME.getKey()))) .thenReturn("sender@server.cz"); when(data.getVariable(eq(Variables.SMTP_PASSWORD.getKey()))) .thenReturn(UUID.randomUUID().toString()); final DataValidator validator = new EmailSettingsValidator(); final DataValidator.Status result = validator.validateData(data); assertThat(result).isEqualTo(DataValidator.Status.WARNING); assertThat(EMAIL.getReceivedMessages()).hasSize(0); } }
@Test void mailSent() { final InstallData data = mock(InstallData.class); when(data.getVariable(eq(Variables.ZONKY_USERNAME.getKey()))) .thenReturn("someone@somewhere.cz"); when(data.getVariable(eq(Variables.SMTP_PORT.getKey()))) .thenReturn(String.valueOf(EMAIL.getSmtp().getPort())); when(data.getVariable(eq(Variables.SMTP_HOSTNAME.getKey()))) .thenReturn(String.valueOf(EMAIL.getSmtp().getBindTo())); when(data.getVariable(eq(Variables.SMTP_TO.getKey()))) .thenReturn("recipient@server.cz"); when(data.getVariable(eq(Variables.SMTP_USERNAME.getKey()))) .thenReturn("sender@server.cz"); when(data.getVariable(eq(Variables.SMTP_PASSWORD.getKey()))) .thenReturn(UUID.randomUUID().toString()); final DataValidator validator = new EmailSettingsValidator(); final DataValidator.Status result = validator.validateData(data); assertThat(result).isEqualTo(DataValidator.Status.OK); assertThat(EMAIL.getReceivedMessages()).hasSize(1); }
@Test public void forMatrixIdInvite() throws MessagingException { gm.setUser("mxisd", "mxisd"); _MatrixID sender = MatrixID.asAcceptable("mxisd", domain); _MatrixID recipient = MatrixID.asAcceptable("john", domain); MatrixIdInvite idInvite = new MatrixIdInvite("!rid:" + domain, sender, recipient, ThreePidMedium.Email.getId(), "john@" + domain, Collections.emptyMap()); m.getNotif().sendForInvite(idInvite); assertEquals(1, gm.getReceivedMessages().length); MimeMessage msg = gm.getReceivedMessages()[0]; assertEquals(1, msg.getFrom().length); assertEquals("\"Mxisd Server (Unit Test)\" <mxisd@localhost>", msg.getFrom()[0].toString()); assertEquals(1, msg.getRecipients(Message.RecipientType.TO).length); }
private void assertAttachment(String attachtag, int attachCount, String content1, String content2) throws Exception { sendAndReceiveEmail(attachtag); MimeMessage retMeg = server.getReceivedMessages()[0]; Multipart retParts = (Multipart) (retMeg.getContent()); int numAttach = 0; for (int i = 0; i < retParts.getCount(); i++) { BodyPart bp = retParts.getBodyPart(i); String disp = bp.getDisposition(); String retValue = IOUtils.toString(bp.getInputStream()); if (disp != null && (disp.equals(BodyPart.ATTACHMENT))) { assertTrue(retValue.equals(content1) || retValue.equals(content2)); numAttach++; } else { assertEquals("This is a test mail", retValue); } } assertEquals(attachCount, numAttach); }
public void testDoAuthEmail() throws Exception { EmailActionExecutor email = new EmailActionExecutor(); email.validateAndMail(createAuthContext("email-action"), prepareEmailElement(true, true)); checkEmail(server.getReceivedMessages()[0], true, true); }
public void testDoNormalEmail() throws Exception { EmailActionExecutor email = new EmailActionExecutor(); email.validateAndMail(createNormalContext("email-action"), prepareEmailElement(false, false)); checkEmail(server.getReceivedMessages()[0], false, false); }
@Test public void testMultipleTo() throws Exception { buildSMTPAppender("testMultipleTo", SYNCHRONOUS); smtpAppender.setLayout(buildPatternLayout(DEFAULT_PATTERN)); // buildSMTPAppender() already added one destination address smtpAppender.addTo("Test <test@example.com>, other-test@example.com"); smtpAppender.start(); logger.addAppender(smtpAppender); logger.debug("testMultipleTo hello"); logger.error("testMultipleTo en error", new Exception("an exception")); Thread.yield(); int expectedEmailCount = 3; waitForServerToReceiveEmails(expectedEmailCount); MimeMessage[] mma = greenMailServer.getReceivedMessages(); assertNotNull(mma); assertEquals(expectedEmailCount, mma.length); }
private MimeMultipart verifyAndExtractMimeMultipart(String subject) throws MessagingException, IOException, InterruptedException { int oldCount = 0; int expectedEmailCount = 1; // wait for the server to receive the messages waitForServerToReceiveEmails(expectedEmailCount); MimeMessage[] mma = greenMailServer.getReceivedMessages(); assertNotNull(mma); assertEquals(expectedEmailCount, mma.length); MimeMessage mm = mma[oldCount]; // http://jira.qos.ch/browse/LBCLASSIC-67 assertEquals(subject, mm.getSubject()); return (MimeMultipart) mm.getContent(); }
@Test public void multiLineSubjectTruncatedAtFirstNewLine() throws Exception { String line1 = "line 1 of subject"; String subject = line1 + "\nline 2 of subject\n"; buildSMTPAppender(subject, ASYNCHRONOUS); smtpAppender.setLayout(buildPatternLayout(DEFAULT_PATTERN)); smtpAppender.start(); logger.addAppender(smtpAppender); logger.debug("hello"); logger.error("en error", new Exception("an exception")); Thread.yield(); waitUntilEmailIsSent(); waitForServerToReceiveEmails(1); MimeMessage[] mma = greenMailServer.getReceivedMessages(); assertEquals(1, mma.length); assertEquals(line1, mma[0].getSubject()); } }
public void testBlackList() throws Exception { String blackListedEmail = "alert-receiver@oozie.com"; // add email to blacklist slaEmailListener.addBlackList(blackListedEmail); String id = "0000000-000000000000001-oozie-wrkf-C@1"; SLACalcStatus event = _createSLACalcStatus(id); SLARegistrationBean eventBean = event.getSLARegistrationBean(); event.setEventStatus(EventStatus.START_MISS); eventBean.setAlertContact(blackListedEmail); eventBean.setAppType(AppType.COORDINATOR_ACTION); eventBean.setAppName("Test-SLA-Start-Miss"); eventBean.setUser("dummyuser"); eventBean.setAlertContact("alert-receiver@oozie.com"); event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z")); // blacklist blocks email from being sent out slaEmailListener.onStartMiss(event); MimeMessage[] msgs = greenMail.getReceivedMessages(); assertEquals(msgs.length, 0); // wait 1.5 sec (cache timeout set to 1sec in test's setup) Thread.sleep(1500); // cache is evicted slaEmailListener.onStartMiss(event); msgs = greenMail.getReceivedMessages(); assertEquals(msgs.length, 1); }
public void testInvalidDestAddress() throws Exception { String id = "0000000-000000000000001-oozie-wrkf-C@1"; SLACalcStatus event = _createSLACalcStatus(id); SLARegistrationBean eventBean = event.getSLARegistrationBean(); Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z"); // set invalid address as alert contact eventBean.setAlertContact("invalidAddress"); event.setEventStatus(EventStatus.START_MISS); event.setId(id); eventBean.setAppType(AppType.COORDINATOR_ACTION); eventBean.setAppName("Test-SLA-Start-Miss"); eventBean.setUser("dummyuser"); eventBean.setExpectedStart(startDate); eventBean.setNotificationMsg("notification of start miss"); eventBean.setAppType(AppType.COORDINATOR_ACTION); event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z")); slaEmailListener.onStartMiss(event); MimeMessage[] msgs = greenMail.getReceivedMessages(); assertEquals(msgs.length, 0); }
public void testNoDestAddress() throws Exception { String id = "0000000-000000000000001-oozie-wrkf-C@1"; SLACalcStatus event = _createSLACalcStatus(id); SLARegistrationBean eventBean = event.getSLARegistrationBean(); Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z"); // set empty address as alert contact eventBean.setAlertContact(""); event.setEventStatus(EventStatus.START_MISS); event.setId(id); eventBean.setAppType(AppType.COORDINATOR_ACTION); eventBean.setAppName("Test-SLA-Start-Miss"); eventBean.setUser("dummyuser"); eventBean.setExpectedStart(startDate); eventBean.setNotificationMsg("notification of start miss"); eventBean.setAppType(AppType.COORDINATOR_ACTION); event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z")); slaEmailListener.onStartMiss(event); MimeMessage[] msgs = greenMail.getReceivedMessages(); assertEquals(msgs.length, 0); }
public void testMultipleDestAddress() throws Exception { String id = "0000000-000000000000001-oozie-wrkf-C@1"; SLACalcStatus event = _createSLACalcStatus(id); SLARegistrationBean eventBean = event.getSLARegistrationBean(); Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z"); // set multiple addresses as alert contact eventBean.setAlertContact("alert-receiver1@oozie.com, alert-receiver2@oozie.com"); event.setEventStatus(EventStatus.START_MISS); event.setId(id); eventBean.setAppType(AppType.COORDINATOR_ACTION); eventBean.setAppName("Test-SLA-Start-Miss"); eventBean.setUser("dummyuser"); eventBean.setExpectedStart(startDate); eventBean.setNotificationMsg("notification of start miss"); eventBean.setAppType(AppType.COORDINATOR_ACTION); event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z")); slaEmailListener.onStartMiss(event); MimeMessage[] msgs = greenMail.getReceivedMessages(); MimeMessage msg = msgs[0]; assertEquals(msg.getFrom()[0].toString(), "oozie@localhost"); assertEquals(msg.getRecipients(RecipientType.TO)[0].toString(), "alert-receiver1@oozie.com"); assertEquals(msg.getRecipients(RecipientType.TO)[1].toString(), "alert-receiver2@oozie.com"); }