Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableDuneErosionFailureMechanismFactory.cs =================================================================== diff -u -rf64eced75276485428862c10ba94360e9b671890 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableDuneErosionFailureMechanismFactory.cs (.../ExportableDuneErosionFailureMechanismFactory.cs) (revision f64eced75276485428862c10ba94360e9b671890) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableDuneErosionFailureMechanismFactory.cs (.../ExportableDuneErosionFailureMechanismFactory.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using Ringtoets.AssemblyTool.Data; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.DuneErosion.Data; using Ringtoets.Integration.IO.Assembly; @@ -45,21 +46,30 @@ /// /// The to create an /// for. + /// The assessment section this failure mechanism belongs to. /// An with assembly results. - /// Thrown when is null. + /// Thrown when any parameter is null. /// Thrown when assembly results cannot be created. public static ExportableFailureMechanism CreateExportableFailureMechanism( - DuneErosionFailureMechanism failureMechanism) + DuneErosionFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + if (!failureMechanism.IsRelevant) { - return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability( - failureMechanismCode, failureMechanismGroup, failureMechanismAssemblyMethod); + return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(assessmentSection, + failureMechanismCode, + failureMechanismGroup, + failureMechanismAssemblyMethod); } FailureMechanismAssemblyCategoryGroup failureMechanismAssembly = DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, false); Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactory.cs =================================================================== diff -u -r23a944dbdd57753d15e0e0369a1a851bb83f60c8 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactory.cs (.../ExportableGrassCoverErosionOutwardsFailureMechanismFactory.cs) (revision 23a944dbdd57753d15e0e0369a1a851bb83f60c8) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactory.cs (.../ExportableGrassCoverErosionOutwardsFailureMechanismFactory.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using Ringtoets.AssemblyTool.Data; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Integration.IO.Assembly; @@ -45,21 +46,30 @@ /// /// The to create an /// for. + /// The assessment section this failure mechanism belongs to. /// An with assembly results. - /// Thrown when is null. + /// Thrown when any parameter is null. /// Thrown when assembly results cannot be created. public static ExportableFailureMechanism CreateExportableFailureMechanism( - GrassCoverErosionOutwardsFailureMechanism failureMechanism) + GrassCoverErosionOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + if (!failureMechanism.IsRelevant) { - return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability( - failureMechanismCode, failureMechanismGroup, failureMechanismAssemblyMethod); + return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(assessmentSection, + failureMechanismCode, + failureMechanismGroup, + failureMechanismAssemblyMethod); } FailureMechanismAssemblyCategoryGroup failureMechanismAssembly = GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, false); Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableStabilityStoneCoverFailureMechanismFactory.cs =================================================================== diff -u -rf4f9469d89fb6c1d214d4478bcf39b70f88de3e0 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableStabilityStoneCoverFailureMechanismFactory.cs (.../ExportableStabilityStoneCoverFailureMechanismFactory.cs) (revision f4f9469d89fb6c1d214d4478bcf39b70f88de3e0) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableStabilityStoneCoverFailureMechanismFactory.cs (.../ExportableStabilityStoneCoverFailureMechanismFactory.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using Ringtoets.AssemblyTool.Data; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Integration.IO.Assembly; using Ringtoets.Integration.IO.Helpers; @@ -45,21 +46,30 @@ /// /// The to create an /// for. + /// The assessment section this failure mechanism belongs to. /// An with assembly results. - /// Thrown when is null. + /// Thrown when any parameter is null. /// Thrown when assembly results cannot be created. public static ExportableFailureMechanism CreateExportableFailureMechanism( - StabilityStoneCoverFailureMechanism failureMechanism) + StabilityStoneCoverFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + if (!failureMechanism.IsRelevant) { - return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability( - failureMechanismCode, failureMechanismGroup, failureMechanismAssemblyMethod); + return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(assessmentSection, + failureMechanismCode, + failureMechanismGroup, + failureMechanismAssemblyMethod); } FailureMechanismAssemblyCategoryGroup failureMechanismAssembly = StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, false); Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactory.cs =================================================================== diff -u -rf4f9469d89fb6c1d214d4478bcf39b70f88de3e0 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactory.cs (.../ExportableWaveImpactAsphaltCoverFailureMechanismFactory.cs) (revision f4f9469d89fb6c1d214d4478bcf39b70f88de3e0) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactory.cs (.../ExportableWaveImpactAsphaltCoverFailureMechanismFactory.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using Ringtoets.AssemblyTool.Data; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Integration.IO.Assembly; using Ringtoets.Integration.IO.Helpers; @@ -45,21 +46,30 @@ /// /// The to create an /// for. + /// The assessment section this failure mechanism belongs to. /// An with assembly results. - /// Thrown when is null. + /// Thrown when any parameter is null. /// Thrown when assembly results cannot be created. public static ExportableFailureMechanism CreateExportableFailureMechanism( - WaveImpactAsphaltCoverFailureMechanism failureMechanism) + WaveImpactAsphaltCoverFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + if (!failureMechanism.IsRelevant) { - return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability( - failureMechanismCode, failureMechanismGroup, failureMechanismAssemblyMethod); + return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(assessmentSection, + failureMechanismCode, + failureMechanismGroup, + failureMechanismAssemblyMethod); } FailureMechanismAssemblyCategoryGroup failureMechanismAssembly = WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, false); Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableDuneErosionFailureMechanismFactoryTest.cs =================================================================== diff -u -rf64eced75276485428862c10ba94360e9b671890 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableDuneErosionFailureMechanismFactoryTest.cs (.../ExportableDuneErosionFailureMechanismFactoryTest.cs) (revision f64eced75276485428862c10ba94360e9b671890) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableDuneErosionFailureMechanismFactoryTest.cs (.../ExportableDuneErosionFailureMechanismFactoryTest.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -23,10 +23,12 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; using Ringtoets.DuneErosion.Data; using Ringtoets.Integration.IO.Assembly; @@ -41,19 +43,44 @@ [Test] public void CreateExportableFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call TestDelegate call = () => - ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(null); + ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(null, assessmentSection); // Assert var exception = Assert.Throws(call); Assert.AreEqual("failureMechanism", exception.ParamName); + + mocks.VerifyAll(); } [Test] + public void CreateExportableFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => + ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(new DuneErosionFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void CreateExportableFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + assessmentSection.ReferenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry(); + var random = new Random(21); var failureMechanism = new DuneErosionFailureMechanism { @@ -63,23 +90,25 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert - Assert.AreEqual(ExportableFailureMechanismType.DA, exportableFailureMechanism.Code); - Assert.AreEqual(ExportableFailureMechanismGroup.Group3, exportableFailureMechanism.Group); - - ExportableFailureMechanismAssemblyResult failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI1A1, failureMechanismAssemblyResult.AssemblyMethod); - Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory); - - CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults); + ExportableFailureMechanismTestHelper.AssertDefaultFailureMechanismWithoutProbability(assessmentSection.ReferenceLine.Points, + ExportableFailureMechanismType.DA, + ExportableFailureMechanismGroup.Group3, + ExportableAssemblyMethod.WBI1A1, + exportableFailureMechanism); + mocks.VerifyAll(); } [Test] public void CreateExportableFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var random = new Random(21); var failureMechanism = new DuneErosionFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10)); @@ -92,7 +121,7 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert Assert.AreEqual(ExportableFailureMechanismType.DA, exportableFailureMechanism.Code); @@ -111,12 +140,18 @@ exportableFailureMechanismSections, exportableFailureMechanism.SectionAssemblyResults.Cast()); } + + mocks.VerifyAll(); } [Test] public void GivenFailureMechanismWithManualAssessment_WhenCreatingExportableFailureMechanism_ThenManualAssemblyIgnored() { // Given + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new DuneErosionFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, 1); DuneErosionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); @@ -129,11 +164,13 @@ FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // When - ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableDuneErosionFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Then Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.Iv, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); } + + mocks.VerifyAll(); } private static void AssertExportableFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryGroup expectedSimpleAssembly, Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactoryTest.cs =================================================================== diff -u -r23a944dbdd57753d15e0e0369a1a851bb83f60c8 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactoryTest.cs (.../ExportableGrassCoverErosionOutwardsFailureMechanismFactoryTest.cs) (revision 23a944dbdd57753d15e0e0369a1a851bb83f60c8) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableGrassCoverErosionOutwardsFailureMechanismFactoryTest.cs (.../ExportableGrassCoverErosionOutwardsFailureMechanismFactoryTest.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -23,10 +23,12 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Integration.IO.Assembly; @@ -41,19 +43,44 @@ [Test] public void CreateExportableFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call TestDelegate call = () => - ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(null); + ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(null, assessmentSection); // Assert var exception = Assert.Throws(call); Assert.AreEqual("failureMechanism", exception.ParamName); + + mocks.VerifyAll(); } [Test] + public void CreateExportableFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => + ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(new GrassCoverErosionOutwardsFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void CreateExportableFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + assessmentSection.ReferenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry(); + var random = new Random(21); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism { @@ -63,23 +90,25 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert - Assert.AreEqual(ExportableFailureMechanismType.GEBU, exportableFailureMechanism.Code); - Assert.AreEqual(ExportableFailureMechanismGroup.Group3, exportableFailureMechanism.Group); - - ExportableFailureMechanismAssemblyResult failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI1A1, failureMechanismAssemblyResult.AssemblyMethod); - Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory); - - CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults); + ExportableFailureMechanismTestHelper.AssertDefaultFailureMechanismWithoutProbability(assessmentSection.ReferenceLine.Points, + ExportableFailureMechanismType.GEBU, + ExportableFailureMechanismGroup.Group3, + ExportableAssemblyMethod.WBI1A1, + exportableFailureMechanism); + mocks.VerifyAll(); } [Test] public void CreateExportableFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var random = new Random(21); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10)); @@ -92,7 +121,7 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert Assert.AreEqual(ExportableFailureMechanismType.GEBU, exportableFailureMechanism.Code); @@ -112,12 +141,18 @@ exportableFailureMechanismSections, exportableFailureMechanism.SectionAssemblyResults.Cast()); } + + mocks.VerifyAll(); } [Test] public void GivenFailureMechanismWithManualAssessment_WhenCreatingExportableFailureMechanism_ThenManualAssemblyIgnored() { // Given + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, 1); GrassCoverErosionOutwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); @@ -130,11 +165,13 @@ FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // When - ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableGrassCoverErosionOutwardsFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Then Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.Iv, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); } + + mocks.VerifyAll(); } private static void AssertExportableFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryGroup expectedSimpleAssembly, Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableStabilityStoneCoverFailureMechanismFactoryTest.cs =================================================================== diff -u -rf4f9469d89fb6c1d214d4478bcf39b70f88de3e0 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableStabilityStoneCoverFailureMechanismFactoryTest.cs (.../ExportableStabilityStoneCoverFailureMechanismFactoryTest.cs) (revision f4f9469d89fb6c1d214d4478bcf39b70f88de3e0) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableStabilityStoneCoverFailureMechanismFactoryTest.cs (.../ExportableStabilityStoneCoverFailureMechanismFactoryTest.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -23,10 +23,12 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Integration.IO.Assembly; using Ringtoets.Integration.IO.Factories; @@ -41,19 +43,44 @@ [Test] public void CreateExportableFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call TestDelegate call = () => - ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(null); + ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(null, assessmentSection); // Assert var exception = Assert.Throws(call); Assert.AreEqual("failureMechanism", exception.ParamName); + + mocks.VerifyAll(); } [Test] + public void CreateExportableFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => + ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(new StabilityStoneCoverFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void CreateExportableFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + assessmentSection.ReferenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry(); + var random = new Random(21); var failureMechanism = new StabilityStoneCoverFailureMechanism { @@ -63,23 +90,25 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert - Assert.AreEqual(ExportableFailureMechanismType.ZST, exportableFailureMechanism.Code); - Assert.AreEqual(ExportableFailureMechanismGroup.Group3, exportableFailureMechanism.Group); - - ExportableFailureMechanismAssemblyResult failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI1A1, failureMechanismAssemblyResult.AssemblyMethod); - Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory); - - CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults); + ExportableFailureMechanismTestHelper.AssertDefaultFailureMechanismWithoutProbability(assessmentSection.ReferenceLine.Points, + ExportableFailureMechanismType.ZST, + ExportableFailureMechanismGroup.Group3, + ExportableAssemblyMethod.WBI1A1, + exportableFailureMechanism); + mocks.VerifyAll(); } [Test] public void CreateExportableFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var random = new Random(21); var failureMechanism = new StabilityStoneCoverFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10)); @@ -92,7 +121,7 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert Assert.AreEqual(ExportableFailureMechanismType.ZST, exportableFailureMechanism.Code); @@ -112,12 +141,18 @@ exportableFailureMechanismSections, exportableFailureMechanism.SectionAssemblyResults.Cast()); } + + mocks.VerifyAll(); } [Test] public void GivenFailureMechanismWithManualAssessment_WhenCreatingExportableFailureMechanism_ThenManualAssemblyIgnored() { // Given + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new StabilityStoneCoverFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, 1); StabilityStoneCoverFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); @@ -130,11 +165,13 @@ FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // When - ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableStabilityStoneCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Then Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.Iv, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); } + + mocks.VerifyAll(); } private static void AssertExportableFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryGroup expectedSimpleAssembly, Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactoryTest.cs =================================================================== diff -u -rf4f9469d89fb6c1d214d4478bcf39b70f88de3e0 -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactoryTest.cs (.../ExportableWaveImpactAsphaltCoverFailureMechanismFactoryTest.cs) (revision f4f9469d89fb6c1d214d4478bcf39b70f88de3e0) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableWaveImpactAsphaltCoverFailureMechanismFactoryTest.cs (.../ExportableWaveImpactAsphaltCoverFailureMechanismFactoryTest.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -23,10 +23,12 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Integration.IO.Assembly; using Ringtoets.Integration.IO.Factories; @@ -41,19 +43,44 @@ [Test] public void CreateExportableFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call TestDelegate call = () => - ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(null); + ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(null, assessmentSection); // Assert var exception = Assert.Throws(call); Assert.AreEqual("failureMechanism", exception.ParamName); + + mocks.VerifyAll(); } [Test] + public void CreateExportableFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => + ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(new WaveImpactAsphaltCoverFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void CreateExportableFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + assessmentSection.ReferenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry(); + var random = new Random(21); var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism { @@ -63,23 +90,25 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert - Assert.AreEqual(ExportableFailureMechanismType.AGK, exportableFailureMechanism.Code); - Assert.AreEqual(ExportableFailureMechanismGroup.Group3, exportableFailureMechanism.Group); - - ExportableFailureMechanismAssemblyResult failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI1A1, failureMechanismAssemblyResult.AssemblyMethod); - Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory); - - CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults); + ExportableFailureMechanismTestHelper.AssertDefaultFailureMechanismWithoutProbability(assessmentSection.ReferenceLine.Points, + ExportableFailureMechanismType.AGK, + ExportableFailureMechanismGroup.Group3, + ExportableAssemblyMethod.WBI1A1, + exportableFailureMechanism); + mocks.VerifyAll(); } [Test] public void CreateExportableFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var random = new Random(21); var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10)); @@ -92,7 +121,7 @@ // Call ExportableFailureMechanism exportableFailureMechanism = - ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Assert Assert.AreEqual(ExportableFailureMechanismType.AGK, exportableFailureMechanism.Code); @@ -112,12 +141,18 @@ exportableFailureMechanismSections, exportableFailureMechanism.SectionAssemblyResults.Cast()); } + + mocks.VerifyAll(); } [Test] public void GivenFailureMechanismWithManualAssessment_WhenCreatingExportableFailureMechanism_ThenManualAssemblyIgnored() { // Given + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); FailureMechanismTestHelper.AddSections(failureMechanism, 1); WaveImpactAsphaltCoverFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); @@ -130,11 +165,13 @@ FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // When - ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism); + ExportableWaveImpactAsphaltCoverFailureMechanismFactory.CreateExportableFailureMechanism(failureMechanism, assessmentSection); // Then Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.Iv, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); } + + mocks.VerifyAll(); } private static void AssertExportableFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryGroup expectedSimpleAssembly, Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.TestUtil/ExportableFailureMechanismTestHelper.cs =================================================================== diff -u -r6016e12690fd7208602a3236b0b09550a57ceb8f -r167fd66fa9378da0a15ff7c6d2646fbe7ddabe06 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.TestUtil/ExportableFailureMechanismTestHelper.cs (.../ExportableFailureMechanismTestHelper.cs) (revision 6016e12690fd7208602a3236b0b09550a57ceb8f) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.TestUtil/ExportableFailureMechanismTestHelper.cs (.../ExportableFailureMechanismTestHelper.cs) (revision 167fd66fa9378da0a15ff7c6d2646fbe7ddabe06) @@ -34,7 +34,7 @@ public static class ExportableFailureMechanismTestHelper { /// - /// Asserts the default failure mechanism. + /// Asserts a default failure mechanism that contains assembly results with a probability. /// /// The expected geometry of the section it contains. /// The expected . @@ -74,5 +74,45 @@ Assert.AreEqual(0, failureMechanismSection.StartDistance); Assert.AreEqual(Math2D.Length(geometry), failureMechanismSection.EndDistance); } + + /// + /// Asserts a default failure mechanism that contains assembly results without a probability. + /// + /// The expected geometry of the section it contains. + /// The expected . + /// The expected . + /// The expected which is used + /// to generate a failure mechanism assembly result. + /// The to assert. + /// Thrown when: + /// + /// The geometry defined by does not match with the section contained in . + /// The values in do not match with + /// , or . + /// + public static void AssertDefaultFailureMechanismWithoutProbability(IEnumerable geometry, + ExportableFailureMechanismType failureMechanismCode, + ExportableFailureMechanismGroup group, + ExportableAssemblyMethod failureMechanismAssemblyMethod, + ExportableFailureMechanism exportableFailureMechanism) + { + Assert.AreEqual(group, exportableFailureMechanism.Group); + Assert.AreEqual(failureMechanismCode, exportableFailureMechanism.Code); + + ExportableFailureMechanismAssemblyResult failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly; + Assert.AreEqual(failureMechanismAssemblyMethod, failureMechanismAssemblyResult.AssemblyMethod); + Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory); + + var exportableFailureMechanismSectionAssembly = + (ExportableAggregatedFailureMechanismSectionAssemblyWithCombinedResult) exportableFailureMechanism.SectionAssemblyResults.Single(); + ExportableSectionAssemblyResult combinedAssembly = exportableFailureMechanismSectionAssembly.CombinedAssembly; + Assert.AreEqual(ExportableAssemblyMethod.WBI0A1, combinedAssembly.AssemblyMethod); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.NotApplicable, combinedAssembly.AssemblyCategory); + + ExportableFailureMechanismSection failureMechanismSection = exportableFailureMechanismSectionAssembly.FailureMechanismSection; + Assert.AreSame(geometry, failureMechanismSection.Geometry); + Assert.AreEqual(0, failureMechanismSection.StartDistance); + Assert.AreEqual(Math2D.Length(geometry), failureMechanismSection.EndDistance); + } } } \ No newline at end of file