Index: Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/FileImporters/FailureMechanismSectionResultUpdateStrategyTestFixture.cs
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/FileImporters/FailureMechanismSectionResultUpdateStrategyTestFixture.cs (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/FileImporters/FailureMechanismSectionResultUpdateStrategyTestFixture.cs (revision f855ac15eef6c6619d535d6d9b4b5c26e2ed0cbe)
@@ -0,0 +1,115 @@
+// Copyright (C) Stichting Deltares 2017. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using NUnit.Framework;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Common.IO.FileImporters;
+
+namespace Ringtoets.Common.Plugin.TestUtil.FileImporters
+{
+ ///
+ /// Test fixture class for testing the behavior of an .
+ ///
+ /// The type of the update strategy to test.
+ /// The type of the failure mechanism section result the update strategy uses.
+ public abstract class FailureMechanismSectionResultUpdateStrategyTestFixture<
+ TUpdateStrategy, TSectionResult>
+ where TUpdateStrategy : IFailureMechanismSectionResultUpdateStrategy, new()
+ where TSectionResult : FailureMechanismSectionResult
+ {
+ [Test]
+ public void Constructor_ExpectedValues()
+ {
+ // Call
+ var strategy = new TUpdateStrategy();
+
+ // Assert
+ Assert.IsInstanceOf(strategy);
+ }
+
+ [Test]
+ public void UpdateSectionResult_OriginNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var strategy = new TUpdateStrategy();
+
+ // Call
+ TestDelegate test = () => strategy.UpdateSectionResult(
+ null, CreateEmptySectionResult());
+
+ // Assert
+ string paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("origin", paramName);
+ }
+
+ [Test]
+ public void UpdateSectionResult_TargetNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var strategy = new TUpdateStrategy();
+
+ // Call
+ TestDelegate test = () => strategy.UpdateSectionResult(
+ CreateEmptySectionResult(), null);
+
+ // Assert
+ string paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("target", paramName);
+ }
+
+ [Test]
+ public void UpdateSectionResult_WithData_UpdatesTargetSectionResult()
+ {
+ // Setup
+ var strategy = new TUpdateStrategy();
+ TSectionResult originResult = CreateConfiguredSectionResult();
+ TSectionResult targetResult = CreateEmptySectionResult();
+
+ // Call
+ strategy.UpdateSectionResult(originResult, targetResult);
+
+ // Assert
+ AssertSectionResult(originResult, targetResult);
+ Assert.AreNotSame(originResult.Section, targetResult.Section);
+ }
+
+ ///
+ /// Method for creating an empty instance of .
+ ///
+ /// An empty
+ protected abstract TSectionResult CreateEmptySectionResult();
+
+ ///
+ /// Method that asserts whether and
+ /// are equal.
+ ///
+ /// Thrown when
+ /// and are not equal.
+ protected abstract void AssertSectionResult(TSectionResult originResult, TSectionResult targetResult);
+
+ ///
+ /// Method for creating a configured instance of .
+ ///
+ /// An empty
+ protected abstract TSectionResult CreateConfiguredSectionResult();
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/Ringtoets.Common.Plugin.TestUtil.csproj
===================================================================
diff -u -r9fb6b330d45af8ac4ebdf127bb5907781cdb5155 -rf855ac15eef6c6619d535d6d9b4b5c26e2ed0cbe
--- Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/Ringtoets.Common.Plugin.TestUtil.csproj (.../Ringtoets.Common.Plugin.TestUtil.csproj) (revision 9fb6b330d45af8ac4ebdf127bb5907781cdb5155)
+++ Ringtoets/Common/test/Ringtoets.Common.Plugin.TestUtil/Ringtoets.Common.Plugin.TestUtil.csproj (.../Ringtoets.Common.Plugin.TestUtil.csproj) (revision f855ac15eef6c6619d535d6d9b4b5c26e2ed0cbe)
@@ -20,6 +20,7 @@
+
@@ -56,6 +57,10 @@
{4D840673-3812-4338-A352-84854E32B8A0}
Ringtoets.Common.Forms
+
+ {52BA7627-CBAB-4209-BE77-3B5F31378277}
+ Ringtoets.Common.IO
+
{4843D6E5-066F-4795-94F5-1D53932DD03C}
Ringtoets.Common.Data.TestUtil