package org.springframework.cloud.cloudfoundry;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.when;
import java.util.List;
import org.junit.Test;
import org.springframework.cloud.service.ServiceInfo;
import org.springframework.cloud.service.common.SmtpServiceInfo;
/**
*
* @author Ramnivas Laddad
*
*/
public class CloudFoundryConnectorSmtpServiceTest extends AbstractCloudFoundryConnectorTest {
@Test
public void smtpServiceCreation() {
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
.thenReturn(getServicesPayload(getSmtpServicePayload("smtp-1", hostname, username, password)));
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
SmtpServiceInfo smtpServiceInfo = (SmtpServiceInfo) getServiceInfo(serviceInfos, "smtp-1");
assertNotNull(smtpServiceInfo);
assertEquals(hostname, smtpServiceInfo.getHost());
assertEquals(587, smtpServiceInfo.getPort());
assertEquals(username, smtpServiceInfo.getUserName());
assertEquals(password, smtpServiceInfo.getPassword());
}
@Test
public void smtpServiceCreationWithUri() {
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
.thenReturn(getServicesPayload(getSmtpServicePayloadWithUri("smtp-1", hostname, port, username, password)));
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
SmtpServiceInfo smtpServiceInfo = (SmtpServiceInfo) getServiceInfo(serviceInfos, "smtp-1");
assertNotNull(smtpServiceInfo);
assertEquals(hostname, smtpServiceInfo.getHost());
assertEquals(port, smtpServiceInfo.getPort());
assertEquals(username, smtpServiceInfo.getUserName());
assertEquals(password, smtpServiceInfo.getPassword());
}
private String getSmtpServicePayload(String serviceName, String hostname,
String user, String password) {
String payload = readTestDataFile("test-smtp-info.json");
payload = payload.replace("$serviceName", serviceName);
payload = payload.replace("$hostname", hostname);
payload = payload.replace("$username", user);
payload = payload.replace("$password", password);
return payload;
}
private String getSmtpServicePayloadWithUri(String serviceName, String hostname, int port,
String user, String password) {
String payload = readTestDataFile("test-smtp-info-uri.json");
payload = payload.replace("$serviceName", serviceName);
payload = payload.replace("$hostname", hostname);
payload = payload.replace("$port", String.valueOf(port));
payload = payload.replace("$username", user);
payload = payload.replace("$password", password);
return payload;
}
}