Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingTest.cs =================================================================== diff -u -r4b323a2ddc3c72d9543815f481202263b5852b91 -r472d38ee5a4169cc628526afb7b72f7f4a1af013 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingTest.cs (.../RingTest.cs) (revision 4b323a2ddc3c72d9543815f481202263b5852b91) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingTest.cs (.../RingTest.cs) (revision 472d38ee5a4169cc628526afb7b72f7f4a1af013) @@ -25,7 +25,6 @@ using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Framework; -using Ringtoets.MacroStabilityInwards.Primitives.TestUtil; namespace Ringtoets.MacroStabilityInwards.Primitives.Test { @@ -56,64 +55,9 @@ } [Test] - public void Equals_DifferentType_ReturnsFalse() + public void Constructor_WithValidPointsArray_PointSetCopiedToNewCollection() { // Setup - Ring layer = RingTestFactory.CreateRandomRing(); - - // Call - bool areEqual = layer.Equals(new object()); - - // Assert - Assert.IsFalse(areEqual); - } - - [Test] - public void Equals_WithNull_ReturnsFalse() - { - // Setup - Ring ring = RingTestFactory.CreateRandomRing(); - - // Call - bool equal = ring.Equals(null); - - // Assert - Assert.IsFalse(equal); - } - - [Test] - public void GetHashCode_EqualInstances_ReturnEqualHashes() - { - // Setup - Ring ringA = RingTestFactory.CreateRandomRing(21); - Ring ringB = RingTestFactory.CreateRandomRing(21); - - // Precondition - Assert.AreEqual(ringA, ringB); - Assert.AreEqual(ringB, ringA); - - // Call & Assert - Assert.AreEqual(ringA.GetHashCode(), ringB.GetHashCode()); - Assert.AreEqual(ringB.GetHashCode(), ringA.GetHashCode()); - } - - [Test] - [TestCaseSource(nameof(RingCombinations))] - public void Equals_DifferentScenarios_ReturnsExpectedResult(Ring ring, Ring otherRing, bool expectedEqual) - { - // Call - bool areEqualOne = ring.Equals(otherRing); - bool areEqualTwo = otherRing.Equals(ring); - - // Assert - Assert.AreEqual(expectedEqual, areEqualOne); - Assert.AreEqual(expectedEqual, areEqualTwo); - } - - [Test] - public void Points_RingWithPointSet_PointSetCopiedToNewCollection() - { - // Setup var points = new[] { new Point2D(3, 2), @@ -130,40 +74,50 @@ TestHelper.AssertAreEqualButNotSame(points, ringPoints); } - private static TestCaseData[] RingCombinations() + [TestFixture] + private class RingEqualsTest : EqualsGuidelinesTestFixture { - Ring ringA = RingTestFactory.CreateRandomRing(21); - Ring ringB = RingTestFactory.CreateRandomRing(21); - Ring ringC = RingTestFactory.CreateRandomRing(73); - Ring ringD = RingTestFactory.CreateRandomRing(21); + protected override Ring CreateObject() + { + return CreateRing(); + } - return new[] + protected override DerivedRing CreateDerivedObject() { - new TestCaseData(ringA, ringA, true) + return new DerivedRing(CreateRing()); + } + + private static IEnumerable GetUnequalTestCases() + { + Ring baseRing = CreateRing(); + List differentNrOfPoints = baseRing.Points.ToList(); + differentNrOfPoints.RemoveAt(0); + yield return new TestCaseData(new Ring(differentNrOfPoints)) + .SetName("Different Nr of Points"); + + baseRing = CreateRing(); + Point2D[] differentPoints = baseRing.Points.ToArray(); + differentPoints[0] = new Point2D(0, 0); + yield return new TestCaseData(new Ring(differentPoints)) + .SetName("Different Points"); + } + + private static Ring CreateRing() + { + var random = new Random(30); + return new Ring(new[] { - TestName = "Equals_RingARingA_True" - }, - new TestCaseData(ringA, ringB, true) - { - TestName = "Equals_RingARingB_True" - }, - new TestCaseData(ringB, ringD, true) - { - TestName = "Equals_RingBRingD_True" - }, - new TestCaseData(ringA, ringD, true) - { - TestName = "Equals_RingARingD_True" - }, - new TestCaseData(ringB, ringC, false) - { - TestName = "Equals_RingBRingC_False" - }, - new TestCaseData(ringA, ringC, false) - { - TestName = "Equals_RingARingC_False" - } - }; + new Point2D(random.NextDouble(), random.NextDouble()), + new Point2D(random.NextDouble(), random.NextDouble()), + new Point2D(random.NextDouble(), random.NextDouble()), + new Point2D(random.NextDouble(), random.NextDouble()) + }); + } } + + private class DerivedRing : Ring + { + public DerivedRing(Ring ring) : base(ring.Points) {} + } } } \ No newline at end of file