示例#1
0
 public void BeforeEach()
 {
     fixture = new Fixture().Customize(new AutoMoqCustomization());
     fixture.Customize <Spot>(c => c
                              .Without(x => x.Region));
     fixture.Customize <Lodgment>(c => c
                                  .Without(x => x.Spot)
                                  .Without(y => y.Bookings)
                                  .Without(y => y.Reviews));
     fixture.Customize <CategorySpot>(c => c
                                      .Without(x => x.Category)
                                      .Without(x => x.Spot));
     moqRepository              = new Mock <ILodgmentsRepository>(MockBehavior.Strict);
     moqSpotsService            = new Mock <ISpotsService>(MockBehavior.Strict);
     moqLodgmentCalculator      = new Mock <ILodgmentCalculator>(MockBehavior.Strict);
     moqStorageService          = new Mock <IStorageService>(MockBehavior.Strict);
     moqReviewsService          = new Mock <IReviewsService>(MockBehavior.Strict);
     moqBookingsService         = new Mock <IBookingsService>(MockBehavior.Strict);
     expectedLodgment           = fixture.Create <Lodgment>();
     expectedLodgment.IsActive  = true;
     expectedLodgment.IsDeleted = false;
     lodgment        = fixture.Create <Lodgment>();
     existLodgment   = fixture.Create <Lodgment>();
     existSpot       = fixture.Create <Spot>();
     spot            = fixture.Create <Spot>();
     spotId          = fixture.Create <int>();
     lodgmentId      = fixture.Create <int>();
     totalStayPrice  = fixture.Create <double>();
     paging          = fixture.Create <PagingModel>();
     fileModel       = fixture.Create <FileModel>();
     expectedUrls    = fixture.CreateMany <string>().ToList();
     lodgmentOptions = new LodgmentOptionsModel()
     {
         CheckIn          = DateTime.Now.Ticks,
         CheckOut         = DateTime.Now.Ticks + (TimeSpan.TicksPerDay * fixture.Create <int>()),
         AmountOfAdults   = fixture.Create <byte>(),
         AmountOfUnderAge = fixture.Create <byte>(),
         AmountOfBabies   = fixture.Create <byte>()
     };
     expectedPaginatedLodgments = fixture.Create <PaginatedModel <Lodgment> >();
     service = new LodgmentsService(moqRepository.Object, moqLodgmentCalculator.Object,
                                    moqStorageService.Object, moqReviewsService.Object, moqBookingsService.Object);
 }
示例#2
0
 public void BeforeEach()
 {
     InitializeComponents();
     fixture.Customize <Lodgment>(c => c
                                  .Without(x => x.Spot)
                                  .Without((y => y.Reviews)));
     fixture.Customize <BookingStatus>(c => c
                                       .Without(x => x.Bookings));
     fixture.Customize <Booking>(c => c
                                 .Without(b => b.Lodgment));
     moqService = new Mock <ILodgmentsService>(MockBehavior.Strict);
     controller = new LodgmentsController(moqService.Object);
     controller.ControllerContext = controllerContext;
     expectedLodgment             = fixture.Create <Lodgment>();
     lodgmentOptions          = fixture.Create <LodgmentOptionsModel>();
     lodgmentId               = fixture.Create <int>();
     bookingConfirmationModel = fixture.Create <BookingConfirmationModel>();
     expectedBooking          = fixture.Create <Booking>();
     expectedLodgments        = fixture.CreateMany <Lodgment>();
     paginatedLodgments       = fixture.Create <PaginatedModel <Lodgment> >();
     paging       = fixture.Create <PagingModel>();
     fileModel    = fixture.Create <FileModel>();
     expectedUrls = fixture.CreateMany <string>().ToList();
 }
示例#3
0
        public async Task <double> CalculateTotalStayAsync(LodgmentOptionsModel lodgmentOptionsModel, Lodgment lodgment)
        {
            await Task.Yield();

            double totalPrice = 0;

            if (lodgmentOptionsModel != null)
            {
                ValidateLodgmentDatesRange(lodgmentOptionsModel);
                var    timeSpan = new TimeSpan(lodgmentOptionsModel.CheckOut - lodgmentOptionsModel.CheckIn);
                double price    = 0;

                if (HasGuests(lodgmentOptionsModel))
                {
                    price = CalculatePriceByGuests(lodgmentOptionsModel, lodgment.Price);
                }
                else
                {
                    price = CalculatePriceWithoutGuests(lodgment.Price);
                }

                totalPrice = price * Math.Floor(timeSpan.TotalDays);
            }

            return(totalPrice);
        }