示例#1
0
        public void And_No_Reservation_To_Delete_Then_Throws_EntityNotFoundException(
            List <Reservation> reservations,
            [Frozen] Mock <IReservationsDataContext> mockContext,
            ReservationRepository repository)
        {
            var reservationId = reservations[0].Id;

            mockContext
            .Setup(context => context.Reservations.FindAsync(reservationId))
            .ReturnsAsync((Reservation)null);

            var act = new Func <Task>(async() => await repository.DeleteAccountReservation(reservationId));

            act.Should().Throw <EntityNotFoundException <Reservation> >();
        }
示例#2
0
        public void And_ReservationStatus_Not_Pending_Then_Throws_InvalidOperation(
            List <Reservation> reservations,
            [Frozen] Mock <IReservationsDataContext> mockContext,
            ReservationRepository repository)
        {
            var reservationId = reservations[0].Id;

            reservations[0].Status = (int)ReservationStatus.Confirmed;
            mockContext
            .Setup(context => context.Reservations.FindAsync(reservationId))
            .ReturnsAsync(reservations[0]);

            var act = new Func <Task>(async() => await repository.DeleteAccountReservation(reservationId));

            act.Should().Throw <InvalidOperationException>()
            .WithMessage($"This reservation cannot be deleted");
        }
示例#3
0
        public async Task Then_Updates_Status_To_Deleted(
            List <Reservation> reservations,
            [Frozen] Mock <IReservationsDataContext> mockContext,
            ReservationRepository repository)
        {
            var reservationId = reservations[0].Id;

            reservations[0].Status = (int)ReservationStatus.Pending;
            mockContext
            .Setup(context => context.Reservations)
            .ReturnsDbSet(reservations);
            mockContext
            .Setup(context => context.Reservations.FindAsync(reservationId))
            .ReturnsAsync(reservations[0]);

            await repository.DeleteAccountReservation(reservationId);

            mockContext.Verify(context => context.SaveChanges(), Times.Once);
            reservations[0].Status.Should().Be((int)ReservationStatus.Deleted);
        }