diff options
| author | mokhan <mokhan@da190166-9cfc-4ee1-ae03-434a172be219> | 2009-02-21 21:44:27 +0000 |
|---|---|---|
| committer | mokhan <mokhan@da190166-9cfc-4ee1-ae03-434a172be219> | 2009-02-21 21:44:27 +0000 |
| commit | 1dfdccb8118aeaa3cd844ac8de2a672c93312166 (patch) | |
| tree | 4b19e7f816ab1019f180a46b68572af4b66fe4bc /slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs | |
| parent | 42d66bcab8262c7b8b2452615df535e694a3ec1c (diff) | |
git-svn-id: http://svn.xp-dev.com/svn/mokhan-sait@2 da190166-9cfc-4ee1-ae03-434a172be219
Diffstat (limited to 'slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs')
| -rw-r--r-- | slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs b/slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs new file mode 100644 index 0000000..300a441 --- /dev/null +++ b/slips/src/test/Marina.Test/Unit/Domain/SlipTest.cs @@ -0,0 +1,78 @@ +using System;
+using Marina.Domain;
+using Marina.Domain.Exceptions;
+using Marina.Domain.Interfaces;
+using Marina.Test.Utility;
+using MbUnit.Framework;
+
+namespace Marina.Test.Unit.Domain {
+ [TestFixture]
+ public class SlipTest {
+ public ISlip CreateSUT() {
+ return new Slip( -1, ObjectMother.Dock( ), 100, 100, false );
+ }
+
+ [Test]
+ public void Should_not_be_leased_to_anyone() {
+ Assert.IsFalse( CreateSUT( ).IsLeased( ) );
+ }
+
+ //[Test]
+ //public void Should_be_able_to_lease_to_a_customer()
+ //{
+ // ICustomer customer = ObjectMother.Customer();
+ // ISlip slip = CreateSUT();
+ // ILeaseDuration durationOfLease = LeaseDurations.Daily;
+
+ // ISlipLease lease = slip.LeaseTo(customer, durationOfLease);
+
+ // Assert.AreEqual(customer, lease.Owner());
+ // Assert.AreEqual(slip, lease.Slip());
+ // Assert.AreEqual(durationOfLease, lease.Duration());
+ // Assert.AreEqual(DateTime.Now.Date, lease.StartDate());
+ //}
+
+ [Test]
+ public void Lease_should_expire_at_11_am_the_following_day() {
+ DateTime elevenAmTomorrow = DateTime.Now.AddDays( 1 ).Date.AddHours( 11 );
+ ISlipLease lease = CreateSUT( ).LeaseTo( ObjectMother.Customer( ), LeaseDurations.Daily );
+ Assert.AreEqual( elevenAmTomorrow, lease.ExpiryDate( ) );
+ }
+
+ [Test]
+ public void Lease_should_expire_in_seven_days_on_the_eleventh_hour() {
+ DateTime oneWeekFromToday = DateTime.Now.AddDays( 7 ).Date.AddHours( 11 );
+ ISlipLease lease = CreateSUT( ).LeaseTo( ObjectMother.Customer( ), LeaseDurations.Weekly );
+ Assert.AreEqual( oneWeekFromToday, lease.ExpiryDate( ) );
+ }
+
+ [Test]
+ public void Lease_should_expire_in_thirty_days_on_the_eleventh_hour() {
+ DateTime oneMonthFromToday = DateTime.Now.AddDays( 30 ).Date.AddHours( 11 );
+ ISlipLease lease = CreateSUT( ).LeaseTo( ObjectMother.Customer( ), LeaseDurations.Monthly );
+ Assert.AreEqual( oneMonthFromToday, lease.ExpiryDate( ) );
+ }
+
+ [Test]
+ public void Lease_should_expire_in_365_days_on_the_eleventh_hour() {
+ DateTime oneYearFromToday = DateTime.Now.AddDays( 365 ).Date.AddHours( 11 );
+ ISlipLease lease = CreateSUT( ).LeaseTo( ObjectMother.Customer( ), LeaseDurations.Yearly );
+ Assert.AreEqual( oneYearFromToday, lease.ExpiryDate( ) );
+ }
+
+ [Test]
+ public void Should_be_leased_to_an_owner() {
+ ISlip slip = CreateSUT( );
+ slip.LeaseTo( ObjectMother.Customer( ), LeaseDurations.Yearly );
+ Assert.IsTrue( slip.IsLeased( ), "Should be leased to an owner" );
+ }
+
+ [Test]
+ [ExpectedException( typeof( SlipIsAlreadyLeasedException ) )]
+ public void Should_return_current_lease_if_it_is_already_leased_to_a_customer() {
+ ISlip slip = CreateSUT( );
+ slip.LeaseTo( ObjectMother.Customer( ), LeaseDurations.Yearly );
+ slip.LeaseTo( ObjectMother.Customer( ), LeaseDurations.Weekly );
+ }
+ }
+}
\ No newline at end of file |
