use of org.contextmapper.dsl.generator.mdsl.model.EndpointClient in project context-mapper-dsl by ContextMapper.
the class MDSLModelCreator method createClient.
private EndpointClient createClient(DownstreamContext downstreamContext) {
EndpointClient client = new EndpointClient();
client.setName(mdslEncoder.encodeName(downstreamContext.getDownstreamName() + CLIENT_NAME_EXTENSION));
List<String> endpoints = downstreamContext.getConsumedAggregates().stream().map(agg -> agg.getName()).collect(Collectors.toList());
for (String offer : endpoints) {
client.addConsumedOffer(offer);
}
if (!downstreamContext.getDownstreamRoles().isEmpty()) {
String roles = String.join(" and ", downstreamContext.getDownstreamRoles().stream().map(ur -> ur.getName() + " (" + ur.getLiteral() + ")").collect(Collectors.toList()));
client.addComment("Generated from DDD downstream Bounded Context '" + downstreamContext.getDownstreamName() + "' implementing " + roles + ".");
}
if (downstreamContext.getDomainVisionStatement() != null && !"".equals(downstreamContext.getDomainVisionStatement()))
client.setDomainVisionStatement(downstreamContext.getDomainVisionStatement());
return client;
}
use of org.contextmapper.dsl.generator.mdsl.model.EndpointClient in project context-mapper-dsl by ContextMapper.
the class MDSLModelCreatorTest method canCreateMDSLModel.
@Test
void canCreateMDSLModel() throws IOException {
// given
CMLResource input = getResourceCopyOfTestCML("basic-mdsl-model-test.cml");
MDSLModelCreator mdslCreator = new MDSLModelCreator(input.getContextMappingModel());
// when
List<ServiceSpecification> serviceSpecifications = mdslCreator.createServiceSpecifications();
// then
assertEquals(1, serviceSpecifications.size());
ServiceSpecification spec = serviceSpecifications.get(0);
assertEquals("CustomerManagementContextAPI", spec.getName());
assertEquals(1, spec.getEndpoints().size());
EndpointContract endpoint = spec.getEndpoints().get(0);
assertEquals("Customers", endpoint.getName());
assertEquals(2, endpoint.getOperations().size());
EndpointOperation operation1 = endpoint.getOperations().get(0);
assertEquals("updateAddress", operation1.getName());
EndpointOperation operation2 = endpoint.getOperations().get(1);
assertEquals("anotherMethod", operation2.getName());
assertEquals(5, spec.getDataTypes().size());
DataType dataType1 = spec.getDataTypes().get(0);
assertEquals("Address", dataType1.getName());
DataType dataType2 = spec.getDataTypes().get(1);
assertEquals("Parameter1Type", dataType2.getName());
DataType dataType3 = spec.getDataTypes().get(2);
assertEquals("Parameter2Type", dataType3.getName());
DataType dataType4 = spec.getDataTypes().get(3);
assertEquals("ReturnType", dataType4.getName());
DataType dataType5 = spec.getDataTypes().get(4);
assertEquals("anotherMethodParameter", dataType5.getName());
assertEquals("Address", operation1.getExpectingPayload().getName());
assertEquals("ReturnType", operation1.getDeliveringPayload().getName());
assertEquals("anotherMethodParameter", operation2.getExpectingPayload().getName());
assertEquals(1, spec.getProviders().size());
EndpointProvider provider = spec.getProviders().get(0);
assertEquals("CustomerManagementContextProvider", provider.getName());
assertEquals(1, provider.getEndpointOffers().size());
EndpointOffer contractOffered = provider.getEndpointOffers().get(0);
assertEquals("Customers", contractOffered.getOfferedEndpoint().getName());
assertEquals("http://localhost:8000", contractOffered.getLocation());
assertEquals("RESTful HTTP", contractOffered.getProtocol());
assertEquals(1, spec.getClients().size());
EndpointClient client = spec.getClients().get(0);
assertEquals("ContractManagementContextClient", client.getName());
assertEquals(1, client.getConsumedOfferNames().size());
assertEquals("Customers", client.getConsumedOfferNames().get(0));
}
Aggregations