/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.mail.internal; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import org.junit.Rule; import org.junit.rules.ExpectedException; import com.icegreen.greenmail.util.GreenMailUtil; import de.rcenvironment.core.configuration.ConfigurationSegment; import de.rcenvironment.core.configuration.testutils.ConfigurationSegmentUtils; import de.rcenvironment.core.configuration.testutils.TestConfigurationProvider; import de.rcenvironment.core.mail.InvalidMailException; import de.rcenvironment.core.mail.Mail; import de.rcenvironment.core.mail.SMTPServerConfiguration; import de.rcenvironment.core.utils.common.TempFileServiceAccess; /** * Some common utility methods for mail service testing. * * @author Tobias Rodehutskors */ public class AbstractMailServiceImplTest { private static final String MAIL_RECIPIENT = "tobias.rodehutskors@dlr.de"; private static final String MAIL_SUBJECT = "subject"; private static final String MAIL_TEXT = "text"; private static final String MAIL_HTML = "<html><head><title>Title</title></head><body>Body</body></html>"; /** * ExpectedException. */ @Rule public ExpectedException expectedException = ExpectedException.none(); /** * The class under test. */ protected MailServiceImpl mailServiceImpl = null; protected boolean setupMailService(String configurationLocation) throws IOException { mailServiceImpl = new MailServiceImpl(); // load a configuration segment from the resources ... TempFileServiceAccess.setupUnitTestEnvironment(); ConfigurationSegment configurationSegment = ConfigurationSegmentUtils.readTestConfigurationFromStream(getClass().getResourceAsStream(configurationLocation)); // ... and make it available to the service TestConfigurationProvider configurationProvider = new TestConfigurationProvider(); configurationProvider.setConfigurationSegment(SMTPServerConfiguration.CONFIGURATION_PATH, configurationSegment); mailServiceImpl.bindConfigurationService(configurationProvider); mailServiceImpl.activate(); return mailServiceImpl.isConfigured(); } protected Mail createDefaultMail() throws InvalidMailException { return Mail.createMail(new String[] { MAIL_RECIPIENT }, MAIL_SUBJECT, MAIL_TEXT, MAIL_HTML); } protected void validateDefaultMail(Message[] receivedMessages) throws MessagingException, IOException { assertEquals(1, receivedMessages.length); assertEquals(MAIL_SUBJECT, receivedMessages[0].getSubject()); Multipart mmp = (Multipart) receivedMessages[0].getContent(); String content = GreenMailUtil.getBody(mmp.getBodyPart(0)).trim(); assertTrue(content.contains(MAIL_TEXT)); assertTrue(content.contains(MAIL_HTML)); } }