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); }
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(); }
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); }