package org.springframework.cloud.cloudfoundry;
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.RedisServiceInfo;
/**
*
* @author Ramnivas Laddad
*
*/
public class CloudFoundryConnectorRedisServiceTest extends AbstractCloudFoundryConnectorTest {
@Test
public void redisServiceCreation() {
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
.thenReturn(getServicesPayload(
getRedisServicePayload("redis-1", hostname, port, password, "redis-db"),
getRedisServicePayload("redis-2", hostname, port, password, "redis-db")));
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
assertServiceFoundOfType(serviceInfos, "redis-1", RedisServiceInfo.class);
assertServiceFoundOfType(serviceInfos, "redis-2", RedisServiceInfo.class);
}
@Test
public void redisServiceCreationNoLabelNoTags() {
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
.thenReturn(getServicesPayload(
getRedisServicePayloadNoLabelNoTags("redis-1", hostname, port, password, "redis-db"),
getRedisServicePayloadNoLabelNoTags("redis-2", hostname, port, password, "redis-db")));
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
assertServiceFoundOfType(serviceInfos, "redis-1", RedisServiceInfo.class);
assertServiceFoundOfType(serviceInfos, "redis-2", RedisServiceInfo.class);
}
private String getRedisServicePayload(String serviceName,
String hostname, int port,
String password, String name) {
return getRedisServicePayload("test-redis-info.json", serviceName, hostname, port, password, name);
}
private String getRedisServicePayloadNoLabelNoTags(String serviceName,
String hostname, int port,
String password, String name) {
return getRedisServicePayload("test-redis-info-no-label-no-tags.json", serviceName, hostname, port, password, name);
}
private String getRedisServicePayload(String payloadFile, String serviceName,
String hostname, int port,
String password, String name) {
String payload = readTestDataFile(payloadFile);
payload = payload.replace("$serviceName", serviceName);
payload = payload.replace("$hostname", hostname);
payload = payload.replace("$port", Integer.toString(port));
payload = payload.replace("$password", password);
payload = payload.replace("$name", name);
return payload;
}
}