/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.resource;
import org.junit.Assert;
import org.junit.Test;
import com.emc.storageos.model.property.PropertyInfoUpdate;
import com.emc.vipr.model.sys.eventhandler.ConnectEmcEmail;
import com.emc.vipr.model.sys.eventhandler.ConnectEmcFtps;
public class ConfigServiceTest {
@Test
public void testEmailUsingAuth() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setUserName("root");
email.setPassword("ChangeMe");
try {
email.setSmtpAuthType("login");
} catch (Exception e) {
Assert.fail();
}
PropertyInfoUpdate propInfo = ConfigService.ConfigureConnectEmc.configureEmail(email);
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_server"), email.getEmailServer());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_emcto"), email.getPrimaryEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_from"), email.getEmailSender());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_to"), email.getNotifyEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_enabletls"), email.getStartTls());
Assert.assertEquals(propInfo.getProperty("system_connectemc_encrypt"), email.getSafeEncryption());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_authtype"), email.getSmtpAuthType());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_username"), email.getUserName());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_password"), email.getPassword());
}
@Test
public void testEmailUsingNoAuth() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setStartTls("no");
PropertyInfoUpdate propInfo = ConfigService.ConfigureConnectEmc.configureEmail(email);
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_server"), email.getEmailServer());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_emcto"), email.getPrimaryEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_from"), email.getEmailSender());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_to"), email.getNotifyEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_enabletls"), email.getStartTls());
Assert.assertEquals(propInfo.getProperty("system_connectemc_encrypt"), email.getSafeEncryption());
Assert.assertNull(propInfo.getProperty("system_connectemc_smtp_authtype"));
Assert.assertNull(propInfo.getProperty("system_connectemc_smtp_username"));
Assert.assertNull(propInfo.getProperty("system_connectemc_smtp_password"));
}
@Test
public void testEmailUsingAuthWithNoUsernamePassword() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setSmtpAuthType("login");
PropertyInfoUpdate propInfo = null;
try {
propInfo = ConfigService.ConfigureConnectEmc.configureEmail(email);
} catch (Exception e) {
Assert.assertNull(propInfo);
return;
}
Assert.fail();
}
@Test
public void testEmailUsingAuthAndCerts() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setUserName("root");
email.setPassword("ChangeMe");
try {
email.setStartTls("yes");
email.setSmtpAuthType("login");
} catch (Exception e) {
Assert.fail();
}
PropertyInfoUpdate propInfo = ConfigService.ConfigureConnectEmc.configureEmail(email);
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_server"), email.getEmailServer());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_emcto"), email.getPrimaryEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_from"), email.getEmailSender());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_to"), email.getNotifyEmailAddress());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_enabletls"), email.getStartTls());
Assert.assertEquals(propInfo.getProperty("system_connectemc_encrypt"), email.getSafeEncryption());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_authtype"), email.getSmtpAuthType());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_username"), email.getUserName());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_password"), email.getPassword());
}
@Test
public void testInvalidAuthType() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setUserName("root");
email.setPassword("ChangeMe");
email.setSmtpAuthType("Null");
}
@Test
public void testInvalidTlsValue() {
ConnectEmcEmail email = new ConnectEmcEmail();
email.setEmailSender("DONOTREPLY@customer.com");
email.setEmailServer("mailhub.lss.emc.com");
email.setNotifyEmailAddress("joe.customer@customer.com");
email.setPrimaryEmailAddress("emailalertesg@emc.com");
email.setSafeEncryption("no");
email.setUserName("root");
email.setPassword("ChangeMe");
email.setStartTls("Maybe");
}
@Test
public void testFtps() {
ConnectEmcFtps ftps = new ConnectEmcFtps();
ftps.setSafeEncryption("no");
ftps.setEmailServer("mailhub.lss.emc.com");
ftps.setNotifyEmailAddress("joe.customer@customer.com");
try {
ftps.setHostName("corpusfep3.emc.com");
} catch (Exception e) {
Assert.fail();
}
PropertyInfoUpdate propInfo = ConfigService.ConfigureConnectEmc.configureFtps(ftps);
Assert.assertEquals(propInfo.getProperty("system_connectemc_encrypt"), ftps.getSafeEncryption());
Assert.assertEquals(propInfo.getProperty("system_connectemc_ftps_hostname"), ftps.getHostName());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_server"), ftps.getEmailServer());
Assert.assertEquals(propInfo.getProperty("system_connectemc_smtp_to"), ftps.getNotifyEmailAddress());
}
}