Index: Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/FailureMechanismSectionAssemblyGroupsViewTest.cs =================================================================== diff -u -r897a4fefac594fd103a4841c5008209d092e6983 -ra4a220da094eaec36cf0d350bb72cf5ed3127f88 --- Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/FailureMechanismSectionAssemblyGroupsViewTest.cs (.../FailureMechanismSectionAssemblyGroupsViewTest.cs) (revision 897a4fefac594fd103a4841c5008209d092e6983) +++ Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/FailureMechanismSectionAssemblyGroupsViewTest.cs (.../FailureMechanismSectionAssemblyGroupsViewTest.cs) (revision a4a220da094eaec36cf0d350bb72cf5ed3127f88) @@ -151,8 +151,63 @@ } } } - + [Test] + public void GivenViewWithValidData_CalculatorThrowsException_SetsEmptyDataTable() + { + // Given + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssemblyGroupBoundariesCalculatorStub calculator = calculatorFactory.LastCreatedAssemblyGroupBoundariesCalculator; + + using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection)) + { + AssemblyGroupsTable failureMechanismSectionGroupsTable = GetAssemblyGroupsTable(view); + + // Precondition + Assert.IsNotEmpty(failureMechanismSectionGroupsTable.Rows); + + // When + calculator.ThrowExceptionOnCalculate = true; + assessmentSection.FailureMechanismContribution.NotifyObservers(); + + // Then + Assert.IsEmpty(failureMechanismSectionGroupsTable.Rows); + } + } + } + + [Test] + public void GivenViewWithInValidData_CalculationWithValidData_SetsDataTable() + { + // Given + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssemblyGroupBoundariesCalculatorStub calculator = calculatorFactory.LastCreatedAssemblyGroupBoundariesCalculator; + calculator.ThrowExceptionOnCalculate = true; + + using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection)) + { + AssemblyGroupsTable failureMechanismSectionGroupsTable = GetAssemblyGroupsTable(view); + + // Precondition + Assert.IsEmpty(failureMechanismSectionGroupsTable.Rows); + + // When + calculator.ThrowExceptionOnCalculate = false; + assessmentSection.FailureMechanismContribution.NotifyObservers(); + + // Then + Assert.IsNotEmpty(failureMechanismSectionGroupsTable.Rows); + } + } + } + + [Test] public void GivenViewWithValidData_WhenFailureMechanismContributionUpdated_ThenDataTableUpdated() { // Given