Provide access to URL fields when jdbcUrl is provided in Cloud Foundry connector.
This commit is contained in:
@@ -8,7 +8,7 @@ public class DB2ServiceInfoCreator extends RelationalServiceInfoCreator<DB2Servi
|
||||
}
|
||||
|
||||
@Override
|
||||
public DB2ServiceInfo createServiceInfo(String id, String url) {
|
||||
return new DB2ServiceInfo(id, url);
|
||||
public DB2ServiceInfo createServiceInfo(String id, String url, String jdbcUrl) {
|
||||
return new DB2ServiceInfo(id, url, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class MysqlServiceInfoCreator extends RelationalServiceInfoCreator<MysqlS
|
||||
}
|
||||
|
||||
@Override
|
||||
public MysqlServiceInfo createServiceInfo(String id, String url) {
|
||||
return new MysqlServiceInfo(id, url);
|
||||
public MysqlServiceInfo createServiceInfo(String id, String url, String jdbcUrl) {
|
||||
return new MysqlServiceInfo(id, url, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ public class OracleServiceInfoCreator extends RelationalServiceInfoCreator<Oracl
|
||||
}
|
||||
|
||||
@Override
|
||||
public OracleServiceInfo createServiceInfo(String id, String url) {
|
||||
return new OracleServiceInfo(id, url);
|
||||
public OracleServiceInfo createServiceInfo(String id, String url, String jdbcUrl) {
|
||||
return new OracleServiceInfo(id, url, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import org.springframework.cloud.service.common.PostgresqlServiceInfo;
|
||||
|
||||
import static org.springframework.cloud.service.common.PostgresqlServiceInfo.POSTGRES_JDBC_SCHEME;
|
||||
import static org.springframework.cloud.service.common.PostgresqlServiceInfo.POSTGRES_SCHEME;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Ramnivas Laddad
|
||||
@@ -10,11 +13,11 @@ import org.springframework.cloud.service.common.PostgresqlServiceInfo;
|
||||
public class PostgresqlServiceInfoCreator extends RelationalServiceInfoCreator<PostgresqlServiceInfo> {
|
||||
|
||||
public PostgresqlServiceInfoCreator() {
|
||||
super(new Tags("postgresql"), PostgresqlServiceInfo.POSTGRES_SCHEME);
|
||||
super(new Tags("postgresql"), POSTGRES_SCHEME, POSTGRES_JDBC_SCHEME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PostgresqlServiceInfo createServiceInfo(String id, String url) {
|
||||
return new PostgresqlServiceInfo(id, url);
|
||||
public PostgresqlServiceInfo createServiceInfo(String id, String url, String jdbcUrl) {
|
||||
return new PostgresqlServiceInfo(id, url, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,18 +42,16 @@ public abstract class RelationalServiceInfoCreator<SI extends RelationalServiceI
|
||||
return false;
|
||||
}
|
||||
|
||||
public abstract SI createServiceInfo(String id, String uri);
|
||||
public abstract SI createServiceInfo(String id, String uri, String jdbcUrl);
|
||||
|
||||
public SI createServiceInfo(Map<String, Object> serviceData) {
|
||||
String id = getId(serviceData);
|
||||
|
||||
Map<String,Object> credentials = getCredentials(serviceData);
|
||||
|
||||
String uri = getStringFromCredentials(credentials, "jdbcUrl");
|
||||
String jdbcUrl = getStringFromCredentials(credentials, "jdbcUrl");
|
||||
|
||||
if (uri == null) {
|
||||
uri = getUriFromCredentials(credentials);
|
||||
}
|
||||
String uri = getUriFromCredentials(credentials);
|
||||
|
||||
if (uri == null) {
|
||||
String host = getStringFromCredentials(credentials, "hostname", "host");
|
||||
@@ -63,10 +61,10 @@ public abstract class RelationalServiceInfoCreator<SI extends RelationalServiceI
|
||||
String password = (String) credentials.get("password");
|
||||
|
||||
String database = (String) credentials.get("name");
|
||||
|
||||
|
||||
uri = new UriInfo(getDefaultUriScheme(), host, port, username, password, database).toString();
|
||||
}
|
||||
|
||||
return createServiceInfo(id, uri);
|
||||
return createServiceInfo(id, uri, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ public class SqlServerServiceInfoCreator extends RelationalServiceInfoCreator<Sq
|
||||
}
|
||||
|
||||
@Override
|
||||
public SqlServerServiceInfo createServiceInfo(String id, String url) {
|
||||
return new SqlServerServiceInfo(id, url);
|
||||
public SqlServerServiceInfo createServiceInfo(String id, String url, String jdbcUrl) {
|
||||
return new SqlServerServiceInfo(id, url, jdbcUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import org.mockito.internal.matchers.InstanceOf;
|
||||
import org.springframework.cloud.service.ServiceInfo;
|
||||
import org.springframework.cloud.service.common.RelationalServiceInfo;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Ramnivas Laddad
|
||||
@@ -19,7 +26,12 @@ public abstract class AbstractCloudFoundryConnectorRelationalServiceTest extends
|
||||
return payload;
|
||||
}
|
||||
|
||||
protected static String getJdbcUrl(String databaseType, String name) {
|
||||
protected void assertJdbcUrlEqual(ServiceInfo serviceInfo, String scheme, String name) {
|
||||
assertThat(serviceInfo, new InstanceOf(RelationalServiceInfo.class));
|
||||
assertEquals(getJdbcUrl(scheme, name), ((RelationalServiceInfo) serviceInfo).getJdbcUrl());
|
||||
}
|
||||
|
||||
protected String getJdbcUrl(String databaseType, String name) {
|
||||
// this should be cleaned up more broadly; pull into RelationalServiceInfo interface?
|
||||
String jdbcUrlDatabaseType = databaseType;
|
||||
if (databaseType.equals("postgres")) {
|
||||
@@ -29,5 +41,4 @@ public abstract class AbstractCloudFoundryConnectorRelationalServiceTest extends
|
||||
return "jdbc:" + jdbcUrlDatabaseType + "://" + hostname + ":" + port + "/" + name +
|
||||
"?user=" + username + "&password=" + password;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,10 +13,12 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.internal.matchers.InstanceOf;
|
||||
import org.springframework.cloud.service.ServiceInfo;
|
||||
import org.springframework.cloud.service.UriBasedServiceInfo;
|
||||
import org.springframework.cloud.util.EnvironmentAccessor;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
@@ -134,4 +136,19 @@ public abstract class AbstractCloudFoundryConnectorTest {
|
||||
ServiceInfo serviceInfo = getServiceInfo(serviceInfos, serviceId);
|
||||
assertServiceFoundOfType(serviceInfo, type);
|
||||
}
|
||||
|
||||
protected static void assertUriBasedServiceInfoFields(ServiceInfo serviceInfo,
|
||||
String scheme, String host, int port,
|
||||
String username, String password, String path) {
|
||||
assertThat(serviceInfo, new InstanceOf(UriBasedServiceInfo.class));
|
||||
|
||||
UriBasedServiceInfo info = (UriBasedServiceInfo) serviceInfo;
|
||||
|
||||
assertEquals(scheme, info.getScheme());
|
||||
assertEquals(host, info.getHost());
|
||||
assertEquals(port, info.getPort());
|
||||
assertEquals(username, info.getUserName());
|
||||
assertEquals(password, info.getPassword());
|
||||
assertEquals(path, info.getPath());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,34 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.service.BaseServiceInfo;
|
||||
import org.springframework.cloud.service.ServiceInfo;
|
||||
import org.springframework.cloud.service.common.MysqlServiceInfo;
|
||||
import org.springframework.cloud.service.common.DB2ServiceInfo;
|
||||
import org.springframework.cloud.service.common.RelationalServiceInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.cloud.service.common.DB2ServiceInfo.DB2_SCHEME;
|
||||
import static org.springframework.cloud.service.common.RelationalServiceInfo.JDBC_PREFIX;
|
||||
|
||||
public class CloudFoundryConnectorDB2ServiceTest extends AbstractUserProvidedServiceInfoCreatorTest {
|
||||
|
||||
private static final String INSTANCE_NAME = "database";
|
||||
private static final String DB2_SCHEME = "db2:";
|
||||
private static final String SERVICE_NAME = "db2-ups";
|
||||
|
||||
@Test
|
||||
public void db2ServiceCreation() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, DB2_SCHEME)));
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, DB2_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
DB2ServiceInfo info = (DB2ServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, DB2ServiceInfo.class);
|
||||
assertEquals(getDB2JdbcUrl(INSTANCE_NAME), info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, DB2_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, DB2_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -37,9 +36,10 @@ public class CloudFoundryConnectorDB2ServiceTest extends AbstractUserProvidedSer
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getUserProvidedServicePayloadWithNoUri(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
BaseServiceInfo info = (BaseServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertNotNull(info);
|
||||
assertFalse(MysqlServiceInfo.class.isAssignableFrom(info.getClass())); // service was not detected as MySQL
|
||||
assertNotNull(info);
|
||||
}
|
||||
@@ -48,12 +48,13 @@ public class CloudFoundryConnectorDB2ServiceTest extends AbstractUserProvidedSer
|
||||
public void dServiceCreationWithJdbcUrl() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getDB2ServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, DB2_SCHEME)));
|
||||
getDB2ServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, DB2_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
DB2ServiceInfo info = (DB2ServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, DB2ServiceInfo.class);
|
||||
assertEquals(RelationalServiceInfo.JDBC_PREFIX + "db2:rawjdbcurl", info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, DB2_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, DB2_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
protected String getDB2ServicePayloadWithJdbcurl(String serviceName, String hostname, int port,
|
||||
@@ -63,7 +64,7 @@ public class CloudFoundryConnectorDB2ServiceTest extends AbstractUserProvidedSer
|
||||
return payload.replace("$scheme", scheme);
|
||||
}
|
||||
|
||||
private String getDB2JdbcUrl(String name) {
|
||||
return String.format("jdbc:db2://%s:%d/%s:user=%s;password=%s;", hostname, port, name, username, password);
|
||||
protected String getJdbcUrl(String scheme, String name) {
|
||||
return String.format("%s%s://%s:%d/%s:user=%s;password=%s;", JDBC_PREFIX, scheme, hostname, port, name, username, password);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.cloud.service.common.RelationalServiceInfo.JDBC_PREFIX;
|
||||
import static org.springframework.cloud.service.common.MysqlServiceInfo.MYSQL_SCHEME;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,14 +24,15 @@ public class CloudFoundryConnectorMysqlServiceTest extends AbstractCloudFoundryC
|
||||
getMysqlServicePayload("mysql-1", hostname, port, username, password, name1),
|
||||
getMysqlServicePayload("mysql-2", hostname, port, username, password, name2)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
MysqlServiceInfo info1 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-1");
|
||||
MysqlServiceInfo info2 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "mysql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, MysqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, MysqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("mysql", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("mysql", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, MYSQL_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, MYSQL_SCHEME, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -44,13 +44,18 @@ public class CloudFoundryConnectorMysqlServiceTest extends AbstractCloudFoundryC
|
||||
getMysqlServicePayloadWithLabelNoTags("mysql-1", hostname, port, username, password, name1),
|
||||
getMysqlServicePayloadWithLabelNoTags("mysql-2", hostname, port, username, password, name2)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
MysqlServiceInfo info1 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-1");
|
||||
MysqlServiceInfo info2 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "mysql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, MysqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, MysqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("mysql", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("mysql", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, MYSQL_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, MYSQL_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, MYSQL_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, MYSQL_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,12 +68,17 @@ public class CloudFoundryConnectorMysqlServiceTest extends AbstractCloudFoundryC
|
||||
getMysqlServicePayloadNoLabelNoTags("mysql-2", hostname, port, username, password, name2)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
MysqlServiceInfo info1 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-1");
|
||||
MysqlServiceInfo info2 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-2");
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "mysql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, MysqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, MysqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("mysql", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("mysql", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, MYSQL_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, MYSQL_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, MYSQL_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, MYSQL_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -80,13 +90,18 @@ public class CloudFoundryConnectorMysqlServiceTest extends AbstractCloudFoundryC
|
||||
getMysqlServicePayloadWithLabelNoUri("mysql-1", hostname, port, username, password, name1),
|
||||
getMysqlServicePayloadWithLabelNoUri("mysql-2", hostname, port, username, password, name2)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
MysqlServiceInfo info1 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-1");
|
||||
MysqlServiceInfo info2 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "mysql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, MysqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, MysqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("mysql", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("mysql", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, MYSQL_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, MYSQL_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, MYSQL_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, MYSQL_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -99,12 +114,17 @@ public class CloudFoundryConnectorMysqlServiceTest extends AbstractCloudFoundryC
|
||||
getMysqlServicePayloadWithJdbcUrl("mysql-2", hostname, port, username, password, name2)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
MysqlServiceInfo info1 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-1");
|
||||
MysqlServiceInfo info2 = (MysqlServiceInfo) getServiceInfo(serviceInfos, "mysql-2");
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "mysql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "mysql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, MysqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, MysqlServiceInfo.class);
|
||||
assertEquals(JDBC_PREFIX + "mysql://rawjdbcurl", info1.getJdbcUrl());
|
||||
assertEquals(JDBC_PREFIX + "mysql://rawjdbcurl", info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, MYSQL_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, MYSQL_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, MYSQL_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, MYSQL_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
private String getMysqlServicePayload(String serviceName,
|
||||
|
||||
@@ -1,35 +1,34 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.service.BaseServiceInfo;
|
||||
import org.springframework.cloud.service.ServiceInfo;
|
||||
import org.springframework.cloud.service.common.MysqlServiceInfo;
|
||||
import org.springframework.cloud.service.common.OracleServiceInfo;
|
||||
import org.springframework.cloud.service.common.RelationalServiceInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.cloud.service.common.OracleServiceInfo.ORACLE_SCHEME;
|
||||
import static org.springframework.cloud.service.common.RelationalServiceInfo.JDBC_PREFIX;
|
||||
|
||||
public class CloudFoundryConnectorOracleServiceTest extends AbstractUserProvidedServiceInfoCreatorTest {
|
||||
|
||||
private static final String INSTANCE_NAME = "database";
|
||||
private static final String ORACLE_SCHEME = "oracle:";
|
||||
private static final String SERVICE_NAME = "oracle-ups";
|
||||
|
||||
@Test
|
||||
public void oracleServiceCreation() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, ORACLE_SCHEME)));
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, ORACLE_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
OracleServiceInfo info = (OracleServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, OracleServiceInfo.class);
|
||||
assertEquals(getOracleJdbcUrl(INSTANCE_NAME), info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, ORACLE_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, ORACLE_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -39,7 +38,8 @@ public class CloudFoundryConnectorOracleServiceTest extends AbstractUserProvided
|
||||
getUserProvidedServicePayloadWithNoUri(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
BaseServiceInfo info = (BaseServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertNotNull(info);
|
||||
assertFalse(MysqlServiceInfo.class.isAssignableFrom(info.getClass())); // service was not detected as MySQL
|
||||
assertNotNull(info);
|
||||
}
|
||||
@@ -48,12 +48,13 @@ public class CloudFoundryConnectorOracleServiceTest extends AbstractUserProvided
|
||||
public void oracleServiceCreationWithJdbcUrl() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getOracleServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, ORACLE_SCHEME)));
|
||||
getOracleServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, ORACLE_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
OracleServiceInfo info = (OracleServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, OracleServiceInfo.class);
|
||||
assertEquals(RelationalServiceInfo.JDBC_PREFIX + "oracle:rawjdbcurl", info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, ORACLE_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, ORACLE_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
protected String getOracleServicePayloadWithJdbcurl(String serviceName, String hostname, int port,
|
||||
@@ -63,7 +64,7 @@ public class CloudFoundryConnectorOracleServiceTest extends AbstractUserProvided
|
||||
return payload.replace("$scheme", scheme);
|
||||
}
|
||||
|
||||
private String getOracleJdbcUrl(String name) {
|
||||
return "jdbc:oracle:thin:" + username + "/" + password + "@" + hostname + ":" + port + "/" + name;
|
||||
protected String getJdbcUrl(String scheme, String name) {
|
||||
return String.format("%s%s:thin:%s/%s@%s:%d/%s", JDBC_PREFIX, scheme, username, password, hostname, port, name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.cloud.service.common.RelationalServiceInfo.JDBC_PREFIX;
|
||||
import static org.springframework.cloud.service.common.PostgresqlServiceInfo.POSTGRES_SCHEME;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,13 +24,17 @@ public class CloudFoundryConnectorPostgresqlServiceTest extends AbstractCloudFou
|
||||
getPostgresqlServicePayload("postgresql-2", hostname, port, username, password, name2)));
|
||||
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
PostgresqlServiceInfo info1 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-1");
|
||||
PostgresqlServiceInfo info2 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-2");
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "postgresql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "postgresql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, PostgresqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, PostgresqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("postgres", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("postgres", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, POSTGRES_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, POSTGRES_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, POSTGRES_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, POSTGRES_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -44,13 +47,17 @@ public class CloudFoundryConnectorPostgresqlServiceTest extends AbstractCloudFou
|
||||
getPostgresqlServicePayloadNoLabelNoTags("postgresql-2", hostname, port, username, password, name2)));
|
||||
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
PostgresqlServiceInfo info1 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-1");
|
||||
PostgresqlServiceInfo info2 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-2");
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "postgresql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "postgresql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, PostgresqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, PostgresqlServiceInfo.class);
|
||||
assertEquals(getJdbcUrl("postgres", name1), info1.getJdbcUrl());
|
||||
assertEquals(getJdbcUrl("postgres", name2), info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, POSTGRES_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, POSTGRES_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, POSTGRES_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, POSTGRES_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,13 +70,17 @@ public class CloudFoundryConnectorPostgresqlServiceTest extends AbstractCloudFou
|
||||
getPostgresqlServicePayloadWithJdbcUrl("postgresql-2", hostname, port, username, password, name2)));
|
||||
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
PostgresqlServiceInfo info1 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-1");
|
||||
PostgresqlServiceInfo info2 = (PostgresqlServiceInfo) getServiceInfo(serviceInfos, "postgresql-2");
|
||||
ServiceInfo info1 = getServiceInfo(serviceInfos, "postgresql-1");
|
||||
ServiceInfo info2 = getServiceInfo(serviceInfos, "postgresql-2");
|
||||
|
||||
assertServiceFoundOfType(info1, PostgresqlServiceInfo.class);
|
||||
assertServiceFoundOfType(info2, PostgresqlServiceInfo.class);
|
||||
assertEquals(JDBC_PREFIX + "postgres://rawjdbcurl", info1.getJdbcUrl());
|
||||
assertEquals(JDBC_PREFIX + "postgres://rawjdbcurl", info2.getJdbcUrl());
|
||||
|
||||
assertJdbcUrlEqual(info1, POSTGRES_SCHEME, name1);
|
||||
assertJdbcUrlEqual(info2, POSTGRES_SCHEME, name2);
|
||||
|
||||
assertUriBasedServiceInfoFields(info1, POSTGRES_SCHEME, hostname, port, username, password, name1);
|
||||
assertUriBasedServiceInfoFields(info2, POSTGRES_SCHEME, hostname, port, username, password, name2);
|
||||
}
|
||||
|
||||
private String getPostgresqlServicePayload(String serviceName,
|
||||
|
||||
@@ -1,34 +1,33 @@
|
||||
package org.springframework.cloud.cloudfoundry;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.service.BaseServiceInfo;
|
||||
import org.springframework.cloud.service.ServiceInfo;
|
||||
import org.springframework.cloud.service.common.RelationalServiceInfo;
|
||||
import org.springframework.cloud.service.common.SqlServerServiceInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.cloud.service.common.RelationalServiceInfo.JDBC_PREFIX;
|
||||
import static org.springframework.cloud.service.common.SqlServerServiceInfo.SQLSERVER_SCHEME;
|
||||
|
||||
public class CloudFoundryConnectorSqlServerServiceTest extends AbstractUserProvidedServiceInfoCreatorTest {
|
||||
|
||||
private static final String INSTANCE_NAME = "database";
|
||||
private static final String SQLSERVER_SCHEME = "sqlserver:";
|
||||
private static final String SERVICE_NAME = "sqlserver-ups";
|
||||
|
||||
@Test
|
||||
public void sqlServerServiceCreation() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, SQLSERVER_SCHEME)));
|
||||
getUserProvidedServicePayload(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, SQLSERVER_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
SqlServerServiceInfo info = (SqlServerServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, SqlServerServiceInfo.class);
|
||||
assertEquals(getSqlServerJdbcUrl(INSTANCE_NAME), info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, SQLSERVER_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, SQLSERVER_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -38,21 +37,22 @@ public class CloudFoundryConnectorSqlServerServiceTest extends AbstractUserProvi
|
||||
getUserProvidedServicePayloadWithNoUri(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME)));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
BaseServiceInfo info = (BaseServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertFalse(SqlServerServiceInfo.class.isAssignableFrom(info.getClass())); // service was not detected as SQL-Server
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertNotNull(info);
|
||||
assertFalse(SqlServerServiceInfo.class.isAssignableFrom(info.getClass())); // service was not detected as SQL-Server
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sqlServerServiceCreationWithJdbcUrl() {
|
||||
when(mockEnvironment.getEnvValue("VCAP_SERVICES"))
|
||||
.thenReturn(getServicesPayload(
|
||||
getSqlServerServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, SQLSERVER_SCHEME)));
|
||||
getSqlServerServicePayloadWithJdbcurl(SERVICE_NAME, hostname, port, username, password, INSTANCE_NAME, SQLSERVER_SCHEME + ":")));
|
||||
List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos();
|
||||
|
||||
SqlServerServiceInfo info = (SqlServerServiceInfo) getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
ServiceInfo info = getServiceInfo(serviceInfos, SERVICE_NAME);
|
||||
assertServiceFoundOfType(info, SqlServerServiceInfo.class);
|
||||
assertEquals(RelationalServiceInfo.JDBC_PREFIX + "sqlserver:rawjdbcurl", info.getJdbcUrl());
|
||||
assertJdbcUrlEqual(info, SQLSERVER_SCHEME, INSTANCE_NAME);
|
||||
assertUriBasedServiceInfoFields(info, SQLSERVER_SCHEME, hostname, port, username, password, INSTANCE_NAME);
|
||||
}
|
||||
|
||||
protected String getSqlServerServicePayloadWithJdbcurl(String serviceName, String hostname, int port,
|
||||
@@ -62,7 +62,7 @@ public class CloudFoundryConnectorSqlServerServiceTest extends AbstractUserProvi
|
||||
return payload.replace("$scheme", scheme);
|
||||
}
|
||||
|
||||
private String getSqlServerJdbcUrl(String name) {
|
||||
return "jdbc:sqlserver://" + hostname + ":" + port + ";database=" + name + ";user=" + username + ";password=" + password;
|
||||
protected String getJdbcUrl(String scheme, String name) {
|
||||
return String.format("%s%s://%s:%d;database=%s;user=%s;password=%s", JDBC_PREFIX, scheme, hostname, port, name, username, password);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "$serviceName",
|
||||
"credentials": {
|
||||
"jdbcUrl": "jdbc:db2:rawjdbcurl",
|
||||
"jdbcUrl": "jdbc:db2://$hostname:$port/$name:user=$user;password=$password;",
|
||||
"uri": "db2://$user:$password@$hostname:$port/$name"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "$serviceName",
|
||||
"credentials": {
|
||||
"jdbcUrl": "jdbc:mysql://rawjdbcurl",
|
||||
"jdbcUrl": "jdbc:mysql://$hostname:$port/$name?user=$user&password=$password",
|
||||
"uri": "mysql://$user:$password@$hostname:$port/$name"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "$serviceName",
|
||||
"credentials": {
|
||||
"jdbcUrl": "jdbc:oracle:rawjdbcurl",
|
||||
"jdbcUrl": "jdbc:oracle:thin:$user/$password@$hostname:$port/$name",
|
||||
"uri": "oracle://$user:$password@$hostname:$port/$name"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "$serviceName",
|
||||
"credentials": {
|
||||
"jdbcUrl": "jdbc:postgres://rawjdbcurl",
|
||||
"jdbcUrl": "jdbc:postgresql://$hostname:$port/$name?user=$user&password=$password",
|
||||
"uri": "postgres://$user:$password@$hostname:$port/$name"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "$serviceName",
|
||||
"credentials": {
|
||||
"jdbcUrl": "jdbc:sqlserver:rawjdbcurl",
|
||||
"jdbcUrl": "jdbc:sqlserver://$hostname:$port;database=$name;user=$user;password=$password",
|
||||
"uri": "sqlserver://$user:$password@$hostname:$port/$name"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user