@Test public void test_add_DoesNothing_WhenANullContainerIsSpecified() { assertEquals(0, view.getElements().size()); view.add((Container) null); assertEquals(0, view.getElements().size()); }
getElements().stream() .map(ElementView::getElement) .filter(e -> e instanceof Component) for (Relationship relationship : getContainer().getModel().getRelationships()) { if (components.contains(relationship.getSource())) { addExternalDependency(relationship.getDestination(), components); addExternalDependency(relationship.getSource(), components); getRelationships().stream() .map(RelationshipView::getRelationship) .filter(r -> !components.contains(r.getSource()) && !components.contains(r.getDestination()))
/** * Adds all people, software systems, sibling containers and components belonging to the container in scope. */ @Override public void addAllElements() { addAllSoftwareSystems(); addAllPeople(); addAllContainers(); addAllComponents(); }
/** * Adds an individual container to this view. * * @param container the Container to add * @param addRelationships whether to add relationships to/from the container */ public void add(Container container, boolean addRelationships) { if (container != null && !container.equals(getContainer())) { addElement(container, addRelationships); } }
/** * Gets the (computed) name of this view. * * @return the name, as a String */ @Override public String getName() { return getSoftwareSystem().getName() + " - " + getContainer().getName() + " - Components"; }
@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_construction() { assertEquals("The System - Web Application - Components", view.getName()); assertEquals("Some description", view.getDescription()); assertEquals(0, view.getElements().size()); assertSame(softwareSystem, view.getSoftwareSystem()); assertEquals(softwareSystem.getId(), view.getSoftwareSystemId()); assertEquals(webApplication.getId(), view.getContainerId()); assertSame(model, view.getModel()); }
views.setContainerViews(Collections.singleton(containerView)); ComponentView componentView = new ComponentView(); componentView.setSoftwareSystemId(softwareSystem.getId()); componentView.setContainerId(container.getId()); componentView.setElements(elementViewsFor(component)); views.setComponentViews(Collections.singleton(componentView)); assertSame(container, containerView.getElementView(container).getElement()); assertSame(model, componentView.getModel()); assertSame(views, componentView.getViewSet()); assertSame(softwareSystem, componentView.getSoftwareSystem()); assertSame(container, componentView.getContainer()); assertSame(component, componentView.getElementView(component).getElement());
@Test public void test_remove_RemovesTheComponent_WhenTheComponentIsInTheView() { Component componentA = webApplication.addComponent("Component A", "Does something", "Java"); view.add(componentA); assertEquals(1, view.getElements().size()); assertTrue(view.getElements().contains(new ElementView(componentA))); view.remove(componentA); assertEquals(0, view.getElements().size()); }
componentView.addAllComponents(); componentView.addAllPeople(); componentView.add(relationalDatabase);
@Test public void test_copyLayoutInformationFrom_WhenTheComponentViewKeysMatch() { Workspace workspace1 = createWorkspace(); Container container1 = workspace1.getModel().getSoftwareSystemWithName("Software System").getContainerWithName("Container"); ComponentView view1 = workspace1.getViews().createComponentView(container1, "containers", "Description"); view1.addAllElements(); view1.getElements().iterator().next().setX(100); view1.setPaperSize(PaperSize.A3_Landscape); Workspace workspace2 = createWorkspace(); Container container2 = workspace2.getModel().getSoftwareSystemWithName("Software System").getContainerWithName("Container"); ComponentView view2 = workspace2.getViews().createComponentView(container2, "containers", "Description"); view2.addAllElements(); workspace2.getViews().copyLayoutInformationFrom(workspace1.getViews()); assertEquals(100, view2.getElements().iterator().next().getX()); assertEquals(PaperSize.A3_Landscape, view2.getPaperSize()); }
@Test public void test_remove_RemovesTheComponentAndRelationships_WhenTheComponentIsInTheViewAndHasArelationshipToAnotherElement() { Component componentA = webApplication.addComponent("Component A", "Does something", "Java"); Component componentB = webApplication.addComponent("Component B", "Does something", "Java"); componentA.uses(componentB, "uses"); view.add(componentA); view.add(componentB); assertEquals(2, view.getElements().size()); assertEquals(1, view.getRelationships().size()); view.remove(componentB); assertEquals(1, view.getElements().size()); assertEquals(0, view.getRelationships().size()); }
componentView.add(mobileApp); componentView.add(singlePageApplication); componentView.add(database); componentView.addAllComponents(); componentView.add(mainframeBankingSystem); componentView.add(emailSystem); componentView.setPaperSize(PaperSize.A5_Landscape); containerView.addAnimation(database); componentView.addAnimation(singlePageApplication, mobileApp); componentView.addAnimation(signinController, securityComponent, database); componentView.addAnimation(accountsSummaryController, mainframeBankingSystemFacade, mainframeBankingSystem); componentView.addAnimation(resetPasswordController, emailComponent, database);
@Test public void test_createComponentView() { Workspace workspace = new Workspace("Name", "Description"); SoftwareSystem softwareSystem = workspace.getModel().addSoftwareSystem("Software System", "Description"); Container container = softwareSystem.addContainer("Container", "Description", "Technology"); ComponentView componentView = workspace.getViews().createComponentView(container, "key", "Description"); assertEquals("key", componentView.getKey()); assertEquals("Description", componentView.getDescription()); assertSame(softwareSystem, componentView.getSoftwareSystem()); assertSame(container, componentView.getContainer()); }
protected void write(ComponentView view, Writer writer) { try { writeHeader(view, writer); view.getElements().stream() .filter(ev -> !(ev.getElement() instanceof Component)) .map(ElementView::getElement) .sorted((e1, e2) -> e1.getName().compareTo(e2.getName())) .forEach(e -> write(view, e, writer, false)); writer.write("package \"" + view.getContainer().getName() + "\" <<" + typeOf(view.getContainer()) + ">> {"); writer.write(System.lineSeparator()); view.getElements().stream() .filter(ev -> ev.getElement() instanceof Component) .map(ElementView::getElement) .sorted((e1, e2) -> e1.getName().compareTo(e2.getName())) .forEach(e -> write(view, e, writer, true)); writer.write("}"); writer.write(System.lineSeparator()); writeRelationships(view, writer); writeFooter(writer); } catch (IOException e) { e.printStackTrace(); } }
@Test public void test_addAllComponents_DoesNothing_WhenThereAreNoComponents() { assertEquals(0, view.getElements().size()); view.addAllComponents(); assertEquals(0, view.getElements().size()); }
@Test public void test_addAllPeople_DoesNothing_WhenThereAreNoPeople() { assertEquals(0, view.getElements().size()); view.addAllPeople(); assertEquals(0, view.getElements().size()); }
@Test public void test_addAllElements_DoesNothing_WhenThereAreNoSoftwareSystemsOrPeople() { assertEquals(0, view.getElements().size()); view.addAllElements(); assertEquals(0, view.getElements().size()); }
@Test public void test_copyLayoutInformationFrom_DoesNotDoAnythingIfThereIsNoComponentViewToCopyInformationFrom() { Workspace workspace1 = createWorkspace(); Workspace workspace2 = createWorkspace(); Container container2 = workspace2.getModel().getSoftwareSystemWithName("Software System").getContainerWithName("Container"); ComponentView view2 = workspace2.getViews().createComponentView(container2, "components", "Description"); view2.addAllElements(); workspace2.getViews().copyLayoutInformationFrom(workspace1.getViews()); assertEquals(0, view2.getElements().iterator().next().getX()); // default assertNull(view2.getPaperSize()); // default }
@Test public void test_addAllContainers_DoesNothing_WhenThereAreNoContainers() { assertEquals(0, view.getElements().size()); view.addAllContainers(); assertEquals(0, view.getElements().size()); }