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); }
public void Export_Path_IsNull() { ScenarioMatrix s = new ScenarioMatrix(new TestUseCase(), 1); bool ret = s.Export(null); Assert.IsFalse(ret); }
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); }
public void ScenarioMatrix_UseCase_IsNull() { ScenarioMatrix sm = new ScenarioMatrix(null, 1); bool retVal = sm.CreateScenarios(); Assert.IsFalse(retVal); Assert.AreEqual(sm.GetScenarios().Count, 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); } }
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); }
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); }
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); }
/// <summary> /// BackgroundWorker to generate the matrix /// </summary> /// <param name="sender">The sender</param> /// <param name="e">The e</param> private void BackgroundWorkerGenerateMatrix_DoWork(object sender, DoWorkEventArgs e) { if ((!this.backgroundWorkerGenerateMatrix.CancellationPending) && (!this.backgroundWorkerValidFile.CancellationPending) && (!this.backgroundWorkerLoadFile.CancellationPending)) { this.matrix = new ScenarioMatrix(this.useCase, this.currentCycleDepth); this.matrix.ScenariosCreated += this.Matrix_scenariosCreated; if (this.matrix.CreateScenarios()) { this.BackgroundColor3 = Brushes.LimeGreen; this.MatrixCycleDepthEnabled = true; } else { this.BackgroundColor3 = Brushes.Red; MessageBox.Show("Fehler beim Erstellen der Szenariomatrix aufgetreten.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
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)); }