示例#1
0
        public void Clear_Matrix_Successful()
        {
            bool[,] matrixA = new bool[, ] //// 1 2
            {
                { false, true },           // 1 O X
                { false, false }           // 2 O O
            };

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Step1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Step2", new FlowIdentifier(FlowType.Basic, 1));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);

            TestUseCase uc = new TestUseCase();

            uc.SetNodes(nodes);
            uc.SetEdgeMatrix(m);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", nodes, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 1);

            sm.ClearMatrix();

            Assert.AreEqual(sm.GetScenarios().Count, 0);
        }
示例#2
0
        public void ScenarioMatrix_Set_UseCase()
        {
            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));

            TestUseCase uc1   = new TestUseCase();
            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            uc1.SetNodes(nodes);

            ScenarioMatrix sm = new ScenarioMatrix(uc1);

            Assert.AreEqual(sm.UC.Nodes.Count, 1);

            TestUseCase uc2 = new TestUseCase();

            nodes = new List <Node>();
            nodes.Add(n1);
            nodes.Add(n2);
            uc2.SetNodes(nodes);

            sm.UC = uc2;

            Assert.AreEqual(sm.UC.Nodes.Count, 2);
        }
示例#3
0
        public void Export_Scenario_WithComment()
        {
            bool[,] matrixA = new bool[, ] //// 1 2
            {
                { false, true },           // 1 O X
                { false, false }           // 2 O O
            };

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Step1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Step2", new FlowIdentifier(FlowType.Basic, 1));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);

            TestUseCase uc = new TestUseCase();

            uc.SetNodes(nodes);
            uc.SetEdgeMatrix(m);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", nodes, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 1);

            Scenario s1 = new Scenario(sm.GetScenarios()[0]);

            s1.Comment = "Apfelkuchen";
            s1.ID      = sm.GetScenarios()[0].ID;

            sm.UpdateScenarioComment(s1);


            string filename = this.GetTmpFile();

            bool retVal = sm.Export(filename);



            try
            {
                Assert.IsTrue(File.Exists(filename));
                Assert.IsTrue(retVal);
                string text = File.ReadAllText(filename);
                Assert.IsTrue(text.Contains("Apfelkuchen"));
            }
            finally
            {
                File.Delete(filename);
            }
        }
示例#4
0
        public void ScenarioMatrix_Export_Fail()
        {
            bool[,] matrixA = new bool[, ]                      //// 1 2 3 4 5 6
            {
                { false, true, false, false, false, false },    // 1 O X O O O O
                { false, false, true, false, false, true },     // 2 O O X O O X
                { false, false, false, true, true, false },     // 3 O O O X X O
                { false, false, false, false, false, false },   // 4 O O O O O O
                { false, true, false, false, false, false },    // 5 O X O O O O
                { false, false, false, false, false, false }    // 6 O O O O O O
            };

            uint cycleDepth = 1;

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));
            Node n3 = new Node("Schritt 3", new FlowIdentifier(FlowType.Basic, 1));
            Node n4 = new Node("Schritt 4", new FlowIdentifier(FlowType.Basic, 1));
            Node n5 = new Node("Schritt 5", new FlowIdentifier(FlowType.SpecificAlternative, 2));
            Node n6 = new Node("Schritt 6", new FlowIdentifier(FlowType.SpecificAlternative, 3));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);
            nodes.Add(n3);
            nodes.Add(n4);
            nodes.Add(n5);
            nodes.Add(n6);

            List <Node> basicFlow = new List <Node>();

            basicFlow.Add(n1);
            basicFlow.Add(n2);
            basicFlow.Add(n3);
            basicFlow.Add(n4);

            TestUseCase uc = new TestUseCase();

            uc.SetEdgeMatrix(m);
            uc.SetNodes(nodes);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", basicFlow, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, cycleDepth);

            sm.CreateScenarios();

            string filename = "abcdefg:\\";

            bool retVal = sm.Export(filename);

            Assert.IsFalse(File.Exists(filename));
            Assert.IsFalse(retVal);
        }
示例#5
0
        public void ScenarioMatrix_Change_CycleDepth()
        {
            TestUseCase uc = new TestUseCase();

            uc.SetNodes(new List <Node>());
            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CycleDepth = 5;

            Assert.AreEqual(sm.CycleDepth, 5);
        }
示例#6
0
        public void ScenarioMatrix_UseCase_IsEmpty()
        {
            TestUseCase uc = new TestUseCase();

            uc.SetNodes(new List <Node>());

            ScenarioMatrix sm     = new ScenarioMatrix(uc);
            bool           retVal = sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 0);
            Assert.IsFalse(retVal);
        }
        public UseCaseWithoutResponseTests()
        {
            testUseCase = new TestUseCase();
            UseCaseFactoryMock useCaseFactory = new UseCaseFactoryMock
            {
                UseCase = testUseCase
            };

            requestBus = new RequestBus(useCaseFactory);

            requestBus.RegisterUseCase <TestUseCase>();
        }
示例#8
0
        public void ScenarioMatrix_ChangeCycleDepth_MatrixA()
        {
            bool[,] matrixA = new bool[, ]                      //// 1 2 3 4 5 6
            {
                { false, true, false, false, false, false },    // 1 O X O O O O
                { false, false, true, false, false, true },     // 2 O O X O O X
                { false, false, false, true, true, false },     // 3 O O O X X O
                { false, false, false, false, false, false },   // 4 O O O O O O
                { false, true, false, false, false, false },    // 5 O X O O O O
                { false, false, false, false, false, false }    // 6 O O O O O O
            };

            uint cycleDepth = 1;

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));
            Node n3 = new Node("Schritt 3", new FlowIdentifier(FlowType.Basic, 1));
            Node n4 = new Node("Schritt 4", new FlowIdentifier(FlowType.Basic, 1));
            Node n5 = new Node("Schritt 5", new FlowIdentifier(FlowType.SpecificAlternative, 2));
            Node n6 = new Node("Schritt 6", new FlowIdentifier(FlowType.SpecificAlternative, 3));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);
            nodes.Add(n3);
            nodes.Add(n4);
            nodes.Add(n5);
            nodes.Add(n6);

            List <Node> basicFlow = new List <Node>();

            basicFlow.Add(n1);
            basicFlow.Add(n2);
            basicFlow.Add(n3);
            basicFlow.Add(n4);

            List <Node> expectedScenario1 = new List <Node>();

            expectedScenario1.Add(n1);
            expectedScenario1.Add(n2);
            expectedScenario1.Add(n6);

            List <Node> expectedScenario2 = new List <Node>();

            expectedScenario2.Add(n1);
            expectedScenario2.Add(n2);
            expectedScenario2.Add(n3);
            expectedScenario2.Add(n4);

            List <Node> expectedScenario3 = new List <Node>();

            expectedScenario3.Add(n1);
            expectedScenario3.Add(n2);
            expectedScenario3.Add(n3);
            expectedScenario3.Add(n5);
            expectedScenario3.Add(n2);
            expectedScenario3.Add(n3);
            expectedScenario3.Add(n4);

            List <Node> expectedScenario4 = new List <Node>();

            expectedScenario4.Add(n1);
            expectedScenario4.Add(n2);
            expectedScenario4.Add(n3);
            expectedScenario4.Add(n5);
            expectedScenario4.Add(n2);
            expectedScenario4.Add(n6);

            TestUseCase uc = new TestUseCase();

            uc.SetEdgeMatrix(m);
            uc.SetNodes(nodes);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", basicFlow, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, cycleDepth);

            sm.CreateScenarios();
            List <Scenario> foundScenarios = sm.GetScenarios();

            Assert.AreEqual(foundScenarios.Count, 2);
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario1));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario2));

            sm.CycleDepth  = 2;
            foundScenarios = sm.GetScenarios();

            Assert.AreEqual(foundScenarios.Count, 4);
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario1));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario2));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario3));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario4));
        }