Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rc1ad8e8431d65da2f22adeb93f9deddd9fae77e3 -r68c113b9959a66e1c98da2f210283cece12459b0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision c1ad8e8431d65da2f22adeb93f9deddd9fae77e3) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 68c113b9959a66e1c98da2f210283cece12459b0) @@ -81,8 +81,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call PipingFailureMechanismAssemblyFactory.AssembleSimpleAssessment(sectionResult); @@ -101,8 +101,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssembly actualOutput = @@ -123,8 +123,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 @@ -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; // Call FailureMechanismSectionAssembly actualOutput = @@ -320,8 +320,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 @@ -478,8 +478,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 @@ -715,8 +715,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 @@ -751,7 +751,8 @@ TestDelegate call = () => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( null, new PipingFailureMechanism(), - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -771,7 +772,8 @@ TestDelegate call = () => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), null, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -786,7 +788,8 @@ TestDelegate call = () => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), new PipingFailureMechanism(), - null); + null, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -813,7 +816,8 @@ PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedSimpleAssembly = PipingFailureMechanismAssemblyFactory.AssembleSimpleAssessment( @@ -836,7 +840,7 @@ } [Test] - public void GetSectionAssemblyCategoryGroup_WithManualInput_SetsInputOnCalculator() + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualTrue_SetsInputOnCalculator() { // Setup var sectionResult = new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) @@ -860,15 +864,57 @@ PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + Assert.AreEqual(0.0, calculator.TailorMadeAssessmentProbabilityInput); + Assert.AreEqual((TailorMadeAssessmentProbabilityCalculationResultType) 0, calculator.TailorMadeAssessmentProbabilityCalculationResultInput); mocks.VerifyAll(); } } [Test] + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualFalse_SetsInputOnCalculator() + { + // Setup + var random = new Random(39); + var sectionResult = new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + UseManualAssemblyProbability = true, + ManualAssemblyProbability = random.NextDouble(), + TailorMadeAssessmentResult = random.NextEnumValue(), + TailorMadeAssessmentProbability = random.NextDouble() + }; + + var failureMechanism = new PipingFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, + failureMechanism, + assessmentSection, + false); + + // Assert + Assert.AreEqual(0.0, calculator.ManualAssemblyProbabilityInput); + Assert.AreEqual(sectionResult.TailorMadeAssessmentProbability, calculator.TailorMadeAssessmentProbabilityInput); + Assert.AreEqual(sectionResult.TailorMadeAssessmentResult, calculator.TailorMadeAssessmentProbabilityCalculationResultInput); + mocks.VerifyAll(); + } + } + + [Test] public void GetSectionAssemblyCategoryGroup_WithoutManualInput_ReturnsOutput() { // Setup @@ -885,7 +931,8 @@ FailureMechanismSectionAssemblyCategoryGroup categoryGroup = PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment( @@ -899,7 +946,7 @@ } [Test] - public void GetSectionAssemblyCategoryGroup_WithManualInput_ReturnsOutput() + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualTrue_ReturnsOutput() { // Setup var sectionResult = new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) @@ -923,7 +970,8 @@ FailureMechanismSectionAssemblyCategoryGroup categoryGroup = PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert FailureMechanismSectionAssembly expectedAssembly = calculator.AssembleManual( @@ -935,6 +983,42 @@ } [Test] + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualFalse_ReturnsOutput() + { + // Setup + var sectionResult = new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + UseManualAssemblyProbability = true, + ManualAssemblyProbability = new Random(39).NextDouble() + }; + + var failureMechanism = new PipingFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // Call + FailureMechanismSectionAssemblyCategoryGroup categoryGroup = PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, + failureMechanism, + assessmentSection, + false); + + // Assert + FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, + Enumerable.Empty(), + failureMechanism, + assessmentSection); + Assert.AreEqual(expectedAssembly.Group, categoryGroup); + mocks.VerifyAll(); + } + } + + [Test] [TestCase(true)] [TestCase(false)] public void GetSectionAssemblyCategoryGroup_CalculatorThrowsException_ThrowsAssemblyException(bool useManualAssembly) @@ -952,8 +1036,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; if (useManualAssembly) { calculator.ThrowExceptionOnCalculate = true; @@ -967,7 +1051,8 @@ TestDelegate call = () => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -993,7 +1078,8 @@ // Call TestDelegate call = () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( null, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -1007,7 +1093,8 @@ // Call TestDelegate call = () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( new PipingFailureMechanism(), - null); + null, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -1030,7 +1117,8 @@ // Call FailureMechanismAssembly assembly = PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert AssemblyToolTestHelper.AssertAreEqual(FailureMechanismAssemblyResultFactory.CreateNotApplicableAssembly(), assembly); @@ -1059,7 +1147,8 @@ // Call PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment( @@ -1073,7 +1162,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInputAndUseManualTrue_SetsInputOnCalculator() { // Setup var failureMechanism = new PipingFailureMechanism(); @@ -1097,7 +1186,8 @@ // Call PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; @@ -1110,6 +1200,45 @@ } [Test] + public void AssembleFailureMechanism_WithManualInputAndUseManualFalse_SetsInputOnCalculator() + { + // Setup + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + FailureMechanismSectionTestFactory.CreateFailureMechanismSection() + }); + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // Call + PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( + failureMechanism, + assessmentSection, + false); + + // Assert + FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + failureMechanism.SectionResults.Single(), + Enumerable.Empty(), + failureMechanism, + assessmentSection); + AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); + mocks.VerifyAll(); + } + } + + [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup @@ -1128,7 +1257,8 @@ FailureMechanismAssembly actualOutput = PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert Assert.AreSame(calculator.FailureMechanismAssemblyOutput, actualOutput); @@ -1148,14 +1278,15 @@ 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 = () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -1182,14 +1313,15 @@ 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 = () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call);