Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Ringtoets.GrassCoverErosionOutwards.Forms.csproj =================================================================== diff -u -ra23e251253c836b9954d53cde172d0ccccff8a2c -r8fbc77385dee9bc30d5c69a24e61ff1a1e95d244 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Ringtoets.GrassCoverErosionOutwards.Forms.csproj (.../Ringtoets.GrassCoverErosionOutwards.Forms.csproj) (revision a23e251253c836b9954d53cde172d0ccccff8a2c) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Ringtoets.GrassCoverErosionOutwards.Forms.csproj (.../Ringtoets.GrassCoverErosionOutwards.Forms.csproj) (revision 8fbc77385dee9bc30d5c69a24e61ff1a1e95d244) @@ -94,6 +94,16 @@ Core.Components.Gis False + + {420ed9c3-0c33-47ea-b893-121a9c0db4f1} + Ringtoets.AssemblyTool.Data + False + + + {22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1} + Ringtoets.AssemblyTool.Forms + False + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRow.cs =================================================================== diff -u -r833e75c2d3d73d3b7c63ab12d44edaa3cbb09bf1 -r8fbc77385dee9bc30d5c69a24e61ff1a1e95d244 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionOutwardsFailureMechanismSectionResultRow.cs) (revision 833e75c2d3d73d3b7c63ab12d44edaa3cbb09bf1) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionOutwardsFailureMechanismSectionResultRow.cs) (revision 8fbc77385dee9bc30d5c69a24e61ff1a1e95d244) @@ -22,6 +22,8 @@ using System; using System.ComponentModel; using Core.Common.Base.Data; +using Ringtoets.AssemblyTool.Data; +using Ringtoets.AssemblyTool.Forms; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.TypeConverters; using Ringtoets.Common.Forms.Views; @@ -56,11 +58,124 @@ set { SectionResult.SimpleAssessmentResult = value; - SectionResult.NotifyObservers(); + UpdateInternalData(); } } /// + /// Gets or sets the value of the detailed assessment of safety per failure mechanism section + /// for the factorized signaling norm (Cat Iv - IIv). + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResultForFactorizedSignalingNorm + { + get + { + return SectionResult.DetailedAssessmentResultForFactorizedSignalingNorm; + } + set + { + SectionResult.DetailedAssessmentResultForFactorizedSignalingNorm = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value of the detailed assessment of safety per failure mechanism section + /// for the signaling norm (Cat IIv - IIIv). + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResultForSignalingNorm + { + get + { + return SectionResult.DetailedAssessmentResultForSignalingNorm; + } + set + { + SectionResult.DetailedAssessmentResultForSignalingNorm = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value of the detailed assessment of safety per failure mechanism section + /// for the failure mechanism specific lower limit norm (Cat IIIv - IVv). + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResultForMechanismSpecificLowerLimitNorm + { + get + { + return SectionResult.DetailedAssessmentResultForMechanismSpecificLowerLimitNorm; + } + set + { + SectionResult.DetailedAssessmentResultForMechanismSpecificLowerLimitNorm = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value of the detailed assessment of safety per failure mechanism section + /// for the lower limit norm (Cat IVv - Vv). + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResultForLowerLimitNorm + { + get + { + return SectionResult.DetailedAssessmentResultForLowerLimitNorm; + } + set + { + SectionResult.DetailedAssessmentResultForLowerLimitNorm = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value of the detailed assessment of safety per failure mechanism section + /// for the factorized lower limit norm (Cat Vv - VIv). + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResultForFactorizedLowerLimitNorm + { + get + { + return SectionResult.DetailedAssessmentResultForFactorizedLowerLimitNorm; + } + set + { + SectionResult.DetailedAssessmentResultForFactorizedLowerLimitNorm = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SelectableFailureMechanismSectionAssemblyCategoryGroup TailorMadeAssessmentResult + { + get + { + return SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertTo(SectionResult.TailorMadeAssessmentResult); + } + set + { + SectionResult.TailorMadeAssessmentResult = SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertFrom(value); + UpdateInternalData(); + } + } + + /// /// Gets or sets the value representing the result of the layer 2a assessment. /// public AssessmentLayerTwoAResult AssessmentLayerTwoA Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Ringtoets.GrassCoverErosionOutwards.Forms.Test.csproj =================================================================== diff -u -ra23e251253c836b9954d53cde172d0ccccff8a2c -r8fbc77385dee9bc30d5c69a24e61ff1a1e95d244 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Ringtoets.GrassCoverErosionOutwards.Forms.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Forms.Test.csproj) (revision a23e251253c836b9954d53cde172d0ccccff8a2c) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Ringtoets.GrassCoverErosionOutwards.Forms.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Forms.Test.csproj) (revision 8fbc77385dee9bc30d5c69a24e61ff1a1e95d244) @@ -87,6 +87,18 @@ {318ba582-88c9-4816-a54a-a7e431461de3} Core.Components.Gis + + {420ed9c3-0c33-47ea-b893-121a9c0db4f1} + Ringtoets.AssemblyTool.Data + + + {22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1} + Ringtoets.AssemblyTool.Forms + + + {0AB432BB-E2CC-42EA-A72C-7AFEF7536B38} + Ringtoets.AssemblyTool.KernelWrapper.TestUtil + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -r833e75c2d3d73d3b7c63ab12d44edaa3cbb09bf1 -r8fbc77385dee9bc30d5c69a24e61ff1a1e95d244 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionOutwardsFailureMechanismSectionResultRowTest.cs) (revision 833e75c2d3d73d3b7c63ab12d44edaa3cbb09bf1) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionOutwardsFailureMechanismSectionResultRowTest.cs) (revision 8fbc77385dee9bc30d5c69a24e61ff1a1e95d244) @@ -25,6 +25,9 @@ using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; +using Ringtoets.AssemblyTool.Data; +using Ringtoets.AssemblyTool.Forms; +using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.TypeConverters; @@ -51,6 +54,14 @@ // Assert Assert.IsInstanceOf>(row); Assert.AreEqual(result.SimpleAssessmentResult, row.SimpleAssessmentResult); + Assert.AreEqual(result.DetailedAssessmentResultForFactorizedSignalingNorm, row.DetailedAssessmentResultForFactorizedSignalingNorm); + Assert.AreEqual(result.DetailedAssessmentResultForSignalingNorm, row.DetailedAssessmentResultForSignalingNorm); + Assert.AreEqual(result.DetailedAssessmentResultForMechanismSpecificLowerLimitNorm, row.DetailedAssessmentResultForSignalingNorm); + Assert.AreEqual(result.DetailedAssessmentResultForLowerLimitNorm, row.DetailedAssessmentResultForLowerLimitNorm); + Assert.AreEqual(result.DetailedAssessmentResultForFactorizedLowerLimitNorm, row.DetailedAssessmentResultForFactorizedLowerLimitNorm); + Assert.AreEqual(SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertTo(result.TailorMadeAssessmentResult), + row.TailorMadeAssessmentResult); + Assert.AreEqual(result.AssessmentLayerTwoA, row.AssessmentLayerTwoA); Assert.AreEqual(row.AssessmentLayerThree, result.AssessmentLayerThree); @@ -59,6 +70,42 @@ } [Test] + public void AssessmentLayerTwoA_AlwaysOnChange_ResultPropertyChanged() + { + // Setup + const AssessmentLayerTwoAResult newValue = AssessmentLayerTwoAResult.Successful; + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.AssessmentLayerTwoA = newValue; + + // Assert + Assert.AreEqual(newValue, result.AssessmentLayerTwoA); + } + + [Test] + public void AssessmentLayerThree_ValueSet_ReturnExpectedValue() + { + // Setup + var random = new Random(21); + RoundedDouble assessmentLayerThree = random.NextRoundedDouble(); + + var sectionResult = new GrassCoverErosionOutwardsFailureMechanismSectionResult( + FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(sectionResult); + + // Call + row.AssessmentLayerThree = assessmentLayerThree; + + // Assert + Assert.AreEqual(assessmentLayerThree, sectionResult.AssessmentLayerThree); + } + + #region Registration + + [Test] public void SimpleAssessmentResult_SetNewValue_NotifyObserversAndPropertyChanged() { // Setup @@ -74,48 +121,194 @@ var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); result.Attach(observer); - var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); - // Call - row.SimpleAssessmentResult = newValue; + // Call + row.SimpleAssessmentResult = newValue; - // Assert - Assert.AreEqual(newValue, result.SimpleAssessmentResult); - mocks.VerifyAll(); + // Assert + Assert.AreEqual(newValue, result.SimpleAssessmentResult); + mocks.VerifyAll(); + } } [Test] - public void AssessmentLayerTwoA_AlwaysOnChange_ResultPropertyChanged() + public void DetailedAssessmentResultForFactorizedSignalingNorm_SetNewvalue_NotifyObserversAndPropertyChanged() { // Setup - const AssessmentLayerTwoAResult newValue = AssessmentLayerTwoAResult.Successful; + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var random = new Random(39); + var newValue = random.NextEnumValue(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); - var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + result.Attach(observer); - // Call - row.AssessmentLayerTwoA = newValue; + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); - // Assert - Assert.AreEqual(newValue, result.AssessmentLayerTwoA); + // Call + row.DetailedAssessmentResultForFactorizedSignalingNorm = newValue; + + // Assert + Assert.AreEqual(newValue, result.DetailedAssessmentResultForFactorizedSignalingNorm); + mocks.VerifyAll(); + } } [Test] - public void AssessmentLayerThree_ValueSet_ReturnExpectedValue() + public void DetailedAssessmentResultForSignalingNorm_SetNewvalue_NotifyObserversAndPropertyChanged() { // Setup - var random = new Random(21); - RoundedDouble assessmentLayerThree = random.NextRoundedDouble(); + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); - var sectionResult = new GrassCoverErosionOutwardsFailureMechanismSectionResult( - FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(sectionResult); + var random = new Random(39); + var newValue = random.NextEnumValue(); - // Call - row.AssessmentLayerThree = assessmentLayerThree; + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + result.Attach(observer); - // Assert - Assert.AreEqual(assessmentLayerThree, sectionResult.AssessmentLayerThree); + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.DetailedAssessmentResultForSignalingNorm = newValue; + + // Assert + Assert.AreEqual(newValue, result.DetailedAssessmentResultForSignalingNorm); + mocks.VerifyAll(); + } } + + [Test] + public void DetailedAssessmentResultForMechanismSpecificLowerLimitNorm_SetNewvalue_NotifyObserversAndPropertyChanged() + { + // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var random = new Random(39); + var newValue = random.NextEnumValue(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + result.Attach(observer); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.DetailedAssessmentResultForMechanismSpecificLowerLimitNorm = newValue; + + // Assert + Assert.AreEqual(newValue, result.DetailedAssessmentResultForMechanismSpecificLowerLimitNorm); + mocks.VerifyAll(); + } + } + + [Test] + public void DetailedAssessmentResultForLowerLimitNorm_SetNewvalue_NotifyObserversAndPropertyChanged() + { + // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var random = new Random(39); + var newValue = random.NextEnumValue(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + result.Attach(observer); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.DetailedAssessmentResultForLowerLimitNorm = newValue; + + // Assert + Assert.AreEqual(newValue, result.DetailedAssessmentResultForLowerLimitNorm); + mocks.VerifyAll(); + } + } + + [Test] + public void DetailedAssessmentResultForFactorizedLowerLimitNorm_SetNewvalue_NotifyObserversAndPropertyChanged() + { + // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var random = new Random(39); + var newValue = random.NextEnumValue(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + result.Attach(observer); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.DetailedAssessmentResultForFactorizedLowerLimitNorm = newValue; + + // Assert + Assert.AreEqual(newValue, result.DetailedAssessmentResultForFactorizedLowerLimitNorm); + mocks.VerifyAll(); + } + } + + [Test] + public void TailorMadeAssessmentResult_SetNewValue_NotifyObserversAndPropertyChanged() + { + // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var random = new Random(39); + var newValue = random.NextEnumValue(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new GrassCoverErosionOutwardsFailureMechanismSectionResult(section); + result.Attach(observer); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new GrassCoverErosionOutwardsFailureMechanismSectionResultRow(result); + + // Call + row.TailorMadeAssessmentResult = newValue; + + // Assert + FailureMechanismSectionAssemblyCategoryGroup expectedCategoryGroup = SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.ConvertFrom(newValue); + Assert.AreEqual(expectedCategoryGroup, result.TailorMadeAssessmentResult); + mocks.VerifyAll(); + } + } + + #endregion } } \ No newline at end of file