use of org.apache.servicecomb.serviceregistry.client.http.Holder in project java-chassis by ServiceComb.
the class TestMicroserviceRegisterTask method testFirstRegisterForProd.
/**
* There is microservice information but no schema in service center.
*/
@Test
public void testFirstRegisterForProd(@Mocked ServiceRegistryClient srClient) {
Microservice otherMicroservice = new Microservice();
otherMicroservice.setAppId(microservice.getAppId());
otherMicroservice.setServiceName("ms1");
otherMicroservice.addSchema("s1", null);
List<GetSchemaResponse> list = new ArrayList<>();
GetSchemaResponse resp = new GetSchemaResponse();
resp.setSchemaId("s1");
list.add(resp);
Holder<List<GetSchemaResponse>> onlineSchemasHolder = new Holder<>();
onlineSchemasHolder.setValue(list).setStatusCode(200);
new Expectations() {
{
srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
result = "serviceId";
srClient.getMicroservice(anyString);
result = otherMicroservice;
srClient.getSchemas(anyString);
result = onlineSchemasHolder;
srClient.getSchema("serviceId", "s1");
result = null;
srClient.registerSchema("serviceId", "s1", "s1Content");
result = true;
}
};
microservice.addSchema("s1", "s1Content");
microservice.setEnvironment("production");
MicroserviceRegisterTask registerTask = new MicroserviceRegisterTask(eventBus, srClient, microservice);
registerTask.run();
Assert.assertEquals(true, registerTask.isRegistered());
Assert.assertEquals(true, registerTask.isSchemaIdSetMatch());
Assert.assertEquals("serviceId", microservice.getServiceId());
Assert.assertEquals(1, taskList.size());
}
use of org.apache.servicecomb.serviceregistry.client.http.Holder in project java-chassis by ServiceComb.
the class TestMicroserviceRegisterTask method testLocalSchemaAndServiceCenterSchemaIgnoreDiff.
@Test
public void testLocalSchemaAndServiceCenterSchemaIgnoreDiff(@Mocked ServiceRegistryClient srClient, @Mocked ServiceRegistryConfig serviceRegistryConfig) {
Microservice otherMicroservice = new Microservice();
otherMicroservice.setAppId(microservice.getAppId());
otherMicroservice.setServiceName("ms1");
otherMicroservice.addSchema("s1", "abcd");
List<GetSchemaResponse> list = new ArrayList<>();
GetSchemaResponse resp = new GetSchemaResponse();
resp.setSchemaId("s1");
resp.setSummary("c1188d709631a9038874f9efc6eb894f");
list.add(resp);
Holder<List<GetSchemaResponse>> onlineSchemasHolder = new Holder<>();
onlineSchemasHolder.setValue(list).setStatusCode(200);
new Expectations() {
{
serviceRegistryConfig.isIgnoreSwaggerDifference();
result = true;
srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
result = "serviceId";
srClient.getMicroservice(anyString);
result = otherMicroservice;
srClient.getSchemas(anyString);
result = onlineSchemasHolder;
srClient.getSchema(anyString, anyString);
result = "swagger: \"2.0\"\n" + "info:\n" + " version: \"1.0.0\"\n" + " title: \"swagger definition for org.apache.servicecomb.demo.jaxrs.server.RequestClientTimeOut\"\n" + " x-java-interface: \"cse.gen.jaxrstest.jaxrs.clientreqtimeout.RequestClientTimeOutIntf\"\n" + "basePath: \"/clientreqtimeout\"\n" + "consumes:\n" + "- \"application/json\"\n" + "produces:\n" + "- \"application/json\"\n" + "paths:\n" + " /sayhello:\n" + " post:\n" + " operationId: \"sayHello\"\n" + " parameters:\n" + " - in: \"body\"\n" + " name: \"student\"\n" + " required: false\n" + " schema:\n" + " $ref: \"#/definitions/Student\"\n" + " responses:\n" + " 200:\n" + " description: \"response of 200\"\n" + " schema:\n" + " $ref: \"#/definitions/Student\"\n" + "definitions:\n" + " Student:\n" + " type: \"object\"\n" + " required:\n" + " - \"name\"\n" + " properties:\n" + " name:\n" + " type: \"string\"\n" + " age:\n" + " type: \"integer\"\n" + " format: \"int32\"\n" + " maximum: 20\n" + " x-java-class: \"org.apache.servicecomb.demo.validator.Student\"";
}
};
microservice.addSchema("s1", "swagger: \"2.0\"\n" + "info:\n" + " version: \"1.0.0\"\n" + " title: \"swagger definition for org.apache.servicecomb.demo.jaxrs.server.RequestClientTimeOut\"\n" + " x-java-interface: \"cse.gen.jaxrstest.jaxrs.clientreqtimeout.RequestClientTimeOutIntf\"\n" + "basePath: \"/clientreqtimeout\"\n" + "consumes:\n" + "- \"application/json\"\n" + "produces:\n" + "- \"application/json\"\n" + "paths:\n" + " /sayhello:\n" + " post:\n" + " operationId: \"sayHello\"\n" + " parameters:\n" + " - in: \"body\"\n" + " name: \"student\"\n" + " required: false\n" + " schema:\n" + " $ref: \"#/definitions/Student\"\n" + " responses:\n" + " 200:\n" + " description: \"response of 200\"\n" + " schema:\n" + " type: \"string\"\n" + "definitions:\n" + " Student:\n" + " type: \"object\"\n" + " required:\n" + " - \"name\"\n" + " properties:\n" + " name:\n" + " type: \"string\"\n" + " age:\n" + " type: \"integer\"\n" + " format: \"int32\"\n" + " maximum: 20\n" + " x-java-class: \"org.apache.servicecomb.demo.validator.Student\"");
microservice.setEnvironment("prod");
MicroserviceRegisterTask registerTask = new MicroserviceRegisterTask(eventBus, srClient, microservice);
Boolean isIlleagalException = false;
try {
registerTask.run();
} catch (IllegalStateException exception) {
isIlleagalException = true;
}
Assert.assertEquals(false, isIlleagalException);
}
use of org.apache.servicecomb.serviceregistry.client.http.Holder in project java-chassis by ServiceComb.
the class LocalServiceRegistryClientImpl method getSchemas.
@Override
public Holder<List<GetSchemaResponse>> getSchemas(String microserviceId) {
Microservice microservice = microserviceIdMap.get(microserviceId);
if (microservice == null) {
throw new IllegalArgumentException("Invalid serviceId, serviceId=" + microserviceId);
}
List<GetSchemaResponse> schemas = new ArrayList<>();
microservice.getSchemaMap().forEach((key, val) -> {
GetSchemaResponse schema = new GetSchemaResponse();
schema.setSchema(val);
schema.setSchemaId(key);
schema.setSummary(Hashing.sha256().newHasher().putString(val, Charsets.UTF_8).hash().toString());
schemas.add(schema);
});
Holder<List<GetSchemaResponse>> resultHolder = new Holder<>();
resultHolder.setStatusCode(Status.OK.getStatusCode()).setValue(schemas);
return resultHolder;
}
use of org.apache.servicecomb.serviceregistry.client.http.Holder in project java-chassis by ServiceComb.
the class TestMicroserviceRegisterTask method testRegisterSchemaSuccess.
/**
* There is no microservice information in service center.
*/
@Test
public void testRegisterSchemaSuccess(@Mocked ServiceRegistryClient srClient) {
microservice.addSchema("s1", "s1Content");
Holder<List<GetSchemaResponse>> onlineSchemasHolder = new Holder<>();
onlineSchemasHolder.setStatusCode(200);
ArrayList<GetSchemaResponse> schemaResponseList = new ArrayList<>();
onlineSchemasHolder.setValue(schemaResponseList);
GetSchemaResponse schemaResponse = new GetSchemaResponse();
schemaResponseList.add(schemaResponse);
schemaResponse.setSchemaId("s1");
new Expectations() {
{
srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
result = null;
srClient.registerMicroservice((Microservice) any);
result = "serviceId";
srClient.getSchema("serviceId", "s1");
result = "s1Content";
srClient.getSchemas("serviceId");
result = onlineSchemasHolder;
}
};
MicroserviceRegisterTask registerTask = new MicroserviceRegisterTask(eventBus, srClient, microservice);
registerTask.run();
Assert.assertEquals(true, registerTask.isRegistered());
Assert.assertEquals(true, registerTask.isSchemaIdSetMatch());
Assert.assertEquals("serviceId", microservice.getServiceId());
Assert.assertEquals("serviceId", microservice.getInstance().getServiceId());
Assert.assertEquals(1, taskList.size());
}
use of org.apache.servicecomb.serviceregistry.client.http.Holder in project java-chassis by ServiceComb.
the class TestMicroserviceRegisterTask method testRegisterSchemaFailed.
/**
* Local schemaId set is consistent with online schemaId set, and schema contents are not registered.
* This service instance try to register schema content but failed.
*/
@Test
public void testRegisterSchemaFailed(@Mocked ServiceRegistryClient srClient) {
microservice.addSchema("s1", "");
microservice.addSchema("exist", "");
Holder<List<GetSchemaResponse>> onlineSchemasHolder = new Holder<>();
onlineSchemasHolder.setStatusCode(200);
ArrayList<GetSchemaResponse> schemaResponses = new ArrayList<>();
onlineSchemasHolder.setValue(schemaResponses);
GetSchemaResponse schemaResponse = new GetSchemaResponse();
schemaResponse.setSchemaId("s1");
schemaResponses.add(schemaResponse);
schemaResponse.setSchemaId("exist");
schemaResponses.add(schemaResponse);
new Expectations() {
{
srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
result = null;
srClient.registerMicroservice((Microservice) any);
result = "serviceId";
srClient.registerSchema(anyString, anyString, anyString);
result = false;
srClient.getSchemas("serviceId");
this.result = onlineSchemasHolder;
}
};
MicroserviceRegisterTask registerTask = new MicroserviceRegisterTask(eventBus, srClient, microservice);
registerTask.run();
Assert.assertEquals(false, registerTask.isRegistered());
Assert.assertEquals(false, registerTask.isSchemaIdSetMatch());
Assert.assertEquals("serviceId", microservice.getServiceId());
Assert.assertEquals("serviceId", microservice.getInstance().getServiceId());
Assert.assertEquals(1, taskList.size());
}
Aggregations