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.MongoServiceInfo; /** * @author Ramnivas Laddad */ public class CloudFoundryConnectorMongodbServiceTest extends AbstractCloudFoundryConnectorTest { @Test public void mongoServiceCreation() { when(mockEnvironment.getEnvValue("VCAP_SERVICES")) .thenReturn(getServicesPayload( getMongoServicePayload("mongo-1", hostname, port, username, password, "inventory-1", "db"), getMongoServicePayload("mongo-2", hostname, port, username, password, "inventory-2", "db"))); List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos(); assertServiceFoundOfType(serviceInfos, "mongo-1", MongoServiceInfo.class); assertServiceFoundOfType(serviceInfos, "mongo-2", MongoServiceInfo.class); } @Test public void mongoServiceCreationNoLabelNoTags() { when(mockEnvironment.getEnvValue("VCAP_SERVICES")) .thenReturn(getServicesPayload( getMongoServicePayloadNoLabelNoTags("mongo-1", hostname, port, username, password, "inventory-1", "db"), getMongoServicePayloadNoLabelNoTags("mongo-2", hostname, port, username, password, "inventory-2", "db"))); List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos(); assertServiceFoundOfType(serviceInfos, "mongo-1", MongoServiceInfo.class); assertServiceFoundOfType(serviceInfos, "mongo-2", MongoServiceInfo.class); } private String getMongoServicePayload(String serviceName, String hostname, int port, String username, String password, String db, String name) { return getMongoServicePayload("test-mongodb-info.json", serviceName, hostname, port, username, password, db, name); } private String getMongoServicePayloadNoLabelNoTags(String serviceName, String hostname, int port, String username, String password, String db, String name) { return getMongoServicePayload("test-mongodb-info-no-label-no-tags.json", serviceName, hostname, port, username, password, db, name); } private String getMongoServicePayload(String payloadFile, String serviceName, String hostname, int port, String username, String password, String db, 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("$username", username); payload = payload.replace("$password", password); payload = payload.replace("$db", db); payload = payload.replace("$name", name); return payload; } }