/*
* 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.assertNull;
import java.io.IOException;
import org.junit.Test;
import de.rcenvironment.core.configuration.ConfigurationException;
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.SMTPServerConfiguration;
import de.rcenvironment.core.utils.common.TempFileServiceAccess;
/**
* Test case for the class {@link SMTPServerConfigurationServiceImpl}.
*
* @author Tobias Rodehutskors
*/
public class SMTPServerConfigurationServiceImplTest {
private static final int EXPECTED_PORT_25 = 25;
private SMTPServerConfigurationServiceImpl smtpServerConfigurationImpl;
private void setupSMTPServerConfigurationService(String configurationLocation) throws IOException {
smtpServerConfigurationImpl = new SMTPServerConfigurationServiceImpl();
// 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);
smtpServerConfigurationImpl.bindConfigurationService(configurationProvider);
}
/**
* Tests, if the SMTP configuration content can be retrieved even if the content is invalid.
*
* @throws IOException unexpected
* @throws ConfigurationException unexpected
*/
@Test
public void testInvalidConfig() throws IOException, ConfigurationException {
setupSMTPServerConfigurationService("/invalidConfig.json");
SMTPServerConfiguration smtpServerConfiguration = smtpServerConfigurationImpl.getSMTPServerConfiguration();
assertEquals(smtpServerConfiguration.getHost(), "localhost");
assertEquals(smtpServerConfiguration.getPort(), EXPECTED_PORT_25);
}
/**
* Tests the behavior if no SMTP mail server configuration is available.
*
* @throws IOException unexpected
* @throws ConfigurationException unexpected
*/
@Test
public void testNoConfig() throws IOException, ConfigurationException {
smtpServerConfigurationImpl = new SMTPServerConfigurationServiceImpl();
TestConfigurationProvider configurationProvider = new TestConfigurationProvider();
smtpServerConfigurationImpl.bindConfigurationService(configurationProvider);
SMTPServerConfiguration smtpServerConfiguration = smtpServerConfigurationImpl.getSMTPServerConfiguration();
assertNull(smtpServerConfiguration);
}
}