예제 #1
0
파일: LeaseTasks.cs 프로젝트: xlgmokha/sait
        public DisplayResponseLineDTO RequestLeaseUsing(SubmitLeaseRequestDTO request)
        {
            ICustomer customer = _customers.FindBy(request.CustomerId);

            try {
                customer.Lease(_slips.FindBy(request.SlipId), LeaseDurations.FindBy(request.Duration));
                _customers.Save(customer);
                return(new DisplayResponseLineDTO("Success!"));
            }
            catch (SlipIsAlreadyLeasedException) {
                return(new DisplayResponseLineDTO("Slip is already leased!"));
            }
        }
예제 #2
0
        public void Should_lookup_customer_from_repository_when_requesting_a_lease()
        {
            long customerId = 87;
            long slipId     = 32;
            SubmitLeaseRequestDTO request  = new SubmitLeaseRequestDTO(customerId, slipId, "daily");
            ICustomer             customer = _mockery.DynamicMock <ICustomer>( );

            using (_mockery.Record( )) {
                Expect.Call(_customers.FindBy(customerId)).Return(customer);
            }

            using (_mockery.Playback( )) {
                CreateSUT( ).RequestLeaseUsing(request);
            }
        }
예제 #3
0
        public void Should_lookup_slip_from_repository_when_requesting_a_lease(long slipId)
        {
            long customerId = 87;
            SubmitLeaseRequestDTO request = new SubmitLeaseRequestDTO(customerId, slipId, "weekly");
            ISlip     slip     = _mockery.DynamicMock <ISlip>( );
            ICustomer customer = _mockery.DynamicMock <ICustomer>( );

            using (_mockery.Record( )) {
                SetupResult.For(_customers.FindBy(0)).IgnoreArguments( ).Return(customer);
                Expect.Call(_slips.FindBy(slipId)).Return(slip);
            }

            using (_mockery.Playback( )) {
                CreateSUT( ).RequestLeaseUsing(request);
            }
        }
예제 #4
0
        public void Should_display_response_from_lease_request_on_the_view()
        {
            SubmitLeaseRequestDTO  request  = new SubmitLeaseRequestDTO(1, 1, "weekly");
            DisplayResponseLineDTO response = new DisplayResponseLineDTO("");

            using (_mockery.Record( )) {
                SetupResult
                .For(_mockLeaseTasks.RequestLeaseUsing(request))
                .IgnoreArguments( )
                .Return(response);
                _mockView.Display(response);
            }

            using (_mockery.Playback( )) {
                CreateSUT( ).SubmitLeaseRequest( );
            }
        }
예제 #5
0
        public void Should_save_lease_slip_when_customer_submits_a_request()
        {
            long customerId = 2;
            long slipId     = 3;

            SubmitLeaseRequestDTO  request  = new SubmitLeaseRequestDTO(customerId, slipId, "weekly");
            DisplayResponseLineDTO response = new DisplayResponseLineDTO("");

            using (_mockery.Record( )) {
                SetupResult.For(_mockMapper.MapFrom(_mockRequest)).Return(request);
                Expect.Call(_mockLeaseTasks.RequestLeaseUsing(request)).Return(response);
            }

            using (_mockery.Playback( )) {
                CreateSUT( ).SubmitLeaseRequest( );
            }
        }
예제 #6
0
        public void customer_should_attempt_to_lease_slip()
        {
            long customerId = 87;
            long slipId     = 32;

            string duration = "weekly";
            SubmitLeaseRequestDTO request = new SubmitLeaseRequestDTO(customerId, slipId, duration);
            ISlip     slip     = _mockery.DynamicMock <ISlip>( );
            ICustomer customer = _mockery.DynamicMock <ICustomer>( );

            using (_mockery.Record( )) {
                SetupResult.For(_customers.FindBy(customerId)).Return(customer);
                SetupResult.For(_slips.FindBy(slipId)).Return(slip);

                customer.Lease(slip, LeaseDurations.FindBy(duration));
            }

            using (_mockery.Playback( )) {
                CreateSUT( ).RequestLeaseUsing(request);
            }
        }
예제 #7
0
        public void Should_return_error_message_if_the_slip_is_already_leased()
        {
            ICustomer customer = _mockery.DynamicMock <ICustomer>( );

            using (_mockery.Record( )) {
                SetupResult
                .For(_customers.FindBy(0))
                .IgnoreArguments( )
                .Return(customer);

                customer.Lease(null, null);
                LastCall
                .IgnoreArguments( )
                .Throw(new SlipIsAlreadyLeasedException( ));
            }

            using (_mockery.Playback( )) {
                SubmitLeaseRequestDTO  request  = new SubmitLeaseRequestDTO(1, 2, "weekly");
                DisplayResponseLineDTO response = CreateSUT( ).RequestLeaseUsing(request);
                Assert.AreEqual("Slip is already leased!", response.Message);
            }
        }
예제 #8
0
 public DisplayResponseLineDTO RequestLeaseUsing(SubmitLeaseRequestDTO request)
 {
     return(_underlyingTask.RequestLeaseUsing(request));
 }