Index: Riskeer/Integration/src/Riskeer.Integration.Forms/Views/AssemblyGroupsView.cs =================================================================== diff -u -rb20b13efae693d8788e0891b283cfb1a1a2893cc -r5bf00df07b512b4e301e3b08dbd0192bac1332a5 --- Riskeer/Integration/src/Riskeer.Integration.Forms/Views/AssemblyGroupsView.cs (.../AssemblyGroupsView.cs) (revision b20b13efae693d8788e0891b283cfb1a1a2893cc) +++ Riskeer/Integration/src/Riskeer.Integration.Forms/Views/AssemblyGroupsView.cs (.../AssemblyGroupsView.cs) (revision 5bf00df07b512b4e301e3b08dbd0192bac1332a5) @@ -27,6 +27,7 @@ using Core.Common.Controls.Views; using Riskeer.AssemblyTool.Data; using Riskeer.Common.Data.AssemblyTool; +using Riskeer.Common.Data.Exceptions; using Riskeer.Common.Forms.Helpers; using Riskeer.Integration.Data; @@ -80,14 +81,21 @@ private void UpdateTableData() { - Tuple[] dataToSet = - AssemblyToolGroupBoundariesFactory.CreateFailureMechanismSectionAssemblyGroupBoundaries( + Tuple[] dataToSet; + try + { + dataToSet = AssemblyToolGroupBoundariesFactory.CreateFailureMechanismSectionAssemblyGroupBoundaries( AssessmentSection.FailureMechanismContribution.SignalingNorm, AssessmentSection.FailureMechanismContribution.LowerLimitNorm).Select( assemblyGroupBoundaries => new Tuple( assemblyGroupBoundaries, AssemblyGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(assemblyGroupBoundaries.Group), assemblyGroupBoundaries.Group)).ToArray(); - + } + catch (AssemblyException) + { + dataToSet = Array.Empty>(); + } + assemblyGroupsTable.SetData(dataToSet); } } Index: Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyGroupsViewTest.cs =================================================================== diff -u -rb20b13efae693d8788e0891b283cfb1a1a2893cc -r5bf00df07b512b4e301e3b08dbd0192bac1332a5 --- Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyGroupsViewTest.cs (.../AssemblyGroupsViewTest.cs) (revision b20b13efae693d8788e0891b283cfb1a1a2893cc) +++ Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyGroupsViewTest.cs (.../AssemblyGroupsViewTest.cs) (revision 5bf00df07b512b4e301e3b08dbd0192bac1332a5) @@ -28,11 +28,9 @@ using NUnit.Framework; using Riskeer.AssemblyTool.Data; using Riskeer.AssemblyTool.KernelWrapper.Calculators; -using Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories; using Riskeer.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Riskeer.AssemblyTool.KernelWrapper.TestUtil.Calculators.Categories; using Riskeer.Common.Data.AssessmentSection; -using Riskeer.Common.Data.Exceptions; using Riskeer.Common.Forms.TestUtil; using Riskeer.Integration.Data; using Riskeer.Integration.Forms.Views; @@ -54,27 +52,27 @@ } [Test] - public void CreateFailureMechanismSectionAssemblyGroupBoundaries_CalculatorThrowsException_ThrowsAssemblyException() + public void CreateAssemblyGroupsView_CalculatorThrowsException_ReturnsEmptyCollection() { // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssemblyGroupBoundariesCalculatorStub calculator = calculatorFactory.LastCreatedAssemblyGroupBoundariesCalculator; calculator.ThrowExceptionOnCalculate = true; // Call - void Call() => new AssemblyGroupsView(new AssessmentSection(AssessmentSectionComposition.Dike)); + using (var view = new AssemblyGroupsView(assessmentSection)) + { + AssemblyCategoriesTable failureMechanismSectionCategoriesTable = GetAssemblyGroupsTable(view); - // Assert - // Aanpassen, verandert doordat exception niet meer doorbubbelt. - var exception = Assert.Throws(Call); - Exception innerException = exception.InnerException; - Assert.IsInstanceOf(innerException); - Assert.AreEqual(innerException.Message, exception.Message); + // Assert + Assert.IsEmpty(failureMechanismSectionCategoriesTable.Rows); + } } } - + [Test] public void Constructor_ExpectedValues() { @@ -111,7 +109,7 @@ { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - + // Call using (new AssemblyToolCalculatorFactoryConfig()) { @@ -125,15 +123,14 @@ } } } - + [Test] public void Constructor_WithValidParameters_FillTableWithData() { // Setup var random = new Random(); var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - - + using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; @@ -145,7 +142,7 @@ { new FailureMechanismSectionAssemblyGroupBoundaries(failureMechanismSectionAssemblyGroup, lowerBoundary, upperBoundary) }; - + // Call using (var view = new AssemblyGroupsView(assessmentSection)) { @@ -160,14 +157,14 @@ } } } - + [Test] public void GivenViewWithValidData_WhenFailureMechanismContributionUpdated_ThenDataTableUpdated() { // Given - var random = new Random(); + var random = new Random(); var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - + using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; @@ -178,11 +175,11 @@ }; calculator.FailureMechanismSectionAssemblyGroupBoundariesOutput = output; - + using (var view = new AssemblyGroupsView(assessmentSection)) { AssemblyCategoriesTable failureMechanismSectionCategoriesTable = GetAssemblyGroupsTable(view); - + // Precondition int groupBoundaries = output.Count; Assert.AreEqual(1, failureMechanismSectionCategoriesTable.Rows.Count); @@ -192,10 +189,10 @@ { output.Add(CreateRandomFailureMechanismSectionAssemblyGroupBoundaries(random)); } - + // When assessmentSection.FailureMechanismContribution.NotifyObservers(); - + // Then Assert.AreEqual(groupBoundaries + newGroupBoundaries, failureMechanismSectionCategoriesTable.Rows.Count); }