summaryrefslogtreecommitdiff
path: root/DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs')
-rw-r--r--DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs52
1 files changed, 52 insertions, 0 deletions
diff --git a/DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs b/DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs
new file mode 100644
index 0000000..4f999e5
--- /dev/null
+++ b/DesignPatterns/src/test/DesignPatterns.Test/MoneyTest.cs
@@ -0,0 +1,52 @@
+using DesignPatterns.Factory;
+using MbUnit.Framework;
+
+namespace DesignPatterns.Test {
+ [TestFixture]
+ public class MoneyTest {
+ [Test]
+ public void Should_Be_Equal( ) {
+ Assert.IsTrue( new Money( 5 ).Equals( new Money( 5 ) ) );
+ }
+
+ [Test]
+ public void _Should_Be_Able_To_Add_Two_Monies_Together( ) {
+ IMoney sum = new Money( 5 ).Add( new Money( 5 ) );
+ Assert.IsTrue( sum.Equals( new Money( 10 ) ) );
+ }
+
+ [Test]
+ public void _Should_Be_Able_To_Subtract_Two_Monies( ) {
+ IMoney balance = new Money( 5 ).Subtract( new Money( 3 ) );
+ Assert.IsTrue( balance.Equals( new Money( 2 ) ), "Should have a 2 monies" );
+ }
+
+ [Test]
+ public void _Should_Be_Able_To_Subtract_Many_Monies( ) {
+ IMoney balance = new Money( 5 ).Subtract( new Money( 3 ) ).Subtract( new Money( 1 ) );
+ Assert.IsTrue( balance.Equals( new Money( 1 ) ), "Should have 1 monies" );
+ }
+
+ [Test]
+ public void Should_Have_A_Currency( ) {
+ new Money( 5, Currency.Canadian );
+ }
+
+ [Test]
+ [ExpectedException( typeof( CannotAddMoniesException ) )]
+ public void Should_Only_Add_Monies_Of_The_Same_Currency( ) {
+ new Money( 5, Currency.Canadian ).Add( new Money( 5, Currency.American ) );
+ }
+
+ [Test]
+ [ExpectedException( typeof( NegativeMoneyException ) )]
+ public void Should_Not_Be_Able_To_Construct_Negative_Money( ) {
+ new Money( -5 );
+ }
+
+ [Test]
+ public void Should_Return_5_Monies( ) {
+ Assert.IsTrue( new Money( 5 ).Equals( new Money( 5 ).Add( null ) ) );
+ }
+ }
+} \ No newline at end of file