Index: test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationExceptionTest.cs
===================================================================
diff -u
--- test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationExceptionTest.cs (revision 0)
+++ test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationExceptionTest.cs (revision 17ff1f55ba16c96a71a4476845340e38a9fce99f)
@@ -0,0 +1,52 @@
+using System;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingCalculationExceptionTest
+ {
+ [Test]
+ public void DefaultConstructor_InnerExceptionNullAndMessageDefault()
+ {
+ // Setup
+ var expectedMessage = String.Format("Exception of type '{0}' was thrown.", typeof(PipingCalculationException).FullName);
+
+ // Call
+ var exception = new PipingCalculationException();
+
+ // Assert
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessage_InnerExceptionNullAndMessageSetToCustom()
+ {
+ // Setup
+ var expectedMessage ="Some exception message";
+
+ // Call
+ var exception = new PipingCalculationException(expectedMessage);
+
+ // Assert
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessageAndInnerException_InnerExceptionSetAndMessageSetToCustom()
+ {
+ // Setup
+ var expectedMessage = "Some exception message";
+ var expectedInnerException = new Exception();
+
+ // Call
+ var exception = new PipingCalculationException(expectedMessage, expectedInnerException);
+
+ // Assert
+ Assert.AreSame(expectedInnerException, exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+ }
+}
\ No newline at end of file
Index: test/Plugins/Wti/Wti.Calculation.Test/Wti.Calculation.Test.csproj
===================================================================
diff -u -ra3b93c36c2051bd6112327bff0d836ae7883737d -r17ff1f55ba16c96a71a4476845340e38a9fce99f
--- test/Plugins/Wti/Wti.Calculation.Test/Wti.Calculation.Test.csproj (.../Wti.Calculation.Test.csproj) (revision a3b93c36c2051bd6112327bff0d836ae7883737d)
+++ test/Plugins/Wti/Wti.Calculation.Test/Wti.Calculation.Test.csproj (.../Wti.Calculation.Test.csproj) (revision 17ff1f55ba16c96a71a4476845340e38a9fce99f)
@@ -42,6 +42,7 @@
+
Index: test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs
===================================================================
diff -u -ra8605fbec9c103f6b54775d479ec3c6078b484a2 -r17ff1f55ba16c96a71a4476845340e38a9fce99f
--- test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs (.../PipingDataTest.cs) (revision a8605fbec9c103f6b54775d479ec3c6078b484a2)
+++ test/Plugins/Wti/Wti.Data.Test/PipingDataTest.cs (.../PipingDataTest.cs) (revision 17ff1f55ba16c96a71a4476845340e38a9fce99f)
@@ -136,44 +136,5 @@
// Call & Assert
pipingData.Detach(observer);
}
-
- [Test]
- public void Output_SetToNullWithListeners_ListenersNotified()
- {
- // Setup
- var observer = mockRepository.StrictMock();
- observer.Expect(o => o.UpdateObserver());
- mockRepository.ReplayAll();
-
- var pipingData = new PipingData();
- pipingData.Attach(observer);
-
- // Call & Assert
- pipingData.Output = null;
- }
-
- [Test]
- public void Output_SetToNewOutputWithListeners_ListenersNotified()
- {
- // Setup
- var random = new Random(22);
- var pipingData = new PipingData();
-
- var observer = mockRepository.StrictMock();
- observer.Expect(o => o.UpdateObserver());
-
- pipingData.Attach(observer);
- mockRepository.ReplayAll();
-
- // Call & Assert
- pipingData.Output = new PipingOutput(
- random.NextDouble(),
- random.NextDouble(),
- random.NextDouble(),
- random.NextDouble(),
- random.NextDouble(),
- random.NextDouble()
- );
- }
}
}
\ No newline at end of file
Index: test/Plugins/Wti/Wti.Data.Test/PipingFailureMechanismTest.cs
===================================================================
diff -u -rb16cc39381e4275844ad330e0bc56ede52aa5b88 -r17ff1f55ba16c96a71a4476845340e38a9fce99f
--- test/Plugins/Wti/Wti.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision b16cc39381e4275844ad330e0bc56ede52aa5b88)
+++ test/Plugins/Wti/Wti.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 17ff1f55ba16c96a71a4476845340e38a9fce99f)
@@ -1,10 +1,20 @@
-using NUnit.Framework;
+using DelftTools.Shell.Core;
+using NUnit.Framework;
+using Rhino.Mocks;
namespace Wti.Data.Test
{
[TestFixture]
public class PipingFailureMechanismTest
{
+ private MockRepository mockRepository;
+
+ [SetUp]
+ public void SetUp()
+ {
+ mockRepository = new MockRepository();
+ }
+
[Test]
public void DefaultConstructor_ExpectedValues()
{
@@ -15,5 +25,94 @@
CollectionAssert.IsEmpty(piping.SurfaceLines);
Assert.IsNotNull(piping.PipingData);
}
+
+ [Test]
+ public void Notify_SingleListenerAttached_ListenerIsNotified()
+ {
+ // Setup
+ var observer = mockRepository.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+
+ mockRepository.ReplayAll();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ pipingFailureMechanism.Attach(observer);
+
+ // Call & Assert
+ pipingFailureMechanism.NotifyObservers();
+ }
+
+ [Test]
+ public void Notify_SingleListenerAttachedAndDeattached_ListenerIsNotNotified()
+ {
+ // Setup
+ var observer = mockRepository.StrictMock();
+ observer.Expect(o => o.UpdateObserver()).Repeat.Never();
+ mockRepository.ReplayAll();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ pipingFailureMechanism.Attach(observer);
+ pipingFailureMechanism.Detach(observer);
+
+ // Call & Assert
+ pipingFailureMechanism.NotifyObservers();
+ }
+
+ [Test]
+ public void Notify_TwoListenersAttached_BothAreNotified()
+ {
+ // Setup
+ var observerA = mockRepository.StrictMock();
+ observerA.Expect(o => o.UpdateObserver());
+
+ var observerB = mockRepository.StrictMock();
+ observerB.Expect(o => o.UpdateObserver());
+
+ mockRepository.ReplayAll();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ pipingFailureMechanism.Attach(observerA);
+ pipingFailureMechanism.Attach(observerB);
+
+ // Call & Assert
+ pipingFailureMechanism.NotifyObservers();
+ }
+
+ [Test]
+ public void Notify_TwoListenersAttachedOneDetached_InvokedOnce()
+ {
+ // Setup
+ var observerA = mockRepository.StrictMock();
+ observerA.Expect(o => o.UpdateObserver()).Repeat.Never();
+
+ var observerB = mockRepository.StrictMock();
+ observerB.Expect(o => o.UpdateObserver());
+
+ mockRepository.ReplayAll();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ pipingFailureMechanism.Attach(observerA);
+ pipingFailureMechanism.Attach(observerB);
+ pipingFailureMechanism.Detach(observerA);
+
+ // Call & Assert
+ pipingFailureMechanism.NotifyObservers();
+ }
+
+ [Test]
+ public void Detach_DetachNonAttachedObserver_ThrowsNoException()
+ {
+ // Setup
+ var observer = mockRepository.StrictMock();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ // Call & Assert
+ pipingFailureMechanism.Detach(observer);
+ }
}
}
\ No newline at end of file