Beispiel #1
0
        public void ReserveBook_if_user_has_3_reservations_cannot_reserve()
        {
            int memberId    = 1;
            int bookId      = 1;
            var reserveFrom = DateTimeOffset.Parse("02/01/2010");
            var reserveTo   = DateTimeOffset.Parse("05/01/2010");

            var book = new Book
            {
                Id = bookId
            };

            var member = new Member
            {
                Id           = memberId,
                Reservations = new List <Reservation>
                {
                    new Reservation {
                        From = DateTimeOffset.Parse("05/01/2040")
                    },
                    new Reservation {
                        From = DateTimeOffset.Parse("05/01/2040")
                    },
                    new Reservation {
                        From = DateTimeOffset.Parse("05/01/2040")
                    }
                }
            };

            var bookRepositoryMock = new Mock <IBookRepository>();

            bookRepositoryMock.Setup(r => r.Get(bookId))
            .Returns(book);

            var memberRepositoryMock = new Mock <IMemberRepository>();

            memberRepositoryMock.Setup(r => r.Get(memberId))
            .Returns(member);

            var bookReservationService = new BookReservationService(bookRepositoryMock.Object, memberRepositoryMock.Object);

            var reservation = bookReservationService.ReserveBook(memberId, bookId, reserveFrom, reserveTo);

            member.Reminders.Should().HaveCount(0);
            member.Reservations.Should().HaveCount(3);

            reservation.Should().BeNull();
        }
Beispiel #2
0
        public void OnPost()
        {
            if (ModelState.IsValid)
            {
                var calculatedDays = BookReservationService.CalcuteBusinessDays(BookReservationViewModel.CheckOutDate, BookReservationViewModel.ReturnDate, BookReservationViewModel.CountryId);
                BookReservationViewModel.BusinessDay = calculatedDays;
                if (calculatedDays > 10)
                {
                    var result = bookReservationService.CalculatePenalty(BookReservationViewModel.CountryId, calculatedDays);
                    BookReservationViewModel.PenaltyAmount = result.Item1;
                    BookReservationViewModel.CurrencyCode  = result.Item2;
                }
            }

            CountryList = bookReservationService.PopulateCountry(BookReservationViewModel.CountryId).ToList();
        }
Beispiel #3
0
        public void ReserveBook_if_book_available_reserve_and_set_reminder()
        {
            int memberId    = 1;
            int bookId      = 1;
            var reserveFrom = DateTimeOffset.Parse("01/01/2010");
            var reserveTo   = DateTimeOffset.Parse("05/01/2010");

            var book = new Book
            {
                Id = bookId
            };

            var member = new Member
            {
                Id = memberId
            };

            var bookRepositoryMock = new Mock <IBookRepository>();

            bookRepositoryMock.Setup(r => r.Get(bookId))
            .Returns(book);

            var memberRepositoryMock = new Mock <IMemberRepository>();

            memberRepositoryMock.Setup(r => r.Get(memberId))
            .Returns(member);
            memberRepositoryMock.Setup(r => r.AddReservation(It.IsAny <Reservation>()));

            var bookReservationService = new BookReservationService(bookRepositoryMock.Object, memberRepositoryMock.Object);

            var reservation = bookReservationService.ReserveBook(memberId, bookId, reserveFrom, reserveTo);

            member.Reminders.Should().HaveCount(1);
            // reservation added:
            memberRepositoryMock.Verify(m => m.AddReservation(It.IsAny <Reservation>()), Times.Once());

            reservation.BookId.Should().Be(bookId);
            reservation.MemberId.Should().Be(memberId);
            reservation.To.Should().Be(reserveTo);
            reservation.From.Should().Be(reserveFrom);
        }
Beispiel #4
0
 public IndexModel(ILogger <IndexModel> logger, Data.BookRezervationContext bookRezervationContext)
 {
     _logger = logger;
     _bookRezervationContext = bookRezervationContext;
     bookReservationService  = new BookReservationService(bookRezervationContext);
 }