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