public void Test_MakeReservation_Return_Empty_When_Booking_Is_Larger_Than_Any_Of_The_Coaches_Capacity() { var trainProvider = new TrainProviderBuilder() .WithCoach(new CoachBuilder().WithBooked(0).WithCapacity(10).Build()) .WithCoach(new CoachBuilder().WithBooked(0).WithCapacity(10).Build()) .Build(); var ticketOffice = new TicketOffice(trainProvider); var result = ticketOffice.MakeReservation(new ReservationRequestBuilder().WithTrainId("express_2000").WithSeatCount(11).Build()); IsEmpty(result); }
public void Test_MakeReservation_Return_Empty_When_Train_Will_Be_Over_Capacity() { var trainProvider = new TrainProviderBuilder() .WithCoach(new CoachBuilder().WithCapacity(100).WithBooked(65).Build()).Build(); var ticketOffice = new TicketOffice(trainProvider); var result = ticketOffice.MakeReservation(new ReservationRequestBuilder().WithTrainId("express_2000").WithSeatCount(7).Build()); IsEmpty(result); }
public void Test_MakeReservation_Returns_Valid_Reservation_When_Train_Has_Capacity() { var trainProvider = new TrainProviderBuilder() .WithCoach(new CoachBuilder().WithCapacity(100).WithBooked(50).Build()).Build(); var ticketOffice = new TicketOffice(trainProvider); var request = new ReservationRequest("express_2000", 1); var result = ticketOffice.MakeReservation(request); result.BookingId.Should().NotBeNullOrEmpty(); result.TrainId.Should().Be("express_2000"); result.Seats.Should().HaveCount(1); }