예제 #1
0
        public void ReviewCreatesCorrectRequest()
        {
            CustomerMakeBookingRequest request = null;

            _bookingControllerFactory.BookingService
            .Setup(x => x.SummarizeCustomerMake(It.IsAny <CustomerMakeBookingRequest>()))
            .Callback(delegate(CustomerMakeBookingRequest x) { request = x; })
            .Returns(_booking.Object);

            _bookingControllerFactory.GetController().Review(_inViewModel);
            Assert.That(request.BusId, Is.EqualTo(_inViewModel.BusId));
            Assert.That(request.PickUp, Is.EqualTo(_inViewModel.PickUp));
            Assert.That(request.DropOff, Is.EqualTo(_inViewModel.DropOff));
            Assert.That(request.Forename, Is.EqualTo(_inViewModel.Forename));
            Assert.That(request.Surname, Is.EqualTo(_inViewModel.Surname));
            Assert.That(request.AddressLine1, Is.EqualTo(_inViewModel.AddressLine1));
            Assert.That(request.AddressLine2, Is.EqualTo(_inViewModel.AddressLine2));
            Assert.That(request.AddressLine3, Is.EqualTo(_inViewModel.AddressLine3));
            Assert.That(request.Town, Is.EqualTo(_inViewModel.Town));
            Assert.That(request.County, Is.EqualTo(_inViewModel.County));
            Assert.That(request.PostCode, Is.EqualTo(_inViewModel.PostCode));
            Assert.That(request.Email, Is.EqualTo(_inViewModel.Email));
            Assert.That(request.TelephoneNumber, Is.EqualTo(_inViewModel.TelephoneNumber));
            Assert.That(request.IsMainDriver, Is.EqualTo(_inViewModel.IsMainDriver));
            Assert.That(request.DrivingLicenceNumber, Is.EqualTo(_inViewModel.DrivingLicenceNumber));
            Assert.That(request.DriverForename, Is.EqualTo(_inViewModel.DriverForename));
            Assert.That(request.DriverSurname, Is.EqualTo(_inViewModel.DriverSurname));
            Assert.That(request.NumberOfAdults, Is.EqualTo(_inViewModel.NumberOfAdults));
            Assert.That(request.NumberOfChildren, Is.EqualTo(_inViewModel.NumberOfChildren));
            Assert.That(request.VoucherCode, Is.EqualTo(_inViewModel.VoucherCode));
        }
예제 #2
0
        public static CustomerMakeBookingRequest Map(MakeViewModel viewModel)
        {
            var request = new CustomerMakeBookingRequest();

            request.BusId                      = viewModel.BusId;
            request.PickUp                     = viewModel.PickUp.HasValue ? viewModel.PickUp.Value : (DateTime?)null;
            request.DropOff                    = viewModel.DropOff.HasValue ? viewModel.DropOff.Value : (DateTime?)null;
            request.Forename                   = viewModel.Forename;
            request.Surname                    = viewModel.Surname;
            request.AddressLine1               = viewModel.AddressLine1;
            request.AddressLine2               = viewModel.AddressLine2;
            request.AddressLine3               = viewModel.AddressLine3;
            request.Town                       = viewModel.Town;
            request.County                     = viewModel.County;
            request.PostCode                   = viewModel.PostCode;
            request.Email                      = viewModel.Email;
            request.TelephoneNumber            = viewModel.TelephoneNumber;
            request.IsMainDriver               = viewModel.IsMainDriver;
            request.DrivingLicenceNumber       = viewModel.DrivingLicenceNumber;
            request.DriverForename             = viewModel.DriverForename;
            request.DriverSurname              = viewModel.DriverSurname;
            request.NumberOfAdults             = viewModel.NumberOfAdults;
            request.NumberOfChildren           = viewModel.NumberOfChildren;
            request.VoucherCode                = viewModel.VoucherCode;
            request.TermsAndConditionsAccepted = viewModel.TermsAndConditionsAccepted;
            request.RestrictionsAccepted       = viewModel.RestrictionsAccepted;
            return(request);
        }
예제 #3
0
        public CustomerMakeBookingParameterSet MapWithOtherBookingsToday(CustomerMakeBookingRequest request)
        {
            var parameterSet = Map(request);

            parameterSet.OtherBookingsToday = _bookingRepository.GetByDate(parameterSet.CreatedOn);
            return(parameterSet);
        }
예제 #4
0
        public Booking SummarizeCustomerMake(CustomerMakeBookingRequest request)
        {
            _log.Add(request);
            var parameterSet = _customerMakePendingParameterSetMapper.Map(request);
            var booking      = Booking.CustomerMake(parameterSet);

            return(booking);
        }
예제 #5
0
        public ValidationMessageCollection ValidateCustomerMake(CustomerMakeBookingRequest request)
        {
            _log.Add(request);
            var parameterSet       = _customerMakePendingParameterSetMapper.Map(request);
            var validationMessages = Booking.ValidateCustomerMake(parameterSet);

            return(validationMessages);
        }
        public void CustomerMakeReturnsCorrectResult()
        {
            var bookingServiceFactory = new BookingServiceFactory();
            var bookingService        = bookingServiceFactory.GetService();
            var request       = new CustomerMakeBookingRequest();
            var bookingNumber = bookingService.CustomerMake(request);

            Assert.That(bookingNumber, Is.EqualTo("201310010003_Blue"));
        }
        public void SummarizeCustomerMakeCallsCorrectMethods()
        {
            var bookingServiceFactory = new BookingServiceFactory();
            var bookingService        = bookingServiceFactory.GetService();
            var request = new CustomerMakeBookingRequest();
            var booking = bookingService.SummarizeCustomerMake(request);

            bookingServiceFactory.CustomerMakeParameterSetMapper.Verify(x => x.Map(request), Times.Once());
        }
예제 #8
0
        public string CustomerMake(CustomerMakeBookingRequest request)
        {
            _log.Add(request);
            var parameterSet = _customerMakePendingParameterSetMapper.MapWithOtherBookingsToday(request);
            var booking      = Booking.CustomerMakeWithBookingNumber(parameterSet);

            _bookingRepository.Save(booking);
            return(booking.BookingNumber);
        }
        public void CustomerMakeCallsCorrectMethods()
        {
            var bookingServiceFactory = new BookingServiceFactory();
            var bookingService        = bookingServiceFactory.GetService();
            var request = new CustomerMakeBookingRequest();

            bookingService.CustomerMake(request);
            bookingServiceFactory.CustomerMakeParameterSetMapper.Verify(x => x.MapWithOtherBookingsToday(request), Times.Once());
            bookingServiceFactory.BookingRepository.Verify(x => x.Save(It.IsAny <Booking>()), Times.Once());
        }
예제 #10
0
        public CustomerMakeBookingParameterSet Map(CustomerMakeBookingRequest request)
        {
            var parameterSet = PropertyMapper.MapMatchingProperties <CustomerMakeBookingRequest, CustomerMakeBookingParameterSet>(request);

            parameterSet.CreatedOn   = DateTime.Now;
            parameterSet.Bus         = _busRepository.GetById(request.BusId);
            parameterSet.Voucher     = !string.IsNullOrEmpty(request.VoucherCode) ? _voucherRepository.GetByCode(request.VoucherCode) : null;
            parameterSet.CurrentUser = _userRepository.GetByUsername("Application");
            return(parameterSet);
        }
예제 #11
0
        public void SetUp()
        {
            _busRepository     = new Mock <IBusRepository>();
            _userRepository    = new Mock <IUserRepository>();
            _voucherRepository = new Mock <IVoucherRepository>();
            _bookingRepository = new Mock <IBookingRepository>();
            _bus = new Bus {
                Id = Guid.NewGuid()
            };
            _user = new User {
                Id = Guid.NewGuid()
            };
            _voucher = new Voucher {
                Id = Guid.NewGuid(), Code = "ABC123"
            };

            _busRepository
            .Setup(x => x.GetById(_bus.Id.Value))
            .Returns(_bus);

            _userRepository
            .Setup(x => x.GetByUsername("Application"))
            .Returns(_user);

            _voucherRepository
            .Setup(x => x.GetByCode(_voucher.Code))
            .Returns(_voucher);

            _bookingRepository
            .Setup(x => x.GetByDate(It.IsAny <DateTime>()))
            .Returns(new List <Booking>()
            {
                new Booking {
                    BookingNumber = "Book01"
                },
                new Booking {
                    BookingNumber = "Book02"
                }
            });

            _mapper = new CustomerMakeParameterSetMapper(
                _busRepository.Object,
                _userRepository.Object,
                _voucherRepository.Object,
                _bookingRepository.Object);

            _request                  = new CustomerMakeBookingRequest();
            _request.BusId            = _bus.Id.Value;
            _request.PickUp           = new DateTime(2090, 10, 1);
            _request.DropOff          = new DateTime(2090, 10, 8);
            _request.Forename         = "Barry";
            _request.Surname          = "Blue";
            _request.AddressLine1     = "1 Orange Lane";
            _request.AddressLine2     = "Address Line 2";
            _request.AddressLine3     = "Address Line 3";
            _request.Town             = "Greenville";
            _request.County           = "Brownshire";
            _request.PostCode         = "M1 1AA";
            _request.Email            = "*****@*****.**";
            _request.TelephoneNumber  = "0123456789";
            _request.IsMainDriver     = true;
            _request.NumberOfAdults   = 2;
            _request.NumberOfChildren = 2;
            _request.VoucherCode      = _voucher.Code;
        }