/** * Adds all people, software systems, sibling containers and components belonging to the container in scope. */ @Override public void addAllElements() { addAllSoftwareSystems(); addAllPeople(); addAllContainers(); addAllComponents(); }
@Test public void test_addAllComponents_DoesNothing_WhenThereAreNoComponents() { assertEquals(0, view.getElements().size()); view.addAllComponents(); assertEquals(0, view.getElements().size()); }
@Test public void test_addAllComponents_AddsAllComponents_WhenThereAreSomeComponents() { Component componentA = webApplication.addComponent("Component A", "Does something", "Java"); Component componentB = webApplication.addComponent("Component B", "Does something", "Java"); view.addAllComponents(); assertEquals(2, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); assertTrue(view.getElements().contains(new ElementView(componentB))); }
@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()); }
componentView.addAllComponents(); componentView.addAllPeople(); componentView.add(relationalDatabase);
@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_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_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_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_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_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_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))); }
componentView.addAllComponents(); componentView.addAllPeople(); componentView.add(relationalDatabase);
@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))); }
componentView.add(singlePageApplication); componentView.add(database); componentView.addAllComponents(); componentView.add(mainframeBankingSystem); componentView.add(emailSystem);
componentView.addAllPeople(); componentView.addAllContainers(); componentView.addAllComponents();