@Test public void test_addExternalDependencies_AddsOrphanedElements_WhenThereAreNoDirectRelationshipsWithAComponent() { SoftwareSystem source = model.addSoftwareSystem("Source", ""); SoftwareSystem destination = model.addSoftwareSystem("Destination", ""); SoftwareSystem a = model.addSoftwareSystem("A", ""); Container aa = a.addContainer("AA", "", ""); Component aaa = aa.addComponent("AAA", "", ""); source.uses(aa, ""); aa.uses(destination, ""); view = new ComponentView(aa, "components", "Description"); view.addAllComponents(); view.addExternalDependencies(); // check that the view includes the desired elements Set<Element> elementsInView = view.getElements().stream().map(ElementView::getElement).collect(Collectors.toSet()); assertTrue(elementsInView.contains(aaa)); // but there are no relationships (because component AAA isn't directly related to anything) assertEquals(0, view.getRelationships().size()); }
@Test public void test_addExternalDependencies_AddsTheContainer_WhenAComponentHasARelationshipFromAContainerInTheSameSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); Container containerB = softwareSystemA.addContainer("Container B", "", ""); containerB.uses(componentA, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(containerB))); }
@Test public void test_addExternalDependencies_AddsTheContainer_WhenAComponentHasARelationshipToAContainerInTheSameSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); Container containerB = softwareSystemA.addContainer("Container B", "", ""); componentA.uses(containerB, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(containerB))); }
@Test public void test_addExternalDependencies_AddsTheParentSoftwareSystem_WhenAComponentHasARelationshipFromAContainerInAnotherSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); SoftwareSystem softwareSystemB = model.addSoftwareSystem("Software System B", ""); Container containerB = softwareSystemB.addContainer("Container B", "", ""); containerB.uses(componentA, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(softwareSystemB))); }
@Test public void test_addExternalDependencies_AddsTheParentSoftwareSystem_WhenAComponentHasARelationshipToAContainerInAnotherSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); SoftwareSystem softwareSystemB = model.addSoftwareSystem("Software System B", ""); Container containerB = softwareSystemB.addContainer("Container B", "", ""); componentA.uses(containerB, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(softwareSystemB))); }
@Test public void test_addExternalDependencies_AddsTheParentContainer_WhenAComponentHasARelationshipToAComponentInADifferentContainerInTheSameSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); Container containerB = softwareSystemA.addContainer("Container B", "", ""); Component componentB = containerB.addComponent("Component B", "", ""); componentA.uses(componentB, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(containerB))); }
@Test public void test_addExternalDependencies_AddsTheParentContainer_WhenAComponentHasARelationshipFromAComponentInADifferentContainerInTheSameSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); Container containerB = softwareSystemA.addContainer("Container B", "", ""); Component componentB = containerB.addComponent("Component B", "", ""); componentB.uses(componentA, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(containerB))); }
@Test public void test_addExternalDependencies_AddsTheParentSoftwareSystem_WhenAComponentHasARelationshipToAComponentInAnotherSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); SoftwareSystem softwareSystemB = model.addSoftwareSystem("Software System B", ""); Container containerB = softwareSystemB.addContainer("Container B", "", ""); Component componentB = containerB.addComponent("Component B", "", ""); componentA.uses(componentB, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(softwareSystemB))); }
@Test public void test_addExternalDependencies_AddsTheParentSoftwareSystem_WhenAComponentHasARelationshipFromAComponentInAnotherSoftwareSystem() { SoftwareSystem softwareSystemA = model.addSoftwareSystem("Software System A", ""); Container containerA = softwareSystemA.addContainer("Container A", "", ""); Component componentA = containerA.addComponent("Component A", "", ""); SoftwareSystem softwareSystemB = model.addSoftwareSystem("Software System B", ""); Container containerB = softwareSystemB.addContainer("Container B", "", ""); Component componentB = containerB.addComponent("Component B", "", ""); componentB.uses(componentA, "uses"); view = new ComponentView(containerA, "key", "description"); view.addAllComponents(); view.addExternalDependencies(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(softwareSystemB))); }