public void Test_Name_WithASoftwareSystemAndAnEnvironment()
        {
            SoftwareSystem softwareSystem = Model.AddSoftwareSystem("Software System", "");

            deploymentView             = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.Environment = "Live";
            Assert.Equal("Software System - Deployment - Live", deploymentView.Name);
        }
        public void Test_AddAllDeploymentNodes_DoesNothing_WhenThereAreTopLevelDeploymentNodesButNoContainerInstances()
        {
            deploymentView = Views.CreateDeploymentView("deployment", "Description");
            Model.AddDeploymentNode("Deployment Node", "Description", "Technology");

            deploymentView.AddAllDeploymentNodes();
            Assert.Equal(0, deploymentView.Elements.Count);
        }
        public void Test_AddAllDeploymentNodes_DoesNothing_WhenThereNoDeploymentNodesForTheDeploymentEnvironment()
        {
            SoftwareSystem    softwareSystem    = Model.AddSoftwareSystem("Software System", "");
            Container         container         = softwareSystem.AddContainer("Container", "Description", "Technology");
            DeploymentNode    deploymentNode    = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            ContainerInstance containerInstance = deploymentNode.Add(container);

            deploymentView             = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.Environment = "Live";
            deploymentView.AddAllDeploymentNodes();
            Assert.Equal(0, deploymentView.Elements.Count);
        }
 public void Test_AddRelationship_ThrowsAnException_WhenPassedNull()
 {
     try
     {
         deploymentView = Views.CreateDeploymentView("key", "Description");
         deploymentView.Add((Relationship)null);
         throw new TestFailedException();
     }
     catch (ArgumentException ae)
     {
         Assert.Equal("A relationship must be specified.", ae.Message);
     }
 }
 public void Test_AddAnimationStep_ThrowsAnException_WhenNoContainerInstancesOrInfrastructureNodesAreSpecified()
 {
     try
     {
         deploymentView = Views.CreateDeploymentView("deployment", "Description");
         deploymentView.AddAnimation((ContainerInstance[])null, (InfrastructureNode[])null);
         throw new TestFailedException();
     }
     catch (ArgumentException ae)
     {
         Assert.Equal("One or more container instances/infrastructure nodes must be specified.", ae.Message);
     }
 }
        public void Test_AddAllDeploymentNodes_AddsDeploymentNodesAndContainerInstances_WhenThereAreTopLevelDeploymentNodesWithContainerInstances()
        {
            SoftwareSystem    softwareSystem    = Model.AddSoftwareSystem("Software System", "");
            Container         container         = softwareSystem.AddContainer("Container", "Description", "Technology");
            DeploymentNode    deploymentNode    = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            ContainerInstance containerInstance = deploymentNode.Add(container);

            deploymentView = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.AddAllDeploymentNodes();
            Assert.Equal(2, deploymentView.Elements.Count);
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNode)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(containerInstance)));
        }
        public void Test_AddDeploymentNode_AddsTheParentToo()
        {
            SoftwareSystem    softwareSystem       = Model.AddSoftwareSystem("Software System", "");
            Container         container            = softwareSystem.AddContainer("Container", "Description", "Technology");
            DeploymentNode    deploymentNodeParent = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            DeploymentNode    deploymentNodeChild  = deploymentNodeParent.AddDeploymentNode("Deployment Node", "Description", "Technology");
            ContainerInstance containerInstance    = deploymentNodeChild.Add(container);

            deploymentView = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.Add(deploymentNodeChild);
            Assert.Equal(3, deploymentView.Elements.Count);
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeParent)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeChild)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(containerInstance)));
        }
Beispiel #8
0
        public void Test_Add_AddsTheInfrastructureNode()
        {
            DeploymentNode     deploymentNodeParent = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            DeploymentNode     deploymentNodeChild  = deploymentNodeParent.AddDeploymentNode("Deployment Node", "Description", "Technology");
            InfrastructureNode infrastructureNode1  = deploymentNodeChild.AddInfrastructureNode("Infrastructure Node 1");
            InfrastructureNode infrastructureNode2  = deploymentNodeChild.AddInfrastructureNode("Infrastructure Node 2");

            deploymentView = Views.CreateDeploymentView("deployment", "Description");
            deploymentView.Add(infrastructureNode1);

            Assert.Equal(3, deploymentView.Elements.Count);
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeParent)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeChild)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(infrastructureNode1)));
        }
        public void Test_Remove_RemovesTheChildDeploymentNodeAndChildren()
        {
            SoftwareSystem     softwareSystem       = Model.AddSoftwareSystem("Software System", "");
            Container          container            = softwareSystem.AddContainer("Container", "Description", "Technology");
            DeploymentNode     deploymentNodeParent = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            DeploymentNode     deploymentNodeChild  = deploymentNodeParent.AddDeploymentNode("Deployment Node", "Description", "Technology");
            InfrastructureNode infrastructureNode   = deploymentNodeChild.AddInfrastructureNode("Infrastructure Node");
            ContainerInstance  containerInstance    = deploymentNodeChild.Add(container);

            deploymentView = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.AddAllDeploymentNodes();
            Assert.Equal(4, deploymentView.Elements.Count);

            deploymentView.Remove(deploymentNodeParent);
            Assert.Equal(0, deploymentView.Elements.Count);
        }
Beispiel #10
0
        public void Test_Add_AddsTheSoftwareSystemInstance()
        {
            SoftwareSystem         softwareSystem         = Model.AddSoftwareSystem("Software System");
            DeploymentNode         deploymentNodeParent   = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            DeploymentNode         deploymentNodeChild    = deploymentNodeParent.AddDeploymentNode("Deployment Node", "Description", "Technology");
            InfrastructureNode     infrastructureNode     = deploymentNodeChild.AddInfrastructureNode("Infrastructure Node ");
            SoftwareSystemInstance softwareSystemInstance = deploymentNodeChild.Add(softwareSystem);

            deploymentView = Views.CreateDeploymentView("deployment", "Description");
            deploymentView.Add(softwareSystemInstance);

            Assert.Equal(3, deploymentView.Elements.Count);
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeParent)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNodeChild)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(softwareSystemInstance)));
        }
        public void Test_AddAllDeploymentNodes_AddsDeploymentNodesAndContainerInstancesOnlyForTheSoftwareSystemInScope()
        {
            SoftwareSystem    softwareSystem1    = Model.AddSoftwareSystem("Software System 1", "");
            Container         container1         = softwareSystem1.AddContainer("Container 1", "Description", "Technology");
            DeploymentNode    deploymentNode1    = Model.AddDeploymentNode("Deployment Node 1", "Description", "Technology");
            ContainerInstance containerInstance1 = deploymentNode1.Add(container1);

            SoftwareSystem    softwareSystem2    = Model.AddSoftwareSystem("Software System 2", "");
            Container         container2         = softwareSystem2.AddContainer("Container 2", "Description", "Technology");
            DeploymentNode    deploymentNode2    = Model.AddDeploymentNode("Deployment Node 2", "Description", "Technology");
            ContainerInstance containerInstance2 = deploymentNode2.Add(container2);

            // two containers from different software systems on the same deployment node
            deploymentNode1.Add(container2);

            deploymentView = Views.CreateDeploymentView(softwareSystem1, "deployment", "Description");
            deploymentView.AddAllDeploymentNodes();

            Assert.Equal(2, deploymentView.Elements.Count);
            Assert.True(deploymentView.Elements.Contains(new ElementView(deploymentNode1)));
            Assert.True(deploymentView.Elements.Contains(new ElementView(containerInstance1)));
        }
Beispiel #12
0
        public void Test_AddContainerInstance_ThrowsAnException_WhenTheParentSoftwareSystemInstanceHasAlreadyBeenAdded()
        {
            SoftwareSystem         softwareSystem         = Model.AddSoftwareSystem("Software System");
            Container              container              = softwareSystem.AddContainer("Container");
            DeploymentNode         deploymentNodeParent   = Model.AddDeploymentNode("Deployment Node", "Description", "Technology");
            DeploymentNode         deploymentNodeChild    = deploymentNodeParent.AddDeploymentNode("Deployment Node", "Description", "Technology");
            SoftwareSystemInstance softwareSystemInstance = deploymentNodeChild.Add(softwareSystem);
            ContainerInstance      containerInstance      = deploymentNodeChild.Add(container);

            deploymentView = Views.CreateDeploymentView("deployment", "Description");
            deploymentView.Add(softwareSystemInstance);

            try
            {
                deploymentView.Add(containerInstance);
                throw new TestFailedException();
            }
            catch (ElementNotPermittedInViewException e)
            {
                Assert.Equal("The parent of Container is already in this view.", e.Message);
            }
        }
        public void Test_AddAnimationStep()
        {
            SoftwareSystem softwareSystem = Model.AddSoftwareSystem("Software System", "");
            Container      webApplication = softwareSystem.AddContainer("Web Application", "Description", "Technology");
            Container      database       = softwareSystem.AddContainer("Database", "Description", "Technology");

            webApplication.Uses(database, "Reads from and writes to", "JDBC/HTTPS");

            DeploymentNode    developerLaptop        = Model.AddDeploymentNode("Developer Laptop", "Description", "Technology");
            DeploymentNode    apacheTomcat           = developerLaptop.AddDeploymentNode("Apache Tomcat", "Description", "Technology");
            DeploymentNode    oracle                 = developerLaptop.AddDeploymentNode("Oracle", "Description", "Technology");
            ContainerInstance webApplicationInstance = apacheTomcat.Add(webApplication);
            ContainerInstance databaseInstance       = oracle.Add(database);

            deploymentView = Views.CreateDeploymentView(softwareSystem, "deployment", "Description");
            deploymentView.Add(developerLaptop);

            deploymentView.AddAnimation(webApplicationInstance);
            deploymentView.AddAnimation(databaseInstance);

            Animation step1 = deploymentView.Animations.First(step => step.Order == 1);

            Assert.Equal(3, step1.Elements.Count);
            Assert.True(step1.Elements.Contains(developerLaptop.Id));
            Assert.True(step1.Elements.Contains(apacheTomcat.Id));
            Assert.True(step1.Elements.Contains(webApplicationInstance.Id));
            Assert.Equal(0, step1.Relationships.Count);

            Animation step2 = deploymentView.Animations.First(step => step.Order == 2);

            Assert.Equal(2, step2.Elements.Count);
            Assert.True(step2.Elements.Contains(oracle.Id));
            Assert.True(step2.Elements.Contains(databaseInstance.Id));
            Assert.Equal(1, step2.Relationships.Count);
            Assert.True(step2.Relationships.Contains(webApplicationInstance.Relationships.First().Id));
        }
 public void Test_Name_WithNoSoftwareSystemAndAnEnvironment()
 {
     deploymentView             = Views.CreateDeploymentView("deployment", "Description");
     deploymentView.Environment = "Live";
     Assert.Equal("Deployment - Live", deploymentView.Name);
 }
 public void Test_Name_WithNoSoftwareSystemAndNoEnvironment()
 {
     deploymentView = Views.CreateDeploymentView("deployment", "Description");
     Assert.Equal("Deployment - Default", deploymentView.Name);
 }