use of org.contextmapper.contextmap.generator.model.SharedKernel in project context-mapper-dsl by ContextMapper.
the class ContextMapModelConverterTest method canConvertContextMap.
@Test
public void canConvertContextMap() throws IOException {
// given
String inputModelName = "test-context-map-1.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
ContextMappingModel model = input.getContextMappingModel();
// when
ContextMap contextMap = new ContextMapModelConverter().convert(model.getMap());
// then
assertEquals(6, contextMap.getBoundedContexts().size());
assertEquals(5, contextMap.getRelationships().size());
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("CustomerManagementContext")));
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("CustomerSelfServiceContext")));
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("PrintingContext")));
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("PolicyManagementContext")));
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("RiskManagementContext")));
assertTrue(contextMap.getBoundedContexts().contains(new BoundedContext("DebtCollection")));
UpstreamDownstreamRelationship rel1 = contextMap.getRelationships().stream().filter(r -> r instanceof UpstreamDownstreamRelationship).map(r -> (UpstreamDownstreamRelationship) r).filter(r -> r.getUpstreamBoundedContext().getName().equals("CustomerManagementContext") && r.getDownstreamBoundedContext().getName().equals("CustomerSelfServiceContext")).findFirst().get();
assertNotNull(rel1);
assertTrue(rel1.isCustomerSupplier());
UpstreamDownstreamRelationship rel2 = contextMap.getRelationships().stream().filter(r -> r instanceof UpstreamDownstreamRelationship).map(r -> (UpstreamDownstreamRelationship) r).filter(r -> r.getUpstreamBoundedContext().getName().equals("PrintingContext") && r.getDownstreamBoundedContext().getName().equals("CustomerManagementContext")).findFirst().get();
assertNotNull(rel2);
assertFalse(rel2.isCustomerSupplier());
assertTrue(rel2.getUpstreamPatterns().contains(UpstreamPatterns.OPEN_HOST_SERVICE));
assertTrue(rel2.getUpstreamPatterns().contains(UpstreamPatterns.PUBLISHED_LANGUAGE));
assertTrue(rel2.getDownstreamPatterns().contains(DownstreamPatterns.ANTICORRUPTION_LAYER));
Partnership rel3 = contextMap.getRelationships().stream().filter(r -> r instanceof Partnership).map(r -> (Partnership) r).filter(r -> r.getFirstParticipant().getName().equals("RiskManagementContext") && r.getSecondParticipant().getName().equals("PolicyManagementContext")).findFirst().get();
assertNotNull(rel3);
UpstreamDownstreamRelationship rel4 = contextMap.getRelationships().stream().filter(r -> r instanceof UpstreamDownstreamRelationship).map(r -> (UpstreamDownstreamRelationship) r).filter(r -> r.getUpstreamBoundedContext().getName().equals("CustomerManagementContext") && r.getDownstreamBoundedContext().getName().equals("PolicyManagementContext")).findFirst().get();
assertNotNull(rel4);
assertFalse(rel4.isCustomerSupplier());
assertTrue(rel4.getUpstreamPatterns().contains(UpstreamPatterns.OPEN_HOST_SERVICE));
assertTrue(rel4.getDownstreamPatterns().contains(DownstreamPatterns.CONFORMIST));
SharedKernel rel5 = contextMap.getRelationships().stream().filter(r -> r instanceof SharedKernel).map(r -> (SharedKernel) r).filter(r -> r.getFirstParticipant().getName().equals("PolicyManagementContext") && r.getSecondParticipant().getName().equals("DebtCollection")).findFirst().get();
assertNotNull(rel5);
}
use of org.contextmapper.contextmap.generator.model.SharedKernel in project context-mapper-dsl by ContextMapper.
the class ContextMapModelConverter method convert.
private Relationship convert(org.contextmapper.dsl.contextMappingDSL.Relationship cmlRelationship) {
AbstractRelationship relationship = null;
if (cmlRelationship instanceof org.contextmapper.dsl.contextMappingDSL.Partnership) {
org.contextmapper.dsl.contextMappingDSL.Partnership cmlPartnership = (org.contextmapper.dsl.contextMappingDSL.Partnership) cmlRelationship;
relationship = new Partnership(bcMap.get(cmlPartnership.getParticipant1().getName()), bcMap.get(cmlPartnership.getParticipant2().getName()));
} else if (cmlRelationship instanceof org.contextmapper.dsl.contextMappingDSL.SharedKernel) {
org.contextmapper.dsl.contextMappingDSL.SharedKernel cmlSharedKernel = (org.contextmapper.dsl.contextMappingDSL.SharedKernel) cmlRelationship;
relationship = new SharedKernel(bcMap.get(cmlSharedKernel.getParticipant1().getName()), bcMap.get(cmlSharedKernel.getParticipant2().getName()));
} else if (cmlRelationship instanceof org.contextmapper.dsl.contextMappingDSL.CustomerSupplierRelationship) {
org.contextmapper.dsl.contextMappingDSL.CustomerSupplierRelationship cmlCustomerSupplier = (org.contextmapper.dsl.contextMappingDSL.CustomerSupplierRelationship) cmlRelationship;
relationship = new UpstreamDownstreamRelationship(bcMap.get(cmlCustomerSupplier.getUpstream().getName()), bcMap.get(cmlCustomerSupplier.getDownstream().getName()));
((UpstreamDownstreamRelationship) relationship).setCustomerSupplier(true);
((UpstreamDownstreamRelationship) relationship).setUpstreamPatterns(convertUpstreamRoles(cmlCustomerSupplier.getUpstreamRoles()));
((UpstreamDownstreamRelationship) relationship).setDownstreamPatterns(convertDownstreamRoles(cmlCustomerSupplier.getDownstreamRoles()));
} else {
org.contextmapper.dsl.contextMappingDSL.UpstreamDownstreamRelationship cmlUpstreamDownstream = (org.contextmapper.dsl.contextMappingDSL.UpstreamDownstreamRelationship) cmlRelationship;
relationship = new UpstreamDownstreamRelationship(bcMap.get(cmlUpstreamDownstream.getUpstream().getName()), bcMap.get(cmlUpstreamDownstream.getDownstream().getName()));
((UpstreamDownstreamRelationship) relationship).setUpstreamPatterns(convertUpstreamRoles(cmlUpstreamDownstream.getUpstreamRoles()));
((UpstreamDownstreamRelationship) relationship).setDownstreamPatterns(convertDownstreamRoles(cmlUpstreamDownstream.getDownstreamRoles()));
}
if (useNameAndImplementationTechnologyLabels && cmlRelationship.getName() != null)
relationship.setName(cmlRelationship.getName());
if (useNameAndImplementationTechnologyLabels && cmlRelationship.getImplementationTechnology() != null)
relationship.setImplementationTechnology(cmlRelationship.getImplementationTechnology());
return relationship;
}
Aggregations