Search in sources :

Example 6 with DeploymentView

use of com.structurizr.view.DeploymentView in project dsl by structurizr.

the class DeploymentViewContentParserTests method test_parseExclude_ThrowsAnException_WhenTheRelationshipSourceElementDoesNotExistInTheModel.

@Test
void test_parseExclude_ThrowsAnException_WhenTheRelationshipSourceElementDoesNotExistInTheModel() {
    try {
        SoftwareSystem ss1 = model.addSoftwareSystem("SS1", "Description");
        SoftwareSystem ss2 = model.addSoftwareSystem("SS2", "Description");
        Relationship rel = ss1.uses(ss2, "Uses");
        DeploymentNode dn = model.addDeploymentNode("Live", "Live", "Description", "Technology");
        dn.add(ss1);
        dn.add(ss2);
        DeploymentView view = views.createDeploymentView("key", "Description");
        view.setEnvironment("Live");
        DeploymentViewDslContext context = new DeploymentViewDslContext(view);
        context.setWorkspace(workspace);
        IdentifiersRegister elements = new IdentifiersRegister();
        elements.register("ss2", ss2);
        context.setIdentifierRegister(elements);
        parser.parseExclude(context, tokens("exclude", "relationship.source==ss1 && relationship.destination==ss2"));
        fail();
    } catch (RuntimeException re) {
        assertEquals("The element \"ss1\" does not exist", re.getMessage());
    }
}
Also used : DeploymentView(com.structurizr.view.DeploymentView) Test(org.junit.jupiter.api.Test)

Example 7 with DeploymentView

use of com.structurizr.view.DeploymentView in project dsl by structurizr.

the class DeploymentViewContentParserTests method test_parseInclude_AddsTheElement_WhenTheElementIsAContainerInstance.

@Test
void test_parseInclude_AddsTheElement_WhenTheElementIsAContainerInstance() {
    DeploymentNode dn = model.addDeploymentNode("Live", "DN", "Description", "Technology");
    SoftwareSystem softwareSystem = model.addSoftwareSystem("Software System");
    Container container = softwareSystem.addContainer("Container");
    ContainerInstance containerInstance = dn.add(container);
    IdentifiersRegister elements = new IdentifiersRegister();
    elements.register("element", containerInstance);
    DeploymentView view = views.createDeploymentView("key", "Description");
    view.setEnvironment("Live");
    DeploymentViewDslContext context = new DeploymentViewDslContext(view);
    context.setWorkspace(workspace);
    context.setIdentifierRegister(elements);
    parser.parseInclude(context, tokens("include", "element"));
    assertEquals(2, view.getElements().size());
    assertNotNull(view.getElementView(dn));
    assertNotNull(view.getElementView(containerInstance));
}
Also used : DeploymentView(com.structurizr.view.DeploymentView) Test(org.junit.jupiter.api.Test)

Example 8 with DeploymentView

use of com.structurizr.view.DeploymentView in project dsl by structurizr.

the class DeploymentViewContentParserTests method test_parseInclude_AddsAllContainerInstancesWithTheSpecifiedTag.

@Test
void test_parseInclude_AddsAllContainerInstancesWithTheSpecifiedTag() {
    SoftwareSystem ss = model.addSoftwareSystem("SS", "Description");
    Container c1 = ss.addContainer("Container 1");
    Container c2 = ss.addContainer("Container 2");
    DeploymentNode dn = model.addDeploymentNode("Live", "Live", "Description", "Technology");
    ContainerInstance c1Instance = dn.add(c1);
    c1Instance.addTags("Tag 1");
    ContainerInstance c2Instance = dn.add(c2);
    c2Instance.addTags("Tag 2");
    DeploymentView view = views.createDeploymentView("key", "Description");
    view.setEnvironment("Live");
    DeploymentViewDslContext context = new DeploymentViewDslContext(view);
    context.setWorkspace(workspace);
    parser.parseInclude(context, tokens("include", "element.tag==Tag 1"));
    assertEquals(2, view.getElements().size());
    assertNotNull(view.getElementView(dn));
    assertNotNull(view.getElementView(c1Instance));
}
Also used : DeploymentView(com.structurizr.view.DeploymentView) Test(org.junit.jupiter.api.Test)

Example 9 with DeploymentView

use of com.structurizr.view.DeploymentView in project dsl by structurizr.

the class DeploymentViewContentParserTests method test_parseExclude_ThrowsAnException_WhenTheRelationshipDestinationElementDoesNotExistInTheModel.

@Test
void test_parseExclude_ThrowsAnException_WhenTheRelationshipDestinationElementDoesNotExistInTheModel() {
    try {
        SoftwareSystem ss1 = model.addSoftwareSystem("SS1", "Description");
        SoftwareSystem ss2 = model.addSoftwareSystem("SS2", "Description");
        Relationship rel = ss1.uses(ss2, "Uses");
        DeploymentNode dn = model.addDeploymentNode("Live", "Live", "Description", "Technology");
        dn.add(ss1);
        DeploymentView view = views.createDeploymentView("key", "Description");
        view.setEnvironment("Live");
        view.add(dn);
        DeploymentViewDslContext context = new DeploymentViewDslContext(view);
        context.setWorkspace(workspace);
        IdentifiersRegister elements = new IdentifiersRegister();
        elements.register("ss1", ss1);
        context.setIdentifierRegister(elements);
        parser.parseExclude(context, tokens("exclude", "relationship.source==ss1 && relationship.destination==ss2"));
        fail();
    } catch (RuntimeException re) {
        assertEquals("The element \"ss2\" does not exist", re.getMessage());
    }
}
Also used : DeploymentView(com.structurizr.view.DeploymentView) Test(org.junit.jupiter.api.Test)

Example 10 with DeploymentView

use of com.structurizr.view.DeploymentView in project dsl by structurizr.

the class DeploymentViewContentParserTests method test_parseInclude_AddsTheElement_WhenTheElementIsAnInfrastructureNode.

@Test
void test_parseInclude_AddsTheElement_WhenTheElementIsAnInfrastructureNode() {
    DeploymentNode dn = model.addDeploymentNode("Live", "DN", "Description", "Technology");
    InfrastructureNode in = dn.addInfrastructureNode("IN", "Description", "Technology");
    IdentifiersRegister elements = new IdentifiersRegister();
    elements.register("element", in);
    DeploymentView view = views.createDeploymentView("key", "Description");
    view.setEnvironment("Live");
    DeploymentViewDslContext context = new DeploymentViewDslContext(view);
    context.setWorkspace(workspace);
    context.setIdentifierRegister(elements);
    parser.parseInclude(context, tokens("include", "element"));
    assertEquals(2, view.getElements().size());
    assertNotNull(view.getElementView(dn));
    assertNotNull(view.getElementView(in));
}
Also used : DeploymentView(com.structurizr.view.DeploymentView) Test(org.junit.jupiter.api.Test)

Aggregations

DeploymentView (com.structurizr.view.DeploymentView)31 Test (org.junit.jupiter.api.Test)27 SoftwareSystem (com.structurizr.model.SoftwareSystem)6 com.structurizr.model (com.structurizr.model)4 RelationshipView (com.structurizr.view.RelationshipView)4 Assertions (org.junit.jupiter.api.Assertions)4 Workspace (com.structurizr.Workspace)3 ArrayList (java.util.ArrayList)3 Container (com.structurizr.model.Container)2 DeploymentNode (com.structurizr.model.DeploymentNode)2 Model (com.structurizr.model.Model)2 Styles (com.structurizr.view.Styles)2 SystemLandscapeView (com.structurizr.view.SystemLandscapeView)2 ViewSet (com.structurizr.view.ViewSet)2 StructurizrDslParser (com.structurizr.dsl.StructurizrDslParser)1 StructurizrDslParserException (com.structurizr.dsl.StructurizrDslParserException)1 Diagram (com.structurizr.export.Diagram)1 StructurizrPlantUMLExporter (com.structurizr.export.plantuml.StructurizrPlantUMLExporter)1 Element (com.structurizr.model.Element)1 Enterprise (com.structurizr.model.Enterprise)1