예제 #1
0
        public async Task CreateBookingForTwoSeat()
        {
            // Arrange
            using (var context = DbContextHelper.GetInMemoryDbContext())
            {
                var  service = new BookingService(context);
                Guid id      = Guid.NewGuid();
                var  booking = new Booking()
                {
                    Id               = id.ToString(),
                    Date             = DateTime.Now,
                    ScheduleId       = _seedService.EvenSchedules.First().Id,
                    BookingPositions = new List <BookingPosition>
                    {
                        new BookingPosition
                        {
                            BookingId = id.ToString(),
                            ServicePlacePositionId = _seedService.ServicePlacePositions[1].Id
                        },
                        new BookingPosition
                        {
                            BookingId = id.ToString(),
                            ServicePlacePositionId = _seedService.ServicePlacePositions[2].Id
                        },
                    }
                };
                int expectedSeat = 2;

                // Act
                var bookingFromDb = await service.CreateBookingAsync(booking);

                // Assert
                Assert.True(booking.BookingPositions.Count == expectedSeat);
            }
        }
예제 #2
0
        public void CreateBookingAsync_ShouldThrowArgumentNullException_WhenArgumentIsNull(
            BookingService bookingService)
        {
            // ARRANGE
            CreateBookingDTO createBooking = null;

            // ACT

            Func <Task <int> > result = async() => await bookingService.CreateBookingAsync(createBooking);

            // ASSERT

            result.Should().Throw <ArgumentNullException>()
            .WithMessage("*createBooking*");
        }
예제 #3
0
        public void CreateBookingAsync_ShouldValidationException_WhenEmailAddressIsInvalid(
            CreateBookingDTO createBooking,
            BookingService bookingService)
        {
            // ARRANGE
            createBooking.Name = "nbnb";

            // ACT

            Func <Task <int> > result = async() => await bookingService.CreateBookingAsync(createBooking);

            // ASSERT

            result.Should().Throw <ValidationException>()
            .WithMessage("Booking is invalid");
        }
예제 #4
0
        public async Task CreateBookingAsync_ShouldAddBooking_WhenThereIsNoErrors(
            CreateBookingDTO createBooking,
            [Frozen] IRepository <Booking> bookingRepository,
            BookingService bookingService)
        {
            // ARRANGE
            createBooking.EmailAddress = "*****@*****.**";
            bookingRepository.CreateAsync(Arg.Any <Booking>()).Returns(1);

            // ACT

            var result = await bookingService.CreateBookingAsync(createBooking);

            // ASSERT

            result.Should().Be(1);
        }
예제 #5
0
        public void CreateBookingAsync_ShouldValidationException_WhenContactNumberIsEmpty(
            CreateBookingDTO createBooking,
            BookingService bookingService)
        {
            // ARRANGE
            createBooking.Name          = "nbnb";
            createBooking.EmailAddress  = "*****@*****.**";
            createBooking.ContactNumber = "";

            // ACT

            Func <Task <int> > result = async() => await bookingService.CreateBookingAsync(createBooking);

            // ASSERT

            result.Should().Throw <ValidationException>()
            .WithMessage("Booking is invalid");
        }