@Override public void sendMessage(String email, MessageType messageType, String subject, String htmlContent) { MimeMessage message = mailSender.createMimeMessage(); try { message.addFrom(getSenderAddresses()); message.addRecipients(Message.RecipientType.TO, email); message.setSubject(subject); message.setContent(htmlContent, "text/html"); } catch (MessagingException e) { logger.error("Exception raised while sending message to " + email, e); } catch (UnsupportedEncodingException e) { logger.error("Exception raised while sending message to " + email, e); } mailSender.send(message); } }
@AfterEach void clearEmails() { webApplicationContext.getBean("emailService", EmailService.class).setMailSender(originalEmailSender); fakeJavaMailSender.clearMessage(); }
@Before public void setUpFakeMailServer() throws Exception { originalSender = getWebApplicationContext().getBean("emailService", EmailService.class).getMailSender(); getWebApplicationContext().getBean("emailService", EmailService.class).setMailSender(fakeJavaMailSender); }
@Test public void testSendOssMimeMessage() throws Exception { EmailService emailService = new EmailService(mailSender, "http://login.example.com/login", null); emailService.sendMessage("user@example.com", MessageType.CHANGE_EMAIL, "Test Message", "<html><body>hi</body></html>"); assertThat(mailSender.getSentMessages(), hasSize(1)); FakeJavaMailSender.MimeMessageWrapper mimeMessageWrapper = mailSender.getSentMessages().get(0); assertThat(mimeMessageWrapper.getFrom(), hasSize(1)); InternetAddress fromAddress = (InternetAddress) mimeMessageWrapper.getFrom().get(0); assertThat(fromAddress.getAddress(), equalTo("admin@login.example.com")); assertThat(fromAddress.getPersonal(), equalTo("Cloud Foundry")); assertThat(mimeMessageWrapper.getRecipients(Message.RecipientType.TO), hasSize(1)); assertThat(mimeMessageWrapper.getRecipients(Message.RecipientType.TO).get(0), equalTo((Address) new InternetAddress("user@example.com"))); assertThat(mimeMessageWrapper.getContentString(), equalTo("<html><body>hi</body></html>")); }
@BeforeEach void setUp() { FilterChainProxy springSecurityFilterChain = webApplicationContext.getBean("springSecurityFilterChain", FilterChainProxy.class); mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext) .alwaysDo(print()) .addFilter(springSecurityFilterChain) .build(); testClient = new TestClient(mockMvc); EmailService emailService = webApplicationContext.getBean("emailService", EmailService.class); originalEmailSender = emailService.getMailSender(); emailService.setMailSender(fakeJavaMailSender); userEmail = "user" + new RandomValueStringGenerator().generate() + "@example.com"; assertNotNull(webApplicationContext.getBean("messageService")); IdentityZoneHolder.setProvisioning(webApplicationContext.getBean(IdentityZoneProvisioning.class)); mockMvcTestClient = new MockMvcTestClient(mockMvc); }
@Test public void testSendPivotalMimeMessage() throws Exception { IdentityZoneConfiguration defaultConfig = IdentityZoneHolder.get().getConfig(); BrandingInformation branding = new BrandingInformation(); branding.setCompanyName("Best Company"); IdentityZoneConfiguration config = new IdentityZoneConfiguration(); config.setBranding(branding); IdentityZoneHolder.get().setConfig(config); try{ EmailService emailService = new EmailService(mailSender, "http://login.example.com/login", "something-specific@bestcompany.example.com"); emailService.sendMessage("user@example.com", MessageType.CHANGE_EMAIL, "Test Message", "<html><body>hi</body></html>"); FakeJavaMailSender.MimeMessageWrapper mimeMessageWrapper = mailSender.getSentMessages().get(0); assertThat(mimeMessageWrapper.getFrom(), hasSize(1)); InternetAddress fromAddress = (InternetAddress) mimeMessageWrapper.getFrom().get(0); assertThat(fromAddress.getAddress(), equalTo("something-specific@bestcompany.example.com")); assertThat(fromAddress.getPersonal(), equalTo("Best Company")); } finally { IdentityZoneHolder.get().setConfig(defaultConfig); } } }
@After public void restoreMailServer() throws Exception { getWebApplicationContext().getBean("emailService", EmailService.class).setMailSender(originalSender); }