Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/MacroStabilityInwardsSurfaceLineTest.cs =================================================================== diff -u -rff0911662b90e32ee3f34444ae6b33b91f6cc85d -r9106b87e96572e45eed85f35478f7315cc4b855b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/MacroStabilityInwardsSurfaceLineTest.cs (.../MacroStabilityInwardsSurfaceLineTest.cs) (revision ff0911662b90e32ee3f34444ae6b33b91f6cc85d) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/MacroStabilityInwardsSurfaceLineTest.cs (.../MacroStabilityInwardsSurfaceLineTest.cs) (revision 9106b87e96572e45eed85f35478f7315cc4b855b) @@ -145,7 +145,7 @@ } [TestFixture] - private class MacroStabilityInwardsEqualGuideLines : EqualsGuidelinesTestFixture + private class MacroStabilityInwardsSurfaceLineEqualsGuideLines : EqualsGuidelinesTestFixture { protected override MacroStabilityInwardsSurfaceLine CreateObject() { Index: Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSurfaceLine.cs =================================================================== diff -u -r99f686f22091051a65ff1ee20abd68ffad713647 -r9106b87e96572e45eed85f35478f7315cc4b855b --- Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSurfaceLine.cs (.../PipingSurfaceLine.cs) (revision 99f686f22091051a65ff1ee20abd68ffad713647) +++ Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSurfaceLine.cs (.../PipingSurfaceLine.cs) (revision 9106b87e96572e45eed85f35478f7315cc4b855b) @@ -211,8 +211,11 @@ { return true; } - var other = obj as PipingSurfaceLine; - return other != null && Equals(other); + if (GetType() != obj.GetType()) + { + return false; + } + return Equals((PipingSurfaceLine) obj); } public override int GetHashCode() Index: Ringtoets/Piping/test/Ringtoets.Piping.Primitives.Test/PipingSurfaceLineTest.cs =================================================================== diff -u -r99f686f22091051a65ff1ee20abd68ffad713647 -r9106b87e96572e45eed85f35478f7315cc4b855b --- Ringtoets/Piping/test/Ringtoets.Piping.Primitives.Test/PipingSurfaceLineTest.cs (.../PipingSurfaceLineTest.cs) (revision 99f686f22091051a65ff1ee20abd68ffad713647) +++ Ringtoets/Piping/test/Ringtoets.Piping.Primitives.Test/PipingSurfaceLineTest.cs (.../PipingSurfaceLineTest.cs) (revision 9106b87e96572e45eed85f35478f7315cc4b855b) @@ -144,297 +144,76 @@ AssertPropertiesUpdated(surfaceLineToUpdateFrom, surfaceLine); } - [Test] - public void Equals_DerivedClassWithEqualProperties_ReturnsTrue() + [TestFixture] + private class PipingSurfaceLineEqualsGuideLines : EqualsGuidelinesTestFixture { - // Setup - PipingSurfaceLine profile = CreateSurfaceLineWithCharacteristicPoints(); - var derivedLayer = new TestSurfaceLine(profile); + protected override PipingSurfaceLine CreateObject() + { + return CreateSurfaceLineWithCharacteristicPoints(); + } - // Call - bool areEqual = profile.Equals(derivedLayer); - - // Assert - Assert.IsTrue(areEqual); - } - - [Test] - public void Equals_ToItself_ReturnsTrue() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine(string.Empty); - - // Call - bool isLineOneEqualToLineOne = surfaceLineOne.Equals(surfaceLineOne); - - // Assert - Assert.IsTrue(isLineOneEqualToLineOne); - } - - [Test] - public void Equals_SameReference_ReturnsTrue() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine(string.Empty); - PipingSurfaceLine surfaceLineTwo = surfaceLineOne; - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsTrue(isLineOneEqualToLineTwo); - Assert.IsTrue(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_ToNull_ReturnsFalse() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine("Name A"); - - // Call - bool isLineOneEqualToNull = surfaceLineOne.Equals(null); - - // Assert - Assert.IsFalse(isLineOneEqualToNull); - } - - [Test] - public void Equals_ToDifferentType_ReturnsFalse() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine("Name A"); - - var differentType = new object(); - - // Call - bool isSurfaceLineEqualToDifferentType = surfaceLineOne.Equals(differentType); - bool isDifferentTypeEqualToSurfaceLine = differentType.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isSurfaceLineEqualToDifferentType); - Assert.IsFalse(isDifferentTypeEqualToSurfaceLine); - } - - [Test] - public void Equals_DifferentNames_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints("Name one"); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints("Name two"); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_DifferentGeometries_ReturnsFalse() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine("Name A"); - surfaceLineOne.SetGeometry(new[] + protected override TestSurfaceLine CreateDerivedObject() { - new Point3D(1, 2, 3) - }); + PipingSurfaceLine baseLine = CreateSurfaceLineWithCharacteristicPoints(); + return new TestSurfaceLine(baseLine); + } - var surfaceLineTwo = new PipingSurfaceLine("Name A"); - surfaceLineTwo.SetGeometry(new[] + private static IEnumerable GetUnequalTestCases() { - new Point3D(3, 4, 5) - }); + PipingSurfaceLine differentName = CreateSurfaceLineWithCharacteristicPoints("Different Name"); + yield return new TestCaseData(differentName).SetName("Name"); - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); + PipingSurfaceLine differentGeometry = CreateSurfaceLineWithCharacteristicPoints(); + differentGeometry.SetGeometry(new[] + { + new Point3D(3, 4, 5) + }); + yield return new TestCaseData(differentGeometry) + .SetName("Geometry"); - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } + PipingSurfaceLine differentReferenceLineIntersectionWorldPoint = CreateSurfaceLineWithCharacteristicPoints(); + differentReferenceLineIntersectionWorldPoint.ReferenceLineIntersectionWorldPoint = new Point2D(1, 1); + yield return new TestCaseData(differentReferenceLineIntersectionWorldPoint) + .SetName("WorldIntersectionPoint"); - [Test] - public void Equals_DifferentReferenceLineIntersectionWorldPoint_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - surfaceLineOne.ReferenceLineIntersectionWorldPoint = new Point2D(0, 0); + PipingSurfaceLine differentBottomDitchDikeSide = CreateSurfaceLineWithCharacteristicPoints(); + Point3D[] points = differentBottomDitchDikeSide.Points.ToArray(); + differentBottomDitchDikeSide.SetBottomDitchDikeSideAt(points[4]); + yield return new TestCaseData(differentBottomDitchDikeSide) + .SetName("BottomDitchDikeSide"); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - surfaceLineTwo.ReferenceLineIntersectionWorldPoint = new Point2D(1, 1); + PipingSurfaceLine differentBottomDitchPolderSide = CreateSurfaceLineWithCharacteristicPoints(); + points = differentBottomDitchPolderSide.Points.ToArray(); + differentBottomDitchPolderSide.SetBottomDitchPolderSideAt(points[5]); + yield return new TestCaseData(differentBottomDitchPolderSide) + .SetName("BottomDitchPolderSide"); - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); + PipingSurfaceLine differentDikeToeAtPolder = CreateSurfaceLineWithCharacteristicPoints(); + points = differentDikeToeAtPolder.Points.ToArray(); + differentDikeToeAtPolder.SetDikeToeAtPolderAt(points[5]); + yield return new TestCaseData(differentDikeToeAtPolder) + .SetName("DikeToeAtPolder"); - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } + PipingSurfaceLine differentDikeToeAtRiver = CreateSurfaceLineWithCharacteristicPoints(); + points = differentDikeToeAtRiver.Points.ToArray(); + differentDikeToeAtRiver.SetDikeToeAtRiverAt(points[5]); + yield return new TestCaseData(differentDikeToeAtRiver) + .SetName("DikeToeAtRiver"); - [Test] - public void Equals_DifferentBottomDitchDikeSide_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetBottomDitchDikeSideAt(points[5]); + PipingSurfaceLine differentDitchDikeSide = CreateSurfaceLineWithCharacteristicPoints(); + points = differentDitchDikeSide.Points.ToArray(); + differentDitchDikeSide.SetDitchDikeSideAt(points[1]); + yield return new TestCaseData(differentDitchDikeSide) + .SetName("DitchDikeSide"); - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); + PipingSurfaceLine differentDitchPolderSide = CreateSurfaceLineWithCharacteristicPoints(); + points = differentDitchPolderSide.Points.ToArray(); + differentDitchPolderSide.SetDitchPolderSideAt(points[1]); + yield return new TestCaseData(differentDitchPolderSide) + .SetName("DitchPolderSide"); + } } - [Test] - public void Equals_DifferentBottomDitchPolderSide_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetBottomDitchPolderSideAt(points[5]); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_DifferentDikeToeAtPolder_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetDikeToeAtPolderAt(points[5]); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_DifferentDikeToeAtRiver_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetDikeToeAtRiverAt(points[5]); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_DifferentDitchDikeSide_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetDitchDikeSideAt(points[1]); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_DifferentDitchPolderSide_ReturnsFalse() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - Point3D[] points = surfaceLineTwo.Points.ToArray(); - surfaceLineTwo.SetDitchPolderSideAt(points[1]); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsFalse(isLineOneEqualToLineTwo); - Assert.IsFalse(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_NamesGeometriesAndReferenceLineIntersectionWorldPointAndCharacteristicPointsEqual_ReturnsTrue() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineOne = surfaceLineTwo.Equals(surfaceLineOne); - - // Assert - Assert.IsTrue(isLineOneEqualToLineTwo); - Assert.IsTrue(isLineTwoEqualToLineOne); - } - - [Test] - public void Equals_TransitivePropertyWithSameNamesAndGeometry_ReturnsTrue() - { - // Setup - PipingSurfaceLine surfaceLineOne = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineTwo = CreateSurfaceLineWithCharacteristicPoints(); - PipingSurfaceLine surfaceLineThree = CreateSurfaceLineWithCharacteristicPoints(); - - // Call - bool isLineOneEqualToLineTwo = surfaceLineOne.Equals(surfaceLineTwo); - bool isLineTwoEqualToLineThree = surfaceLineTwo.Equals(surfaceLineThree); - bool isLineOneEqualToLineThree = surfaceLineOne.Equals(surfaceLineThree); - - // Assert - Assert.IsTrue(isLineOneEqualToLineTwo); - Assert.IsTrue(isLineTwoEqualToLineThree); - Assert.IsTrue(isLineOneEqualToLineThree); - } - - [Test] - public void GetHashCode_EqualSurfaceLines_ReturnSameHashCode() - { - // Setup - var surfaceLineOne = new PipingSurfaceLine(string.Empty); - var surfaceLineTwo = new PipingSurfaceLine(string.Empty); - - // Call - int hashCodeOne = surfaceLineOne.GetHashCode(); - int hashCodeTwo = surfaceLineTwo.GetHashCode(); - - // Assert - Assert.AreEqual(hashCodeOne, hashCodeTwo); - } - public abstract class SetCharacteristicPointTest { [Test]