Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs =================================================================== diff -u -r8905298103eb01ce13dd5c1a2f267f879d4fda3e -rf423289729b381361eed8bb5eacc7596a710d78a --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (.../PipingFailureMechanismContextPropertiesTest.cs) (revision 8905298103eb01ce13dd5c1a2f267f879d4fda3e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (.../PipingFailureMechanismContextPropertiesTest.cs) (revision f423289729b381361eed8bb5eacc7596a710d78a) @@ -21,6 +21,7 @@ using System; using System.ComponentModel; +using System.Linq; using Core.Common.Base; using Core.Common.Base.Data; using Core.Common.Gui.PropertyBag; @@ -29,6 +30,7 @@ using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.PresentationObjects; using Ringtoets.Piping.Forms.PropertyClasses; @@ -39,31 +41,59 @@ public class PipingFailureMechanismContextPropertiesTest { [Test] - public void Constructor_ExpectedValues() + public void Constructor_DataIsNull_ThrowArgumentNullException() { + // Setup + var mocks = new MockRepository(); + var handler = CreateSimpleHandler(new MockRepository()); + mocks.ReplayAll(); + // Call - var properties = new PipingFailureMechanismContextProperties(); + TestDelegate test = () => new PipingFailureMechanismContextProperties(null, handler); // Assert - Assert.IsInstanceOf>(properties); + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("data", paramName); + mocks.VerifyAll(); } [Test] - public void Data_SetNewPipingFailureMechanismContextInstance_ReturnCorrectPropertyValues() + public void Constructor_ChangeHandlerIsNull_ThrowArgumentNullException() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate test = () => new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection), + null); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("handler", paramName); + mocks.VerifyAll(); + } + + [Test] + public void Constructor_ExpectedValues() + { + // Setup var failureMechanism = new PipingFailureMechanism(); - var properties = new PipingFailureMechanismContextProperties(); var mockRepository = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabase( - failureMechanism, mockRepository); + IAssessmentSection assessmentSectionStub = mockRepository.Stub(); + var handler = CreateSimpleHandler(new MockRepository()); mockRepository.ReplayAll(); // Call - properties.Data = new PipingFailureMechanismContext(failureMechanism, assessmentSectionStub); + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, assessmentSectionStub), + handler); // Assert + Assert.IsInstanceOf>(properties); Assert.AreEqual(failureMechanism.Name, properties.Name); Assert.AreEqual(failureMechanism.Code, properties.Code); @@ -95,11 +125,16 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + var mockRepository = new MockRepository(); + IAssessmentSection assessmentSectionStub = mockRepository.Stub(); + var handler = CreateSimpleHandler(new MockRepository()); + + mockRepository.ReplayAll(); + // Call - var properties = new PipingFailureMechanismContextProperties - { - Data = new PipingFailureMechanismContext(failureMechanism, new MockRepository().Stub()) - }; + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, assessmentSectionStub), + handler); // Assert var dynamicPropertyBag = new DynamicPropertyBag(properties); @@ -230,10 +265,9 @@ var observerMock = mocks.StrictMock(); var failureMechanism = new PipingFailureMechanism(); - var properties = new PipingFailureMechanismContextProperties - { - Data = new PipingFailureMechanismContext(failureMechanism, mocks.Stub()) - }; + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, mocks.Stub()), + CreateSimpleHandler(mocks)); mocks.ReplayAll(); failureMechanism.Attach(observerMock); @@ -262,10 +296,9 @@ observerMock.Expect(o => o.UpdateObserver()); var failureMechanism = new PipingFailureMechanism(); - var properties = new PipingFailureMechanismContextProperties - { - Data = new PipingFailureMechanismContext(failureMechanism, mocks.Stub()) - }; + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, mocks.Stub()), + CreateSimpleHandler(mocks)); mocks.ReplayAll(); failureMechanism.Attach(observerMock); @@ -290,10 +323,9 @@ observerMock.Expect(o => o.UpdateObserver()); var failureMechanism = new PipingFailureMechanism(); - var properties = new PipingFailureMechanismContextProperties - { - Data = new PipingFailureMechanismContext(failureMechanism, mocks.Stub()) - }; + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, mocks.Stub()), + CreateSimpleHandler(mocks)); mocks.ReplayAll(); failureMechanism.Attach(observerMock); @@ -319,10 +351,9 @@ var observerMock = mocks.StrictMock(); var failureMechanism = new PipingFailureMechanism(); - var properties = new PipingFailureMechanismContextProperties - { - Data = new PipingFailureMechanismContext(failureMechanism, mocks.Stub()) - }; + var properties = new PipingFailureMechanismContextProperties( + new PipingFailureMechanismContext(failureMechanism, mocks.Stub()), + CreateSimpleHandler(mocks)); mocks.ReplayAll(); failureMechanism.Attach(observerMock); @@ -334,5 +365,14 @@ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "De waarde moet binnen het bereik [0, 20] liggen."); mocks.VerifyAll(); // Does not expect notify observers. } + + private IFailureMechanismPropertyChangeHandler CreateSimpleHandler(MockRepository mockRepository) + { + var handler = mockRepository.Stub(); + handler.Stub(h => h.ConfirmPropertyChange()).Return(true); + handler.Stub(h => h.PropertyChanged(Arg.Matches(z => true))).Return(Enumerable.Empty()); + + return handler; + } } } \ No newline at end of file