Index: test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs =================================================================== diff -u -r7245ba23f1a696b772b9dc57ea4f92ac822c17f3 -ra8605fbec9c103f6b54775d479ec3c6078b484a2 --- test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs (.../PipingDataTest.cs) (revision 7245ba23f1a696b772b9dc57ea4f92ac822c17f3) +++ test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs (.../PipingDataTest.cs) (revision a8605fbec9c103f6b54775d479ec3c6078b484a2) @@ -1,18 +1,27 @@ using System; using DelftTools.Shell.Core; using NUnit.Framework; +using Rhino.Mocks; namespace Wti.Data.Test { public class PipingDataTest { + private MockRepository mockRepository; + + [SetUp] + public void SetUp() + { + mockRepository = new MockRepository(); + } + [Test] public void DefaultConstructor_DefaultPropertyValuesAreSet() { - // call + // Call var defaultConstructed = new PipingData(); - // assert + // Assert Assert.AreEqual(0, defaultConstructed.CriticalHeaveGradient); Assert.AreEqual(0, defaultConstructed.UpliftModelFactor); Assert.AreEqual(0, defaultConstructed.PiezometricHeadExit); @@ -42,144 +51,121 @@ [Test] public void Notify_SingleListenerAttached_ListenerIsNotified() { - // setup - var called = false; - var observer = new PipingDataTestObserver - { - OnUpdate = () => called = true - }; + // Setup + var observer = mockRepository.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mockRepository.ReplayAll(); + var pipingData = new PipingData(); pipingData.Attach(observer); - // call + // Call & Assert pipingData.NotifyObservers(); - - // assert - Assert.IsTrue(called); } [Test] public void Notify_SingleListenerAttachedAndDeattached_ListenerIsNotNotified() { - // setup - var called = false; - var observer = new PipingDataTestObserver - { - OnUpdate = () => called = true - }; + // Setup + var observer = mockRepository.StrictMock(); + observer.Expect(o => o.UpdateObserver()).Repeat.Never(); + mockRepository.ReplayAll(); var pipingData = new PipingData(); pipingData.Attach(observer); pipingData.Detach(observer); - // call + // Call & Assert pipingData.NotifyObservers(); - - // assert - Assert.IsFalse(called); } [Test] public void Notify_TwoListenersAttached_BothAreNotified() { - // setup - var calledTimes = 0; - var observerA = new PipingDataTestObserver - { - OnUpdate = () => calledTimes++ - }; - var observerB = new PipingDataTestObserver - { - OnUpdate = () => calledTimes++ - }; + // Setup + var observerA = mockRepository.StrictMock(); + observerA.Expect(o => o.UpdateObserver()); + var observerB = mockRepository.StrictMock(); + observerB.Expect(o => o.UpdateObserver()); + + mockRepository.ReplayAll(); + var pipingData = new PipingData(); pipingData.Attach(observerA); pipingData.Attach(observerB); - // call + // Call & Assert pipingData.NotifyObservers(); - - // assert - Assert.AreEqual(2, calledTimes); } [Test] public void Notify_TwoListenersAttachedOneDetached_InvokedOnce() { - // setup - var calledTimes = 0; - var observerA = new PipingDataTestObserver - { - OnUpdate = () => calledTimes++ - }; - var observerB = new PipingDataTestObserver - { - OnUpdate = () => calledTimes++ - }; + // Setup + var observerA = mockRepository.StrictMock(); + observerA.Expect(o => o.UpdateObserver()).Repeat.Never(); + var observerB = mockRepository.StrictMock(); + observerB.Expect(o => o.UpdateObserver()); + + mockRepository.ReplayAll(); + var pipingData = new PipingData(); pipingData.Attach(observerA); pipingData.Attach(observerB); pipingData.Detach(observerA); - // call + // Call & Assert pipingData.NotifyObservers(); - - // assert - Assert.AreEqual(1, calledTimes); } [Test] public void Detach_DetachNonAttachedObserver_ThrowsNoException() { - // setup - var observer = new PipingDataTestObserver(); + // Setup + var observer = mockRepository.StrictMock(); var pipingData = new PipingData(); - // call & assert + // Call & Assert pipingData.Detach(observer); } [Test] public void Output_SetToNullWithListeners_ListenersNotified() { // Setup - var called = false; - var observer = new PipingDataTestObserver - { - OnUpdate = () => called = true - }; + var observer = mockRepository.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mockRepository.ReplayAll(); + var pipingData = new PipingData(); pipingData.Attach(observer); - // Call + // Call & Assert pipingData.Output = null; - - // Assert - Assert.IsTrue(called); } [Test] public void Output_SetToNewOutputWithListeners_ListenersNotified() { // Setup var random = new Random(22); - var called = false; - var observer = new PipingDataTestObserver - { - OnUpdate = () => called = true - }; var pipingData = new PipingData(); + + var observer = mockRepository.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + pipingData.Attach(observer); + mockRepository.ReplayAll(); - // Call + // Call & Assert pipingData.Output = new PipingOutput( random.NextDouble(), random.NextDouble(), @@ -188,22 +174,6 @@ random.NextDouble(), random.NextDouble() ); - - // Assert - Assert.IsTrue(called); } - - class PipingDataTestObserver : IObserver - { - public Action OnUpdate; - - public void UpdateObserver() - { - if (OnUpdate != null) - { - OnUpdate(); - } - } - } } } \ No newline at end of file