public async Task Sut_ShouldExpireReservationWhenConfirmed([Frozen] TicketContext context, [Frozen] IMemoryCache cache, [Frozen] TicketServiceSettings settings, TicketService sut) { settings.TicketHoldExpiration = TimeSpan.FromMinutes(2); var reservation = await sut.FindAndHoldSeats(10, "*****@*****.**"); cache.TryGetValue(reservation.SeatHoldId.ToString(), out var seatHold).Should().BeTrue(); await sut.ReserveSeats(reservation.SeatHoldId, "*****@*****.**"); cache.TryGetValue(reservation.SeatHoldId.ToString(), out seatHold).Should().BeFalse(); }
public async Task Sut_ShouldUpdateAvailableSeatsOnExpiration([Frozen] TicketContext context, [Frozen] IMemoryCache cache, [Frozen] TicketServiceSettings settings, TicketService sut) { settings.TicketHoldExpiration = TimeSpan.FromSeconds(1); var reservation = await sut.FindAndHoldSeats(10, "*****@*****.**"); (await sut.NumSeatsAvailable()).Should().Be(190); await Task.Delay(1100); cache.TryGetValue(reservation.SeatHoldId.ToString(), out var seatHold).Should().BeFalse(); await Task.Delay(1100); (await sut.NumSeatsAvailable()).Should().Be(200); }