Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -rf4049b9b0967513aeadfddb1fe58efa3b3aa1677 -rb2c2de54d01023376a23ccaf60284acff15367bc --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision f4049b9b0967513aeadfddb1fe58efa3b3aa1677) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision b2c2de54d01023376a23ccaf60284acff15367bc) @@ -24,7 +24,8 @@ using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; -using Ringtoets.Common.Data.Calculation; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.TypeConverters; @@ -42,50 +43,112 @@ public void Constructor_WithParameters_ExpectedValues() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + failureMechanism, assessmentSection); // Assert Assert.IsInstanceOf>(row); - Assert.AreEqual(result.GetAssessmentLayerTwoA(Enumerable.Empty()), row.AssessmentLayerTwoA); + Assert.AreEqual(result.GetAssessmentLayerTwoA(Enumerable.Empty(), + failureMechanism, assessmentSection), + row.AssessmentLayerTwoA); Assert.AreEqual(row.AssessmentLayerThree, result.AssessmentLayerThree); TestHelper.AssertTypeConverter( nameof(PipingFailureMechanismSectionResultRow.AssessmentLayerTwoA)); TestHelper.AssertTypeConverter( nameof(PipingFailureMechanismSectionResultRow.AssessmentLayerThree)); + mocks.VerifyAll(); } [Test] public void Constructor_CalculationsNull_ThrowsArgumentNullException() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - TestDelegate test = () => new PipingFailureMechanismSectionResultRow(result, null); + TestDelegate test = () => new PipingFailureMechanismSectionResultRow(result, null, failureMechanism, assessmentSection); // Assert string paramName = Assert.Throws(test).ParamName; Assert.AreEqual("calculations", paramName); + mocks.VerifyAll(); } [Test] + public void Constructor_FailureMechanismNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + null, assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + new PipingFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void AssessmentLayerTwoA_NoScenarios_ReturnNaN() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + failureMechanism, assessmentSection); // Assert Assert.IsNaN(row.AssessmentLayerTwoA); + mocks.VerifyAll(); } [Test] @@ -97,6 +160,12 @@ public void AssessmentLayerTwoA_RelevantScenarioContributionDontAddUpTo1_ReturnNaN(double contributionA, double contributionB) { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); PipingCalculationScenario scenarioA = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); @@ -109,53 +178,63 @@ { scenarioA, scenarioB - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] - [TestCase(CalculationScenarioStatus.NotCalculated)] - [TestCase(CalculationScenarioStatus.Failed)] - public void AssessmentLayerTwoA_NoRelevantScenariosDone_ReturnNaN(CalculationScenarioStatus status) + public void AssessmentLayerTwoA_NoRelevantScenariosDone_ReturnNaN() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - PipingCalculationScenario scenario = status.Equals(CalculationScenarioStatus.NotCalculated) - ? PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section) - : PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); var result = new PipingFailureMechanismSectionResult(section); var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenario - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] public void AssessmentLayerTwoA_RelevantScenariosDone_ResultOfSection() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.2, section); + PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); scenario.Contribution = (RoundedDouble) 1.0; var result = new PipingFailureMechanismSectionResult(section); var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenario - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; @@ -164,27 +243,35 @@ double expected = result.GetAssessmentLayerTwoA(new[] { scenario - }); + }, failureMechanism, assessmentSection); Assert.AreEqual(expected, assessmentLayerTwoA, 1e-6); + mocks.VerifyAll(); } [Test] public void AssessmentLayerThree_ValueSet_ReturnExpectedValue() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + var random = new Random(21); double assessmentLayerThree = random.NextDouble(); var sectionResult = new PipingFailureMechanismSectionResult( FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - var row = new PipingFailureMechanismSectionResultRow(sectionResult, - Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(sectionResult, Enumerable.Empty(), + failureMechanism, assessmentSection); // Call row.AssessmentLayerThree = assessmentLayerThree; // Assert Assert.AreEqual(assessmentLayerThree, sectionResult.AssessmentLayerThree); + mocks.VerifyAll(); } } } \ No newline at end of file