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