Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -r739752c5cc7ed800dacf74e12221c227183ddc6f -rd8d1d5d4a3eabd84c2d6e07eedb75fa200c2d54e --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 739752c5cc7ed800dacf74e12221c227183ddc6f) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision d8d1d5d4a3eabd84c2d6e07eedb75fa200c2d54e) @@ -20,8 +20,10 @@ // All rights reserved. using System; +using System.Collections.Generic; using System.Linq; using Core.Common.Base.Data; +using Core.Common.Base.Geometry; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; @@ -309,10 +311,36 @@ } [Test] - public void GetTotalContribution_Always_ReturnsTotalRelevantScenarioContribution() + public void GetTotalContribution_SectionResultNull_ThrowsArgumentNullException() { + // Call + TestDelegate call = () => ((PipingFailureMechanismSectionResult) null).GetTotalContribution(Enumerable.Empty()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("sectionResult", exception.ParamName); + } + + [Test] + public void GetTotalContribution_CalculationScenariosNull_ThrowsArgumentNullException() + { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionResult = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => sectionResult.GetTotalContribution(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + } + + [Test] + public void GetTotalContribution_WithScenarios_ReturnsTotalRelevantScenarioContribution() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioTestFactory.CreateNotCalculatedPipingCalculationScenario(section); @@ -338,6 +366,32 @@ } [Test] + public void GetCalculationScenarioStatus_SectionResultNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ((PipingFailureMechanismSectionResult) null).GetCalculationScenarioStatus(Enumerable.Empty()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("sectionResult", exception.ParamName); + } + + [Test] + public void GetCalculationScenarioStatus_CalculationScenariosNull_ThrowsArgumentNullException() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionResult = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => sectionResult.GetCalculationScenarioStatus(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + } + + [Test] public void GetCalculationScenarioStatus_ScenarioNotCalculated_ReturnsStatusNotCalculated() { // Setup @@ -409,5 +463,74 @@ // Assert Assert.AreEqual(CalculationScenarioStatus.NotCalculated, status); } + + [Test] + public void GetCalculationScenarios_SectionResultNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ((PipingFailureMechanismSectionResult) null).GetCalculationScenarios(Enumerable.Empty()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("sectionResult", exception.ParamName); + } + + [Test] + public void GetCalculationScenarios_CalculationScenariosNull_ThrowsArgumentNullException() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionResult = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => sectionResult.GetCalculationScenarios(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + } + + [Test] + public void GetCalculationScenarios_WithRelevantAndIrrelevantScenarios_ReturnsRelevantCalculationScenarios() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionResult = new PipingFailureMechanismSectionResult(section); + PipingCalculationScenario calculationScenario = PipingCalculationScenarioTestFactory.CreateNotCalculatedPipingCalculationScenario(section); + PipingCalculationScenario calculationScenario2 = PipingCalculationScenarioTestFactory.CreateIrrelevantPipingCalculationScenario(section); + + // Call + IEnumerable relevantScenarios = sectionResult.GetCalculationScenarios(new[] + { + calculationScenario, + calculationScenario2 + }); + + // Assert + Assert.AreEqual(calculationScenario, relevantScenarios.Single()); + } + + [Test] + public void GetCalculationScenarios_WithNotIntersectingScenario_ReturnsNoCalculationScenarios() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] + { + new Point2D(999, 999), + new Point2D(998, 998) + }); + var sectionResult = new PipingFailureMechanismSectionResult(section); + PipingCalculationScenario calculationScenario = PipingCalculationScenarioTestFactory.CreateNotCalculatedPipingCalculationScenario( + FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); + + // Call + IEnumerable relevantScenarios = sectionResult.GetCalculationScenarios(new[] + { + calculationScenario + }); + + // Assert + CollectionAssert.IsEmpty(relevantScenarios); + } } } \ No newline at end of file