use of org.contextmapper.dsl.refactoring.MergeBoundedContextsRefactoring in project context-mapper-dsl by ContextMapper.
the class MergeBoundedContextsTest method canFixImportsWhenMergingAcrossFiles.
@Test
void canFixImportsWhenMergingAcrossFiles() throws IOException {
// given
CMLResource mainResource = getResourceCopyOfTestCML("merge-bounded-contexts-fix-import-test-1.cml");
ResourceSet additionalResources = getResourceSetOfTestCMLFiles("merge-bounded-contexts-fix-import-test-2.cml", "merge-bounded-contexts-fix-import-test-3.cml", "merge-bounded-contexts-fix-import-test-4.cml");
// when
MergeBoundedContextsRefactoring ar = new MergeBoundedContextsRefactoring("CustomerManagement", "AnotherContext");
ar.refactor(mainResource, additionalResources);
ar.persistChanges(serializer);
mainResource = reloadResource(mainResource);
// then
CMLResource updatedImportResource = new CMLResource(additionalResources.getResources().stream().filter(r -> r.getURI().toString().endsWith("merge-bounded-contexts-fix-import-test-4.cml")).findFirst().get());
updatedImportResource = reloadResource(updatedImportResource);
Optional<Import> neededImport = updatedImportResource.getContextMappingModel().getImports().stream().filter(i -> i.getImportURI().endsWith("merge-bounded-contexts-fix-import-test-3.cml")).findFirst();
assertTrue(neededImport.isPresent());
}
use of org.contextmapper.dsl.refactoring.MergeBoundedContextsRefactoring in project context-mapper-dsl by ContextMapper.
the class MergeBoundedContextsTest method doNotMergeIfBC1DoesNotExist.
@Test
void doNotMergeIfBC1DoesNotExist() throws IOException {
// given
String inputModelName = "merge-bounded-contexts-test-1-input.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
MergeBoundedContextsRefactoring refactoring = new MergeBoundedContextsRefactoring("ThisBCDoesNotExist", "AnotherContext");
// when
refactoring.refactor(input);
// then
assertEquals(2, input.getContextMappingModel().getBoundedContexts().size());
}
use of org.contextmapper.dsl.refactoring.MergeBoundedContextsRefactoring in project context-mapper-dsl by ContextMapper.
the class MergeBoundedContextsTest method doNotMergeIfBC2DoesNotExist.
@Test
void doNotMergeIfBC2DoesNotExist() throws IOException {
// given
String inputModelName = "merge-bounded-contexts-test-1-input.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
MergeBoundedContextsRefactoring refactoring = new MergeBoundedContextsRefactoring("CustomerManagement", "ThisBCDoesNotExist");
// when
refactoring.refactor(input);
// then
assertEquals(2, input.getContextMappingModel().getBoundedContexts().size());
}
use of org.contextmapper.dsl.refactoring.MergeBoundedContextsRefactoring in project context-mapper-dsl by ContextMapper.
the class SuspendPartnershipRefactoringHandler method executeRefactoring.
@Override
protected void executeRefactoring(CMLResource resource, ExecutionEvent event) {
Partnership partnership = (Partnership) getSelectedElement();
SuspendPartnershipContext refactoringContext = new SuspendPartnershipContext(partnership.getParticipant1().getName(), partnership.getParticipant2().getName());
new WizardDialog(HandlerUtil.getActiveShell(event), new SuspendPartnershipRefactoringWizard(refactoringContext, executionContext -> {
if (refactoringContext.getMode() == SuspendPartnershipMode.MERGE_BOUNDED_CONTEXTS) {
// just use the 'Merge Bounded Contexts' AR in this case ...
return finishRefactoring(new MergeBoundedContextsRefactoring(executionContext.getMergeModeSelectedBoundedContext1(), executionContext.getMergeModeSelectedBoundedContext2(), executionContext.isMergeModeTakeAttributesFromSecondBoundedContext()), resource, event);
} else if (refactoringContext.getMode() == SuspendPartnershipMode.EXTRACT_NEW_BOUNDED_CONTEXT) {
return finishRefactoring(new ExtractPartnershipRefactoring(refactoringContext.getBoundedContext1(), refactoringContext.getBoundedContext2()), resource, event);
} else {
String upstream = refactoringContext.getBoundedContext1();
String downstream = refactoringContext.getBoundedContext2();
if (refactoringContext.getReplaceModeUpstreamBoundedContext().equals(refactoringContext.getBoundedContext2())) {
upstream = refactoringContext.getBoundedContext2();
downstream = refactoringContext.getBoundedContext1();
}
return finishRefactoring(new ChangePartnershipToUpstreamDownstreamRefactoring(upstream, downstream), resource, event);
}
})).open();
}
use of org.contextmapper.dsl.refactoring.MergeBoundedContextsRefactoring in project context-mapper-dsl by ContextMapper.
the class MergeBoundedContextsTest method canMergeWithModules.
@Test
void canMergeWithModules() throws IOException {
// given
String inputModelName = "merge-bounded-contexts-test-2-input.cml";
CMLResource input = getResourceCopyOfTestCML(inputModelName);
MergeBoundedContextsRefactoring refactoring = new MergeBoundedContextsRefactoring("CustomerManagement", "AnotherContext");
// when
refactoring.refactor(input);
// then
ContextMappingModel model = input.getContextMappingModel();
assertEquals(1, model.getBoundedContexts().size());
assertEquals("CustomerManagement", model.getBoundedContexts().get(0).getName());
List<String> moduleNames = model.getBoundedContexts().get(0).getModules().stream().map(a -> a.getName()).collect(Collectors.toList());
assertTrue(moduleNames.contains("mod1"));
assertTrue(moduleNames.contains("mod2"));
}
Aggregations