Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs =================================================================== diff -u -r8554c8723c3d665efd0a9d5e0ea48e7494ee680d -r63e0ee80a5f8d6352ff172c693df3dc749b2828d --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs (.../DuneErosionFailureMechanismAssemblyFactory.cs) (revision 8554c8723c3d665efd0a9d5e0ea48e7494ee680d) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs (.../DuneErosionFailureMechanismAssemblyFactory.cs) (revision 63e0ee80a5f8d6352ff172c693df3dc749b2828d) @@ -183,19 +183,21 @@ /// Gets the assembly category group of the given . /// /// The failure mechanism section result to get the assembly category group for. + /// Indicator that determines whether the manual assembly should be considered when assembling the result. /// A . /// Thrown when is null. /// Thrown when the /// could not be created. public static FailureMechanismSectionAssemblyCategoryGroup GetSectionAssemblyCategoryGroup( - DuneErosionFailureMechanismSectionResult failureMechanismSectionResult) + DuneErosionFailureMechanismSectionResult failureMechanismSectionResult, + bool useManual) { if (failureMechanismSectionResult == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResult)); } - return failureMechanismSectionResult.UseManualAssemblyCategoryGroup + return failureMechanismSectionResult.UseManualAssemblyCategoryGroup && useManual ? failureMechanismSectionResult.ManualAssemblyCategoryGroup : AssembleCombinedAssessment(failureMechanismSectionResult); } @@ -204,12 +206,14 @@ /// Assembles the failure mechanism assembly. /// /// The failure mechanism to assemble for. + /// Indicator that determines whether the manual assembly should be considered when assembling the result. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. - public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism(DuneErosionFailureMechanism failureMechanism) + public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism(DuneErosionFailureMechanism failureMechanism, + bool useManual) { if (failureMechanism == null) { @@ -224,7 +228,7 @@ try { IEnumerable sectionAssemblies = - failureMechanism.SectionResults.Select(GetSectionAssemblyCategoryGroup).ToArray(); + failureMechanism.SectionResults.Select(result => GetSectionAssemblyCategoryGroup(result, useManual)).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneErosionFailureMechanismResultView.cs =================================================================== diff -u -r7adc47fc72205078d054034bb9d1028c32434e28 -r63e0ee80a5f8d6352ff172c693df3dc749b2828d --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneErosionFailureMechanismResultView.cs (.../DuneErosionFailureMechanismResultView.cs) (revision 7adc47fc72205078d054034bb9d1028c32434e28) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneErosionFailureMechanismResultView.cs (.../DuneErosionFailureMechanismResultView.cs) (revision 63e0ee80a5f8d6352ff172c693df3dc749b2828d) @@ -140,7 +140,7 @@ protected override void UpdateAssemblyResultControl() { - FailureMechanismAssemblyResultControl.SetAssemblyResult(DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism)); + FailureMechanismAssemblyResultControl.SetAssemblyResult(DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); } protected override bool HasManualAssemblyResults() Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rc1ad8e8431d65da2f22adeb93f9deddd9fae77e3 -r63e0ee80a5f8d6352ff172c693df3dc749b2828d --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs (.../DuneErosionFailureMechanismAssemblyFactoryTest.cs) (revision c1ad8e8431d65da2f22adeb93f9deddd9fae77e3) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs (.../DuneErosionFailureMechanismAssemblyFactoryTest.cs) (revision 63e0ee80a5f8d6352ff172c693df3dc749b2828d) @@ -65,8 +65,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call DuneErosionFailureMechanismAssemblyFactory.AssembleSimpleAssessment(sectionResult); @@ -85,8 +85,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssemblyCategoryGroup actualOutput = @@ -106,8 +106,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -153,8 +153,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call DuneErosionFailureMechanismAssemblyFactory.AssembleDetailedAssessment(sectionResult); @@ -177,8 +177,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssemblyCategoryGroup actualOutput = @@ -198,8 +198,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -241,8 +241,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call DuneErosionFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(sectionResult); @@ -261,8 +261,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssemblyCategoryGroup actualOutput = @@ -282,8 +282,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -404,8 +404,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculateCombinedAssembly = true; // Call @@ -429,7 +429,8 @@ { // Call TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - null); + null, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -449,7 +450,8 @@ // Call DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - sectionResult); + sectionResult, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssemblyCategoryGroup expectedSimpleAssembly = DuneErosionFailureMechanismAssemblyFactory.AssembleSimpleAssessment( @@ -475,7 +477,8 @@ { // Call FailureMechanismSectionAssemblyCategoryGroup categoryGroup = DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - sectionResult); + sectionResult, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssemblyCategoryGroup expectedAssembly = DuneErosionFailureMechanismAssemblyFactory.AssembleCombinedAssessment( @@ -485,7 +488,7 @@ } [Test] - public void GetSectionAssemblyCategoryGroup_WithManualInput_ReturnsOutput() + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualTrue_ReturnsOutput() { // Setup var sectionResult = new DuneErosionFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) @@ -496,27 +499,52 @@ // Call FailureMechanismSectionAssemblyCategoryGroup categoryGroup = DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - sectionResult); + sectionResult, + true); // Assert Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, categoryGroup); } [Test] + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualFalse_ReturnsOutput() + { + // Setup + var random = new Random(39); + var sectionResult = new DuneErosionFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + UseManualAssemblyCategoryGroup = true, + ManualAssemblyCategoryGroup = random.NextEnumValue(), + TailorMadeAssessmentResult = random.NextEnumValue() + }; + + // Call + FailureMechanismSectionAssemblyCategoryGroup categoryGroup = DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, + false); + + // Assert + FailureMechanismSectionAssemblyCategoryGroup expectedAssembly = DuneErosionFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult); + Assert.AreEqual(expectedAssembly, categoryGroup); + } + + [Test] public void GetSectionAssemblyCategoryGroup_WithoutManualInputAndCalculatorThrowsException_ThrowsAssemblyException() { // Setup var sectionResult = new DuneErosionFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculateCombinedAssembly = true; // Call TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - sectionResult); + sectionResult, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -534,7 +562,7 @@ public void AssembleFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(null); + TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(null, new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -557,7 +585,7 @@ FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call - DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism); + DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = @@ -576,14 +604,14 @@ }; // Call - FailureMechanismAssemblyCategoryGroup category = DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism); + FailureMechanismAssemblyCategoryGroup category = DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, new Random(39).NextBoolean()); // Assert Assert.AreEqual(FailureMechanismAssemblyResultFactory.CreateNotApplicableCategory(), category); } [Test] - public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInputAndUseManualTrue_SetsInputOnCalculator() { // Setup var failureMechanism = new DuneErosionFailureMechanism(); @@ -601,14 +629,42 @@ FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call - DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism); + DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, true); // Assert Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); } } [Test] + public void AssembleFailureMechanism_WithManualInputAndUseManualFalse_SetsNoInputOnCalculator() + { + // Setup + var failureMechanism = new DuneErosionFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + FailureMechanismSectionTestFactory.CreateFailureMechanismSection() + }); + DuneErosionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.IIv; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // Call + DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, false); + + // Assert + FailureMechanismSectionAssemblyCategoryGroup expectedAssembly = DuneErosionFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + failureMechanism.SectionResults.Single()); + Assert.AreEqual(expectedAssembly, calculator.FailureMechanismSectionCategories.Single()); + } + } + + [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup @@ -619,7 +675,8 @@ // Call FailureMechanismAssemblyCategoryGroup actualOutput = - DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(new DuneErosionFailureMechanism()); + DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(new DuneErosionFailureMechanism(), + new Random(39).NextBoolean()); // Assert Assert.AreEqual(calculator.FailureMechanismAssemblyCategoryGroupOutput, actualOutput); @@ -632,12 +689,14 @@ // Setup using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call - TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(new DuneErosionFailureMechanism()); + TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism( + new DuneErosionFailureMechanism(), + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -659,12 +718,13 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call - TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism); + TestDelegate call = () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call);