예제 #1
0
        public void RemoveSeats_ForNonExistingSeatType_DoNothing()
        {
            // Arrange
            var unknownSeatType = Guid.NewGuid();
            var sut             = new SeatsAvailability(_reservationId);

            // Act
            sut.AddSeats(_seatTypeId, AvailableSeats);
            sut.RemoveSeats(unknownSeatType, 5);

            // Assert
            Assert.DoesNotContain(sut.Events,
                                  @event => (@event is AvailableSeatsChanged e && e.Seats.ElementAt(0).SeatType == unknownSeatType));
        }
예제 #2
0
        public void RemoveSeats_ForExistingSeatType_ChangesSeatsAvailability()
        {
            // Arrange
            var quantity = 5;
            var sut      = new SeatsAvailability(_reservationId);

            // Act
            sut.AddSeats(_seatTypeId, AvailableSeats);
            sut.RemoveSeats(_seatTypeId, quantity);

            // Assert
            Assert.Equal(_seatTypeId, ((AvailableSeatsChanged)sut.Events.LastOrDefault()).Seats.ElementAt(0).SeatType);
            Assert.Equal(-quantity, ((AvailableSeatsChanged)sut.Events.LastOrDefault()).Seats.ElementAt(0).Quantity);
        }