use of org.contextmapper.dsl.contextMappingDSL.BoundedContext in project context-mapper-dsl by ContextMapper.
the class ServiceCutterUserRepresentationsExampleGeneratorTest method canCreateUserRepresentationsFile.
@Test
void canCreateUserRepresentationsFile() {
// given
ContextMappingModel model = ContextMappingDSLFactory.eINSTANCE.createContextMappingModel();
ContextMap contextMap = ContextMappingDSLFactory.eINSTANCE.createContextMap();
BoundedContext boundedContext = ContextMappingDSLFactory.eINSTANCE.createBoundedContext();
boundedContext.setName("TestContext");
contextMap.getBoundedContexts().add(boundedContext);
model.getBoundedContexts().add(boundedContext);
model.setMap(contextMap);
// when
IFileSystemAccess2Mock filesystem = new IFileSystemAccess2Mock();
this.generator.doGenerate(new ContextMappingModelResourceMock(model, URI.createFileURI(new File(Paths.get("").toAbsolutePath().toString(), dummyInputFilePath).getAbsolutePath())), filesystem, new IGeneratorContextMock());
// then
File resultFile = new File(Paths.get("").toAbsolutePath().toString(), resultFiltPath);
assertTrue(resultFile.exists());
}
use of org.contextmapper.dsl.contextMappingDSL.BoundedContext in project context-mapper-dsl by ContextMapper.
the class SplitAggregateByEntitiesTest method canSplitInModule.
@Test
void canSplitInModule() throws IOException {
// given
String inputModelName = "split-agg-by-entities-test-2-input.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
SplitAggregateByEntitiesRefactoring refactoring = new SplitAggregateByEntitiesRefactoring("Customers");
// when
refactoring.refactor(input);
refactoring.persistChanges(serializer);
// then
BoundedContext bc = reloadResource(input).getContextMappingModel().getBoundedContexts().get(0);
SculptorModule testModule = bc.getModules().get(0);
assertEquals(2, testModule.getAggregates().size());
for (Aggregate aggregate : testModule.getAggregates()) {
assertEquals(1, aggregate.getDomainObjects().size());
}
List<String> aggregateNames = testModule.getAggregates().stream().map(a -> a.getName()).collect(Collectors.toList());
assertTrue(aggregateNames.contains("Customers"));
assertTrue(aggregateNames.contains("Account"));
}
use of org.contextmapper.dsl.contextMappingDSL.BoundedContext in project context-mapper-dsl by ContextMapper.
the class SplitAggregateByEntitiesTest method canSplitWithTwoAggregates.
@Test
void canSplitWithTwoAggregates() throws IOException {
// given
String inputModelName = "split-agg-by-entities-test-1-input.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
SplitAggregateByEntitiesRefactoring refactoring = new SplitAggregateByEntitiesRefactoring("Customers");
// when
refactoring.refactor(input);
refactoring.persistChanges(serializer);
// then
BoundedContext bc = reloadResource(input).getContextMappingModel().getBoundedContexts().get(0);
assertEquals(2, bc.getAggregates().size());
for (Aggregate aggregate : bc.getAggregates()) {
assertEquals(1, aggregate.getDomainObjects().size());
}
List<String> aggregateNames = bc.getAggregates().stream().map(a -> a.getName()).collect(Collectors.toList());
assertTrue(aggregateNames.contains("Customers"));
assertTrue(aggregateNames.contains("Account"));
for (Aggregate aggregate : bc.getAggregates()) {
SimpleDomainObject obj = aggregate.getDomainObjects().get(0);
if (obj instanceof DomainObject)
assertTrue(((DomainObject) obj).isAggregateRoot());
}
}
use of org.contextmapper.dsl.contextMappingDSL.BoundedContext in project context-mapper-dsl by ContextMapper.
the class StandaloneAPITest method canCreateNewCMLModelViaFile.
@Test
public void canCreateNewCMLModelViaFile() throws IOException {
// given
StandaloneContextMapperAPI contextMapper = ContextMapperStandaloneSetup.getStandaloneAPI();
File file = new File("./out/test-new-cml-model-via-file.cml");
// when
ensureFileDoesNotExist(file);
CMLResource newCMLModel = contextMapper.createCML(file);
BoundedContext testContext = ContextMappingDSLFactory.eINSTANCE.createBoundedContext();
testContext.setName("TestContext");
newCMLModel.getContextMappingModel().getBoundedContexts().add(testContext);
newCMLModel.save(SaveOptions.defaultOptions().toOptionsMap());
// then
assertTrue(file.exists());
assertEquals(System.lineSeparator() + System.lineSeparator() + "BoundedContext TestContext", FileUtils.readFileToString(file, Charset.forName("UTF-8")));
}
use of org.contextmapper.dsl.contextMappingDSL.BoundedContext in project context-mapper-dsl by ContextMapper.
the class DeriveBoundedContextFromSubdomainsTest method canCopyAndEnhanceServices.
@ParameterizedTest
@ValueSource(strings = { "derive-bc-from-subdomain-test-1-input.cml", "derive-bc-from-subdomain-test-6-input.cml", "derive-bc-from-subdomain-test-7-input.cml" })
public void canCopyAndEnhanceServices(String inputFile) throws IOException {
// given
CMLResource input = getResourceCopyOfTestCML(inputFile);
// when
Set<String> subdomains = Sets.newHashSet(Arrays.asList(new String[] { "CustomerDomain" }));
DeriveBoundedContextFromSubdomains ar = new DeriveBoundedContextFromSubdomains("NewTestBC", subdomains);
ar.refactor(input);
ar.persistChanges(serializer);
// then
ContextMappingModel model = reloadResource(input).getContextMappingModel();
assertEquals(1, model.getBoundedContexts().size());
assertNotNull(model.getBoundedContexts().get(0));
BoundedContext bc = model.getBoundedContexts().get(0);
assertEquals("NewTestBC", bc.getName());
assertEquals(BoundedContextType.FEATURE, bc.getType());
assertEquals(1, bc.getAggregates().size());
assertNotNull(bc.getAggregates().get(0));
Aggregate aggregate = bc.getAggregates().get(0);
assertEquals(1, aggregate.getServices().size());
Service service = aggregate.getServices().get(0);
assertEquals("CustomerService", service.getName());
assertEquals(2, service.getOperations().size());
ServiceOperation operation = service.getOperations().stream().filter(o -> o.getName().equals("createCustomer")).findFirst().get();
assertEquals("createCustomer", operation.getName());
assertEquals("boolean", operation.getReturnType().getType());
assertEquals(1, operation.getParameters().size());
Parameter parameter = operation.getParameters().get(0);
assertEquals("createCustomerInput", parameter.getName());
assertEquals("CreateCustomerInput", parameter.getParameterType().getType());
}
Aggregations