Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PresentationObjects/GrassCoverErosionOutwardsHydraulicBoundaryLocationContextTest.cs =================================================================== diff -u -rf6b8dfb3d6415ffe27f3106816d78b7b0378265f -ra44cca6d22da0fde88c7ad47b2b98b4befdb12ca --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PresentationObjects/GrassCoverErosionOutwardsHydraulicBoundaryLocationContextTest.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationContextTest.cs) (revision f6b8dfb3d6415ffe27f3106816d78b7b0378265f) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PresentationObjects/GrassCoverErosionOutwardsHydraulicBoundaryLocationContextTest.cs (.../GrassCoverErosionOutwardsHydraulicBoundaryLocationContextTest.cs) (revision a44cca6d22da0fde88c7ad47b2b98b4befdb12ca) @@ -197,7 +197,7 @@ yield return new TestCaseData(new TestGrassCoverErosionOutwardsLocationContext(hydraulicLocation, new ObservableList())) .SetName("LocationsList"); yield return new TestCaseData(new TestGrassCoverErosionOutwardsLocationContext(new TestHydraulicBoundaryLocation(), hydraulicLocations)) - .SetName("Locations"); + .SetName("Location"); } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/RingtoetsProjectTest.cs =================================================================== diff -u -r1bbf51443c907b5f202e80764fa05f2e7f842c04 -ra44cca6d22da0fde88c7ad47b2b98b4befdb12ca --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/RingtoetsProjectTest.cs (.../RingtoetsProjectTest.cs) (revision 1bbf51443c907b5f202e80764fa05f2e7f842c04) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/RingtoetsProjectTest.cs (.../RingtoetsProjectTest.cs) (revision a44cca6d22da0fde88c7ad47b2b98b4befdb12ca) @@ -19,8 +19,11 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using System.Collections.Generic; using Core.Common.Base; using Core.Common.Base.Data; +using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; @@ -79,100 +82,6 @@ } [Test] - public void Equals_NewProject_ReturnsTrue() - { - // Setup - var newProjectA = new RingtoetsProject(); - var newProjectB = new RingtoetsProject(); - - // Call - bool result = newProjectA.Equals(newProjectB); - bool result2 = newProjectB.Equals(newProjectA); - - // Assert - Assert.IsTrue(result); - Assert.IsTrue(result2); - } - - [Test] - public void Equals_ProjectNameChanged_ReturnsFalse() - { - // Setup - var newProject = new RingtoetsProject(); - var changedProject = new RingtoetsProject - { - Name = "" - }; - - // Call - bool result = newProject.Equals(changedProject); - bool result2 = changedProject.Equals(newProject); - - // Assert - Assert.IsFalse(result); - Assert.IsFalse(result2); - } - - [Test] - public void Equals_ProjectDescriptionChanged_ReturnsFalse() - { - // Setup - var newProject = new RingtoetsProject(); - var changedProject = new RingtoetsProject - { - Description = "" - }; - - // Call - bool result = newProject.Equals(changedProject); - bool result2 = changedProject.Equals(newProject); - - // Assert - Assert.IsFalse(result); - Assert.IsFalse(result2); - } - - [Test] - public void Equals_ProjectAssessmentSectionsChanged_ReturnsFalse() - { - // Setup - var newProject = new RingtoetsProject(); - var changedProject = new RingtoetsProject(); - newProject.AssessmentSections.Add(new AssessmentSection(AssessmentSectionComposition.Dike)); - - // Call - bool result = newProject.Equals(changedProject); - bool result2 = changedProject.Equals(newProject); - - // Assert - Assert.IsFalse(result); - Assert.IsFalse(result2); - } - - [Test] - public void GetHashCode_ProjectsAreEqual_ReturnsEqualHashes() - { - // Setup - const string name = "Some name"; - const string desctiption = "Some desctiption"; - var project = new RingtoetsProject(name) - { - Description = desctiption - }; - var otherProject = new RingtoetsProject(name) - { - Description = desctiption - }; - - // Call - int result = project.GetHashCode(); - int otherResult = otherProject.GetHashCode(); - - // Assert - Assert.AreEqual(result, otherResult); - } - - [Test] public void NotifyObservers_WithObserverAttached_ObserverIsNotified() { // Setup @@ -211,5 +120,57 @@ // Assert mockRepository.VerifyAll(); } + + [TestFixture] + private class RingtoetsProjectEqualsTest : EqualsGuidelinesTestFixture + { + protected override RingtoetsProject CreateObject() + { + return CreateProject(); + } + + protected override DerivedRingtoetsProject CreateDerivedObject() + { + return new DerivedRingtoetsProject(CreateProject()); + } + + private static IEnumerable GetUnequalTestCases() + { + RingtoetsProject baseProject = CreateProject(); + + yield return new TestCaseData(new RingtoetsProject("Different name") + { + Description = baseProject.Description + }).SetName("Name"); + + yield return new TestCaseData(new RingtoetsProject(baseProject.Name)) + .SetName("Description"); + + var random = new Random(21); + var differentAsessmentSections = CreateProject(); + differentAsessmentSections.AssessmentSections.Add(new AssessmentSection(random.NextEnumValue())); + yield return new TestCaseData(differentAsessmentSections) + .SetName("AssessmentSections"); + } + + private static RingtoetsProject CreateProject() + { + const string name = "Some name"; + const string description = "Some desctiption"; + return new RingtoetsProject(name) + { + Description = description + }; + } + } + + private class DerivedRingtoetsProject : RingtoetsProject + { + public DerivedRingtoetsProject(RingtoetsProject project) + { + Name = project.Name; + Description = project.Description; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/HydraulicBoundaryLocationContextTest.cs =================================================================== diff -u -r7594f72cabeb4802ffab5715e2edb2712fc1f0df -ra44cca6d22da0fde88c7ad47b2b98b4befdb12ca --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/HydraulicBoundaryLocationContextTest.cs (.../HydraulicBoundaryLocationContextTest.cs) (revision 7594f72cabeb4802ffab5715e2edb2712fc1f0df) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/HydraulicBoundaryLocationContextTest.cs (.../HydraulicBoundaryLocationContextTest.cs) (revision a44cca6d22da0fde88c7ad47b2b98b4befdb12ca) @@ -20,7 +20,9 @@ // All rights reserved. using System; +using System.Collections.Generic; using Core.Common.Controls.PresentationObjects; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Integration.Forms.PresentationObjects; @@ -74,117 +76,42 @@ Assert.AreSame(hydraulicBoundaryLocation, context.WrappedData); } - [Test] - public void Equals_ToNull_ReturnFalse() + [TestFixture] + private class HydraulicBoundaryLocationContextEqualsTest + : EqualsGuidelinesTestFixture { - // Setup - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); + private static readonly HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + private static readonly HydraulicBoundaryLocation hydraulicLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); - var context = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); + protected override TestHydraulicBoundaryLocationContext CreateObject() + { + return new TestHydraulicBoundaryLocationContext(hydraulicLocation, hydraulicBoundaryDatabase); + } - // Call - bool isEqual = context.Equals(null); + protected override DerivedTestHydraulicBoundaryLocationContext CreateDerivedObject() + { + return new DerivedTestHydraulicBoundaryLocationContext(hydraulicLocation, hydraulicBoundaryDatabase); + } - // Assert - Assert.IsFalse(isEqual); + private static IEnumerable GetUnequalTestCases() + { + yield return new TestCaseData(new TestHydraulicBoundaryLocationContext(hydraulicLocation, new HydraulicBoundaryDatabase())) + .SetName("Hydraulic Boundary Database"); + yield return new TestCaseData(new TestHydraulicBoundaryLocationContext(new HydraulicBoundaryLocation(1, "Different location name", 2.0, 3.0), + hydraulicBoundaryDatabase)) + .SetName("Location"); + } } - [Test] - public void Equals_ToItself_ReturnTrue() + private class TestHydraulicBoundaryLocationContext : HydraulicBoundaryLocationContext { - // Setup - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); - - var context = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); - - // Call - bool isEqual = context.Equals(context); - - // Assert - Assert.IsTrue(isEqual); + public TestHydraulicBoundaryLocationContext(HydraulicBoundaryLocation wrappedData, HydraulicBoundaryDatabase hydraulicBoundaryDatabase) + : base(wrappedData, hydraulicBoundaryDatabase) {} } - [Test] - public void Equals_ToOtherWithDifferentDatabaseAndSameLocation_ReturnFalse() + private class DerivedTestHydraulicBoundaryLocationContext : TestHydraulicBoundaryLocationContext { - // Setup - var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); - var context1 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase1); - var context2 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase2); - - // Call - bool isEqual1 = context1.Equals(context2); - bool isEqual2 = context2.Equals(context1); - - // Assert - Assert.IsFalse(isEqual1); - Assert.IsFalse(isEqual2); - } - - [Test] - public void Equals_ToOtherWithSameDatabaseAndDifferentLocation_ReturnFalse() - { - // Setup - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation1 = new HydraulicBoundaryLocation(1, "First name", 2.0, 3.0); - var hydraulicBoundaryLocation2 = new HydraulicBoundaryLocation(2, "Second name", 4.0, 5.0); - var context1 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation1, hydraulicBoundaryDatabase); - var context2 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation2, hydraulicBoundaryDatabase); - - // Call - bool isEqual1 = context1.Equals(context2); - bool isEqual2 = context2.Equals(context1); - - // Assert - Assert.IsFalse(isEqual1); - Assert.IsFalse(isEqual2); - } - - [Test] - public void Equals_ToOtherWithSameDatabaseAndSameLocation_ReturnTrue() - { - // Setup - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); - var context1 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); - var context2 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); - - // Call - bool isEqual1 = context1.Equals(context2); - bool isEqual2 = context2.Equals(context1); - - // Assert - Assert.IsTrue(isEqual1); - Assert.IsTrue(isEqual2); - } - - [Test] - public void GetHashCode_EqualObjects_ReturnSameHashCode() - { - // Setup - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Name", 2.0, 3.0); - var context1 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); - var context2 = new TestHydraulicBoundaryLocationContext(hydraulicBoundaryLocation, hydraulicBoundaryDatabase); - - // Precondition - Assert.AreEqual(context1, context2); - - // Call - int hashCode1 = context1.GetHashCode(); - int hashCode2 = context2.GetHashCode(); - - // Assert - Assert.AreEqual(hashCode1, hashCode2); - } - - private class TestHydraulicBoundaryLocationContext : HydraulicBoundaryLocationContext - { - public TestHydraulicBoundaryLocationContext(HydraulicBoundaryLocation wrappedData, HydraulicBoundaryDatabase hydraulicBoundaryDatabase) + public DerivedTestHydraulicBoundaryLocationContext(HydraulicBoundaryLocation wrappedData, HydraulicBoundaryDatabase hydraulicBoundaryDatabase) : base(wrappedData, hydraulicBoundaryDatabase) {} } }