Ejemplo n.º 1
0
        public static Booking AdminMakeWithBookingNumber(AdminMakeBookingParameterSet parameterSet)
        {
            var booking = AdminMake(parameterSet);

            booking.BookingNumber = CalculateBookingNumber(parameterSet);
            return(booking);
        }
Ejemplo n.º 2
0
 public void SetUp()
 {
     _parameterSet         = new AdminMakeBookingParameterSet();
     _parameterSet.PickUp  = new DateTime(2090, 6, 11);
     _parameterSet.DropOff = new DateTime(2090, 6, 20);
     _parameterSet.Bus     = new Bus {
         Id = Guid.NewGuid(), Bookings = new List <Booking>()
     };
     _parameterSet.Forename             = "Brian";
     _parameterSet.Surname              = "Blue";
     _parameterSet.AddressLine1         = "9 Green Lane";
     _parameterSet.AddressLine2         = "Blackthrope";
     _parameterSet.Town                 = "Orangeborough";
     _parameterSet.County               = "Purpleshire";
     _parameterSet.PostCode             = "M11AA";
     _parameterSet.Email                = "*****@*****.**";
     _parameterSet.TelephoneNumber      = "07777777777";
     _parameterSet.IsMainDriver         = true;
     _parameterSet.DrivingLicenceNumber = "XXX99999";
     _parameterSet.NumberOfAdults       = 2;
     _parameterSet.NumberOfChildren     = 2;
     _parameterSet.TotalCost            = 999m;
     _parameterSet.Status               = BookingStatus.Confirmed;
     _parameterSet.CurrentUser          = new User {
         Id = Guid.NewGuid()
     };
 }
Ejemplo n.º 3
0
        public static Booking AdminMake(AdminMakeBookingParameterSet parameterSet)
        {
            var validationMessages = ValidateAdminMake(parameterSet);

            if (validationMessages.Any())
            {
                throw new ValidationException(validationMessages);
            }
            var booking = Make(parameterSet);

            booking._status    = parameterSet.Status.Value;    //Won't be null because will have been caught by exception above.
            booking._totalCost = parameterSet.TotalCost.Value; //Won't be null because will have been caught by exception above.
            return(booking);
        }
        public void SetUp()
        {
            var applicationUser = new User {
                Id = Guid.NewGuid(), Username = "******"
            };
            var guestRole = new Role {
                Id = Guid.NewGuid()
            };
            var voucher = new Voucher {
                Id = Guid.NewGuid(), Code = "ABC123", Discount = 10
            };

            _parameterSet                    = new AdminMakeBookingParameterSet();
            _parameterSet.PickUp             = new DateTime(2090, 6, 9);
            _parameterSet.DropOff            = new DateTime(2090, 6, 16);
            _parameterSet.Bus                = new Bus();
            _parameterSet.Bus.Id             = Guid.NewGuid();
            _parameterSet.Bus.Bookings       = new List <Booking>();
            _parameterSet.Bus.PricingPeriods = new List <PricingPeriod>();
            var pricingPeriod = new PricingPeriod();

            pricingPeriod.StartMonth         = 1;
            pricingPeriod.StartDay           = 1;
            pricingPeriod.EndMonth           = 12;
            pricingPeriod.EndDay             = 31;
            pricingPeriod.FridayToFridayRate = 600;
            _parameterSet.Bus.PricingPeriods.Add(pricingPeriod);
            _parameterSet.Forename             = "Barry";
            _parameterSet.Surname              = "Blue";
            _parameterSet.AddressLine1         = "99 Black Street";
            _parameterSet.AddressLine2         = "Purple District";
            _parameterSet.AddressLine3         = "Gray Area";
            _parameterSet.Town                 = "Greenville";
            _parameterSet.County               = "Redshire";
            _parameterSet.PostCode             = "M11AA";
            _parameterSet.Email                = "*****@*****.**";
            _parameterSet.TelephoneNumber      = "0123456789";
            _parameterSet.IsMainDriver         = true;
            _parameterSet.DrivingLicenceNumber = "XXX99999";
            _parameterSet.NumberOfAdults       = 2;
            _parameterSet.NumberOfChildren     = 0;
            _parameterSet.CurrentUser          = applicationUser;
            _parameterSet.Status               = BookingStatus.Confirmed;
            _parameterSet.TotalCost            = 999;
            _parameterSet.CreatedOn            = new DateTime(2013, 10, 1);
            _parameterSet.OtherBookingsToday   = new List <Booking>();
        }
Ejemplo n.º 5
0
        public static ValidationMessageCollection ValidateAdminMake(AdminMakeBookingParameterSet parameterSet)
        {
            var validationMessages = ValidateMake(parameterSet);

            if (!parameterSet.IsMainDriver)
            {
                if (string.IsNullOrEmpty(parameterSet.DriverForename))
                {
                    validationMessages.AddError("DriverForename", "The forename of the main driver is required.");
                }

                if (string.IsNullOrEmpty(parameterSet.DriverSurname))
                {
                    validationMessages.AddError("DriverSurname", "The surname of the main driver is required.");
                }
            }

            if (!parameterSet.Status.HasValue)
            {
                validationMessages.AddError("Status", "The status is required.");
            }

            if (!parameterSet.TotalCost.HasValue)
            {
                validationMessages.AddError("TotalCost", "Total cost is required.");
            }
            else
            {
                if (parameterSet.TotalCost.Value == 0 && !parameterSet.WarningsAcknowledged)
                {
                    validationMessages.AddWarning("Total cost is zero.");
                }
            }

            return(validationMessages);
        }
Ejemplo n.º 6
0
        public BookingServiceFactory()
        {
            Log = new Mock <ILog>();
            BookingRepository = new Mock <IBookingRepository>();
            Bus = new Bus {
                Id = Guid.NewGuid(), Bookings = new List <Booking>(), PricingPeriods = new Collection <PricingPeriod>()
            };
            ApplicationUser = new User {
                Id = Guid.NewGuid()
            };
            AdminUser = new User {
                Id = Guid.NewGuid()
            };
            Role = new Role {
                Id = Guid.NewGuid()
            };
            Voucher = new Voucher {
                Id = Guid.NewGuid(), Code = "ABC123"
            };

            Bus.PricingPeriods.Add(new PricingPeriod
            {
                Bus                = Bus,
                StartMonth         = 1,
                StartDay           = 1,
                EndMonth           = 12,
                EndDay             = 31,
                FridayToFridayRate = 1,
                FridayToMondayRate = 1,
                MondayToFridayRate = 1
            });

            CustomerMakeParameterSetMapper                             = new Mock <ICustomerMakeParameterSetMapper>();
            CustomerMakeBookingParameterSet                            = new CustomerMakeBookingParameterSet();
            CustomerMakeBookingParameterSet.PickUp                     = new DateTime(2090, 1, 2);
            CustomerMakeBookingParameterSet.DropOff                    = new DateTime(2090, 1, 6);
            CustomerMakeBookingParameterSet.Bus                        = Bus;
            CustomerMakeBookingParameterSet.Forename                   = "Barry";
            CustomerMakeBookingParameterSet.Surname                    = "Blue";
            CustomerMakeBookingParameterSet.AddressLine1               = "1 Orange Lane";
            CustomerMakeBookingParameterSet.AddressLine2               = "Address Line 2";
            CustomerMakeBookingParameterSet.AddressLine3               = "Address Line 3";
            CustomerMakeBookingParameterSet.Town                       = "Greenville";
            CustomerMakeBookingParameterSet.County                     = "Brownshire";
            CustomerMakeBookingParameterSet.PostCode                   = "M1 1AA";
            CustomerMakeBookingParameterSet.Email                      = "*****@*****.**";
            CustomerMakeBookingParameterSet.TelephoneNumber            = "0123456789";
            CustomerMakeBookingParameterSet.IsMainDriver               = true;
            CustomerMakeBookingParameterSet.DrivingLicenceNumber       = "ABC1234";
            CustomerMakeBookingParameterSet.NumberOfAdults             = 2;
            CustomerMakeBookingParameterSet.NumberOfChildren           = 2;
            CustomerMakeBookingParameterSet.VoucherCode                = Voucher.Code;
            CustomerMakeBookingParameterSet.Voucher                    = Voucher;
            CustomerMakeBookingParameterSet.RestrictionsAccepted       = true;
            CustomerMakeBookingParameterSet.TermsAndConditionsAccepted = true;
            CustomerMakeBookingParameterSet.CurrentUser                = ApplicationUser;
            CustomerMakeBookingParameterSet.CreatedOn                  = new DateTime(2013, 10, 1);

            CustomerMakeBookingParameterSet.OtherBookingsToday = new List <Booking>()
            {
                new Booking {
                    BookingNumber = "201310010001_Black"
                },
                new Booking {
                    BookingNumber = "201310010002_Green"
                },
            };

            CustomerMakeParameterSetMapper
            .Setup(x => x.Map(It.IsAny <CustomerMakeBookingRequest>()))
            .Returns(CustomerMakeBookingParameterSet);

            CustomerMakeParameterSetMapper
            .Setup(x => x.MapWithOtherBookingsToday(It.IsAny <CustomerMakeBookingRequest>()))
            .Returns(CustomerMakeBookingParameterSet);

            AdminMakeParameterSetMapper                       = new Mock <IAdminMakeParameterSetMapper>();
            AdminMakeBookingParameterSet                      = new AdminMakeBookingParameterSet();
            AdminMakeBookingParameterSet.PickUp               = new DateTime(2090, 1, 6);
            AdminMakeBookingParameterSet.DropOff              = new DateTime(2090, 1, 9);
            AdminMakeBookingParameterSet.Bus                  = Bus;
            AdminMakeBookingParameterSet.Forename             = "Gary";
            AdminMakeBookingParameterSet.Surname              = "Green";
            AdminMakeBookingParameterSet.AddressLine1         = "1 Black Lane";
            AdminMakeBookingParameterSet.AddressLine2         = "Address Line 2";
            AdminMakeBookingParameterSet.AddressLine3         = "Address Line 3";
            AdminMakeBookingParameterSet.Town                 = "Blueville";
            AdminMakeBookingParameterSet.County               = "Purpleshire";
            AdminMakeBookingParameterSet.PostCode             = "M1 1AA";
            AdminMakeBookingParameterSet.Email                = "*****@*****.**";
            AdminMakeBookingParameterSet.TelephoneNumber      = "0987654321";
            AdminMakeBookingParameterSet.IsMainDriver         = true;
            AdminMakeBookingParameterSet.DrivingLicenceNumber = "DEF5678";
            AdminMakeBookingParameterSet.NumberOfAdults       = 1;
            AdminMakeBookingParameterSet.NumberOfChildren     = 3;
            AdminMakeBookingParameterSet.CurrentUser          = AdminUser;
            AdminMakeBookingParameterSet.CreatedOn            = new DateTime(2013, 10, 2);
            AdminMakeBookingParameterSet.WarningsAcknowledged = true;
            AdminMakeBookingParameterSet.Status               = BookingStatus.Confirmed;
            AdminMakeBookingParameterSet.TotalCost            = 888m;

            AdminMakeBookingParameterSet.OtherBookingsToday = new List <Booking>()
            {
                new Booking {
                    BookingNumber = "201310010001_Black"
                },
                new Booking {
                    BookingNumber = "201310010002_Green"
                },
            };

            AdminMakeParameterSetMapper
            .Setup(x => x.Map(It.IsAny <AdminMakeBookingRequest>()))
            .Returns(AdminMakeBookingParameterSet);

            AdminMakeParameterSetMapper
            .Setup(x => x.MapWithOtherBookingsToday(It.IsAny <AdminMakeBookingRequest>()))
            .Returns(AdminMakeBookingParameterSet);
        }