Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/GrassCoverErosionInwardsHelperTest.cs =================================================================== diff -u -r5d503cf8885ced4799e5ad44242038d99e04b162 -r1b1417a8dc33bc6b1e0b33c71d9318544c3daa73 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/GrassCoverErosionInwardsHelperTest.cs (.../GrassCoverErosionInwardsHelperTest.cs) (revision 5d503cf8885ced4799e5ad44242038d99e04b162) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/GrassCoverErosionInwardsHelperTest.cs (.../GrassCoverErosionInwardsHelperTest.cs) (revision 1b1417a8dc33bc6b1e0b33c71d9318544c3daa73) @@ -37,54 +37,6 @@ private const string firstSectionName = "firstSection"; private const string secondSectionName = "secondSection"; - #region Prepared data - - private static readonly FailureMechanismSection failureMechanismSectionA = new FailureMechanismSection(firstSectionName, new List - { - new Point2D(0.0, 0.0), - new Point2D(10.0, 10.0), - }); - - private static readonly FailureMechanismSection failureMechanismSectionB = new FailureMechanismSection(secondSectionName, new List - { - new Point2D(11.0, 11.0), - new Point2D(100.0, 100.0), - }); - - private static readonly GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult( - failureMechanismSectionA); - - private readonly FailureMechanismSection[] oneSection = - { - failureMechanismSectionA - }; - - private readonly FailureMechanismSection[] twoSections = - { - failureMechanismSectionA, - failureMechanismSectionB - }; - - private readonly GrassCoverErosionInwardsCalculation calculationInSectionA = new GrassCoverErosionInwardsCalculation - { - InputParameters = - { - DikeProfile = new DikeProfile(new Point2D(1.1, 2.2), new RoughnessPoint[0], new Point2D[0], null, - new DikeProfile.ConstructionProperties()) - } - }; - - private readonly GrassCoverErosionInwardsCalculation calculationInSectionB = new GrassCoverErosionInwardsCalculation - { - InputParameters = - { - DikeProfile = new DikeProfile(new Point2D(50.0, 66.0), new RoughnessPoint[0], new Point2D[0], - null, new DikeProfile.ConstructionProperties()) - } - }; - - #endregion - [Test] public void CollectCalculationsPerSection_SectionsAreNull_ThrowsArgumentNullException() { @@ -128,7 +80,7 @@ TestDelegate test = () => GrassCoverErosionInwardsHelper.CollectCalculationsPerSection( twoSections, null); - + // Assert var exception = Assert.Throws(test); Assert.AreEqual("calculations", exception.ParamName); @@ -144,7 +96,7 @@ { null }); - + // Assert var exception = Assert.Throws(test); Assert.AreEqual("calculation", exception.ParamName); @@ -254,7 +206,6 @@ Assert.AreSame(twoSections[1], failureMechanismSection); } - [Test] public void Update_SectionResultsNull_ThrowsArgumentNullException() { @@ -287,13 +238,33 @@ } [Test] + public void Update_SectionResultWithoutCalculationAndValidCalculation_UpdatesSectionResult() + { + // Setup + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult( + failureMechanismSectionA); + + // Call + GrassCoverErosionInwardsHelper.Update(new[] + { + failureMechanismSectionResult + }, calculationInSectionA); + + // Assert + Assert.AreSame(calculationInSectionA, failureMechanismSectionResult.Calculation); + } + + [Test] public void Delete_SectionResultsNull_ThrowsArgumentNullException() { // Call TestDelegate test = () => GrassCoverErosionInwardsHelper.Delete( null, calculationInSectionA, - new [] { calculationInSectionB }); + new[] + { + calculationInSectionB + }); // Assert var exception = Assert.Throws(test); @@ -311,7 +282,10 @@ null }, calculationInSectionA, - new [] { calculationInSectionB }); + new[] + { + calculationInSectionB + }); // Assert ArgumentException exception = TestHelper.AssertThrowsArgumentExceptionAndTestMessage( @@ -329,7 +303,10 @@ sectionResult }, null, - new[] { calculationInSectionA }); + new[] + { + calculationInSectionA + }); // Assert var exception = Assert.Throws(test); @@ -363,10 +340,111 @@ sectionResult }, calculationInSectionA, - new GrassCoverErosionInwardsCalculation[] { null }); + new GrassCoverErosionInwardsCalculation[] + { + null + }); // Assert var exception = Assert.Throws(test); Assert.AreEqual("calculation", exception.ParamName); - } } + } + + [Test] + public void Delete_SectionResultWithCalculationNoRemainingCalculations_SectionResultCalculationIsNull() + { + // Setup + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult( + failureMechanismSectionA) + { + Calculation = calculationInSectionA + }; + + // Call + GrassCoverErosionInwardsHelper.Delete( + new[] + { + failureMechanismSectionResult + }, + calculationInSectionA, + Enumerable.Empty()); + + // Assert + Assert.IsNull(failureMechanismSectionResult.Calculation); + } + + [Test] + public void Delete_SectionResultWithCalculationWithRemainingCalculations_SectionResultCalculationSetToRemainingCalculation() + { + // Setup + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult( + failureMechanismSectionA) + { + Calculation = calculationInSectionA + }; + + // Call + GrassCoverErosionInwardsHelper.Delete( + new[] + { + failureMechanismSectionResult + }, + calculationInSectionA, + new[] + { + calculationInSectionB + }); + + // Assert + Assert.AreSame(calculationInSectionB, failureMechanismSectionResult.Calculation); + } + + #region Prepared data + + private static readonly FailureMechanismSection failureMechanismSectionA = new FailureMechanismSection(firstSectionName, new List + { + new Point2D(0.0, 0.0), + new Point2D(10.0, 10.0), + }); + + private static readonly FailureMechanismSection failureMechanismSectionB = new FailureMechanismSection(secondSectionName, new List + { + new Point2D(11.0, 11.0), + new Point2D(100.0, 100.0), + }); + + private static readonly GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult( + failureMechanismSectionA); + + private readonly FailureMechanismSection[] oneSection = + { + failureMechanismSectionA + }; + + private readonly FailureMechanismSection[] twoSections = + { + failureMechanismSectionA, + failureMechanismSectionB + }; + + private readonly GrassCoverErosionInwardsCalculation calculationInSectionA = new GrassCoverErosionInwardsCalculation + { + InputParameters = + { + DikeProfile = new DikeProfile(new Point2D(1.1, 2.2), new RoughnessPoint[0], new Point2D[0], null, + new DikeProfile.ConstructionProperties()) + } + }; + + private readonly GrassCoverErosionInwardsCalculation calculationInSectionB = new GrassCoverErosionInwardsCalculation + { + InputParameters = + { + DikeProfile = new DikeProfile(new Point2D(50.0, 66.0), new RoughnessPoint[0], new Point2D[0], + null, new DikeProfile.ConstructionProperties()) + } + }; + + #endregion + } } \ No newline at end of file