Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/CalculationInputSetPropertyValueAfterConfirmationParameterTesterTest.cs
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/CalculationInputSetPropertyValueAfterConfirmationParameterTesterTest.cs (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/CalculationInputSetPropertyValueAfterConfirmationParameterTesterTest.cs (revision b40918ecce110abdd8be9aef9ee156153bd412c3)
@@ -0,0 +1,166 @@
+// Copyright (C) Stichting Deltares 2016. 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 System.Linq;
+using Core.Common.Base;
+using NUnit.Framework;
+using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Forms.PropertyClasses;
+
+namespace Ringtoets.Common.Forms.TestUtil.Test
+{
+ [TestFixture]
+ public class CalculationInputSetPropertyValueAfterConfirmationParameterTesterTest
+ {
+ [Test]
+ public void Constructructed_Always_PropertiesSet()
+ {
+ // Setup
+ const double value = 3.0;
+ var testCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+ var returnedAffectedObjects = Enumerable.Empty();
+
+ // Call
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, value, returnedAffectedObjects);
+
+ // Assert
+ Assert.IsInstanceOf>(tester);
+ Assert.AreSame(testCalculationInput, tester.ExpectedCalculationInput);
+ Assert.AreSame(testCalculation, tester.ExpectedCalculation);
+ Assert.AreEqual(value, tester.ExpectedValue);
+ Assert.AreSame(returnedAffectedObjects, tester.ReturnedAffectedObjects);
+ Assert.IsFalse(tester.Called);
+ }
+
+ [Test]
+ public void SetPropertyValueAfterConfirmation_CalculationInputPassedNotSame_ThrowsAssertionException()
+ {
+ // Setup
+ const double value = 3.0;
+ var testCalculationInput = new TestCalculationInput();
+ var passedCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+ var returnedAffectedObjects = Enumerable.Empty();
+
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, value, returnedAffectedObjects);
+
+ // Call
+ TestDelegate test = () => tester.SetPropertyValueAfterConfirmation(passedCalculationInput, testCalculation, value, (input, v) => { });
+
+ // Assert
+ Assert.Throws(test);
+ Assert.IsTrue(tester.Called);
+ }
+
+ [Test]
+ public void SetPropertyValueAfterConfirmation_CalculationPassedNotSame_ThrowsAssertionException()
+ {
+ // Setup
+ const double value = 3.0;
+ var testCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+ var passedCalculation = new TestCalculation();
+ var returnedAffectedObjects = Enumerable.Empty();
+
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, value, returnedAffectedObjects);
+
+ // Call
+ TestDelegate test = () => tester.SetPropertyValueAfterConfirmation(testCalculationInput, passedCalculation, value, (input, v) => { });
+
+ // Assert
+ Assert.Throws(test);
+ Assert.IsTrue(tester.Called);
+ }
+
+ [Test]
+ public void SetPropertyValueAfterConfirmation_ValuePassedNotEqual_ThrowsAssertionException()
+ {
+ // Setup
+ const double expectedValue = 3.0;
+ const double passedValue = 2.0;
+ var testCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+ var returnedAffectedObjects = Enumerable.Empty();
+
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, expectedValue, returnedAffectedObjects);
+
+ // Call
+ TestDelegate test = () => tester.SetPropertyValueAfterConfirmation(testCalculationInput, testCalculation, passedValue, (input, v) => { });
+
+ // Assert
+ Assert.Throws(test);
+ Assert.IsTrue(tester.Called);
+ }
+
+ [Test]
+ public void SetPropertyValueAfterConfirmation_ParametersAreSameAndEqual_SetValueCalledReturnsGivenAffectedObjects()
+ {
+ // Setup
+ const double value = 3.0;
+
+ var returnedAffectedObjects = Enumerable.Empty();
+ var testCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+ var called = 0;
+
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, value, returnedAffectedObjects);
+
+ // Call
+ var affectedObjects = tester.SetPropertyValueAfterConfirmation(testCalculationInput, testCalculation, value, (m, v) => called++);
+
+ // Assert
+ Assert.AreEqual(1, called);
+ Assert.AreSame(returnedAffectedObjects, affectedObjects);
+ Assert.IsTrue(tester.Called);
+ }
+
+ [Test]
+ public void SetPropertyValueAfterConfirmation_SetValueThrowsException_BubblesException()
+ {
+ // Setup
+ const double value = 3.0;
+
+ var returnedAffectedObjects = Enumerable.Empty();
+ var testCalculationInput = new TestCalculationInput();
+ var testCalculation = new TestCalculation();
+
+ var tester = new CalculationInputSetPropertyValueAfterConfirmationParameterTester(
+ testCalculationInput, testCalculation, value, returnedAffectedObjects);
+
+ var expectedException = new Exception();
+
+ // Call
+ TestDelegate test = () => tester.SetPropertyValueAfterConfirmation(testCalculationInput, testCalculation, value, (input, v) => { throw expectedException; });
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreSame(expectedException, exception);
+ Assert.IsTrue(tester.Called);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj
===================================================================
diff -u -r50ddb1e22da777912b22e70497d1b67340ecaecd -rb40918ecce110abdd8be9aef9ee156153bd412c3
--- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj (.../Ringtoets.Common.Forms.TestUtil.Test.csproj) (revision 50ddb1e22da777912b22e70497d1b67340ecaecd)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj (.../Ringtoets.Common.Forms.TestUtil.Test.csproj) (revision b40918ecce110abdd8be9aef9ee156153bd412c3)
@@ -51,6 +51,7 @@
Properties\GlobalAssembly.cs
+
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/CalculationInputSetPropertyValueAfterConfirmationParameterTester.cs
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/CalculationInputSetPropertyValueAfterConfirmationParameterTester.cs (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/CalculationInputSetPropertyValueAfterConfirmationParameterTester.cs (revision b40918ecce110abdd8be9aef9ee156153bd412c3)
@@ -0,0 +1,100 @@
+// Copyright (C) Stichting Deltares 2016. 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 System.Collections.Generic;
+using Core.Common.Base;
+using NUnit.Framework;
+using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Forms.PropertyClasses;
+
+namespace Ringtoets.Common.Forms.TestUtil
+{
+ ///
+ /// This class can be used in tests to verify that the correct arguments
+ /// are passed to the method.
+ ///
+ /// The type of the calculation input that is expected to be passed to the method.
+ /// The type of the calculation that is expected to be passed to the method.
+ /// The type of the value that is epected to be passed to the method.
+ public class CalculationInputSetPropertyValueAfterConfirmationParameterTester
+ : ICalculationInputPropertyChangeHandler
+ where TCalculationInput : ICalculationInput
+ where TCalculation : ICalculation
+ {
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The calculation input that is expected to be passed to the .
+ /// The calculation that is expected to be passed to the .
+ /// The value that is expected to be passed to the .
+ /// The affected object that are returned by .
+ public CalculationInputSetPropertyValueAfterConfirmationParameterTester(TCalculationInput expectedCalculationInput,
+ TCalculation expectedCalculation,
+ TExpectedValue expectedValue,
+ IEnumerable returnedAffectedObjects)
+ {
+ ExpectedCalculationInput = expectedCalculationInput;
+ ExpectedCalculation = expectedCalculation;
+ ExpectedValue = expectedValue;
+ ReturnedAffectedObjects = returnedAffectedObjects;
+ }
+
+ ///
+ /// Gets a value representing whether was called.
+ ///
+ public bool Called { get; private set; }
+
+ ///
+ /// Gets the calculation input that is expected to be passed to the .
+ ///
+ public TCalculationInput ExpectedCalculationInput { get; }
+
+ ///
+ /// Gets the calculation that is expected to be passed to the .
+ ///
+ public TCalculation ExpectedCalculation { get; }
+
+ ///
+ /// Gets the value that is expected to be passed to the .
+ ///
+ public TExpectedValue ExpectedValue { get; }
+
+ ///
+ /// Gets the affected object that are returned by .
+ ///
+ public IEnumerable ReturnedAffectedObjects { get; }
+
+ public IEnumerable SetPropertyValueAfterConfirmation(
+ TCalculationInput calculationInput,
+ TCalculation calculation,
+ TValue value,
+ SetCalculationInputPropertyValueDelegate setValue)
+ {
+ Called = true;
+ Assert.AreSame(ExpectedCalculationInput, calculationInput);
+ Assert.AreSame(ExpectedCalculation, calculation);
+ Assert.AreEqual(ExpectedValue, value);
+ setValue(calculationInput, value);
+ return ReturnedAffectedObjects;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj
===================================================================
diff -u -r50ddb1e22da777912b22e70497d1b67340ecaecd -rb40918ecce110abdd8be9aef9ee156153bd412c3
--- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj (.../Ringtoets.Common.Forms.TestUtil.csproj) (revision 50ddb1e22da777912b22e70497d1b67340ecaecd)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj (.../Ringtoets.Common.Forms.TestUtil.csproj) (revision b40918ecce110abdd8be9aef9ee156153bd412c3)
@@ -51,6 +51,7 @@
Properties\GlobalAssembly.cs
+