@Test public void javaMailSenderWithCustomSession() throws MessagingException { final Session session = Session.getInstance(new Properties()); MockJavaMailSender sender = new MockJavaMailSender() { @Override protected Transport getTransport(Session sess) throws NoSuchProviderException { assertEquals(session, sess); return super.getTransport(sess); } }; sender.setSession(session); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setSubject("custom"); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); mimeMessage.setSentDate(new GregorianCalendar(2005, 3, 1).getTime()); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }
@Test public void failedMimeMessage() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage1 = sender.createMimeMessage(); mimeMessage1.setRecipient(Message.RecipientType.TO, new InternetAddress("he@mail.org")); mimeMessage1.setSubject("fail"); MimeMessage mimeMessage2 = sender.createMimeMessage(); mimeMessage2.setRecipient(Message.RecipientType.TO, new InternetAddress("she@mail.org")); try { sender.send(mimeMessage1, mimeMessage2); } catch (MailSendException ex) { ex.printStackTrace(); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage2, sender.transport.getSentMessage(0)); assertEquals(1, ex.getFailedMessages().size()); assertEquals(mimeMessage1, ex.getFailedMessages().keySet().iterator().next()); Object subEx = ex.getFailedMessages().values().iterator().next(); assertTrue(subEx instanceof MessagingException); assertEquals("failed", ((MessagingException) subEx).getMessage()); } }
@Test public void javaMailProperties() throws MessagingException { Properties props = new Properties(); props.setProperty("bogusKey", "bogusValue"); MockJavaMailSender sender = new MockJavaMailSender() { @Override protected Transport getTransport(Session sess) throws NoSuchProviderException { assertEquals("bogusValue", sess.getProperty("bogusKey")); return super.getTransport(sess); } }; sender.setJavaMailProperties(props); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessageHelperAndDefaultEncoding() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); sender.setDefaultEncoding("UTF-8"); FileTypeMap fileTypeMap = new ConfigurableMimeFileTypeMap(); sender.setDefaultFileTypeMap(fileTypeMap); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage()); assertEquals("UTF-8", message.getEncoding()); assertEquals(fileTypeMap, message.getFileTypeMap()); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessages() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage1 = sender.createMimeMessage(); mimeMessage1.setRecipient(Message.RecipientType.TO, new InternetAddress("he@mail.org")); MimeMessage mimeMessage2 = sender.createMimeMessage(); mimeMessage2.setRecipient(Message.RecipientType.TO, new InternetAddress("she@mail.org")); sender.send(mimeMessage1, mimeMessage2); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(2, sender.transport.getSentMessages().size()); assertEquals(mimeMessage1, sender.transport.getSentMessage(0)); assertEquals(mimeMessage2, sender.transport.getSentMessage(1)); }
@Test public void javaMailSenderWithMimeMessageHelper() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage()); assertNull(message.getEncoding()); assertTrue(message.getFileTypeMap() instanceof ConfigurableMimeFileTypeMap); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessageHelperAndSpecificEncoding() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage(), "UTF-8"); assertEquals("UTF-8", message.getEncoding()); FileTypeMap fileTypeMap = new ConfigurableMimeFileTypeMap(); message.setFileTypeMap(fileTypeMap); assertEquals(fileTypeMap, message.getFileTypeMap()); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessage() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }