public void TestCreateBookingForFlight_WhenPersonHasAlreadyRegistered_ShouldThrowAnException() { // Arrange var personRepository = new Mock <IRepository <Person> >(); personRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(new Person { Id = 1, Name = "testName" }); var bookingRepository = new Mock <IRepository <Booking> >(); var passengersList = new[] { new Booking { Passengers = new[] { new Person { Id = 1 }, new Person(), }, Flight = new Flight { Number = "testFlight" }, } }; bookingRepository.Setup(x => x.GetAll()).Returns(passengersList); var bookingService = new BookingService(personRepository.Object, bookingRepository.Object, null); // Act var exception = Assert.Throws <NotSupportedException>(() => bookingService.CreateBookingForFlight(1, 1, "testFlight")); // Assert Assert.Equal("A passenger has already registered for this flight", exception.Message); }
public void TestCreateBookingForFlight_WhenFlightDoesNotExist_ShouldThrowAnException() { // Arrange var personRepository = new Mock <IRepository <Person> >(); personRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(new Person { Id = 1, Name = "testName" }); var bookingRepository = new Mock <IRepository <Booking> >(); var passengersList = new[] { new Booking { Passengers = new[] { new Person(), new Person(), }, Flight = new Flight { Number = "testFlight" }, } }; bookingRepository.Setup(x => x.GetAll()).Returns(passengersList); var flightRepository = new Mock <IRepository <Flight> >(); flightRepository.Setup(x => x.GetAll()).Returns(new Flight[] {}); var bookingService = new BookingService(personRepository.Object, bookingRepository.Object, flightRepository.Object); // Act var exception = Assert.Throws <NotSupportedException>(() => bookingService.CreateBookingForFlight(1, 1, "testFlight")); // Assert Assert.Equal("A flight with number=testFlight does not exist", exception.Message); }
public void TestCreateBookingForFlight_WhenCustomerDoesNotExist_ShouldThrowAnException() { // Arrange var personRepository = new Mock <IRepository <Person> >(); personRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(() => null); var bookingService = new BookingService(personRepository.Object, null, null); // Act var exception = Assert.Throws <NotSupportedException>(() => bookingService.CreateBookingForFlight(2, 2, "testFlight")); // Assert Assert.Equal("A customer with id=2 was not found", exception.Message); }
public void TestCreateBookingForFlight_WhenTargetPersonDoesNotExist_ShouldThrowAnException() { // Arrange var personRepository = new Mock <IRepository <Person> >(); personRepository.Setup(x => x.Get(1)).Returns(() => new Person { Id = 1, Name = "testName" }); personRepository.Setup(x => x.Get(2)).Returns(() => null); var bookingService = new BookingService(personRepository.Object, null, null); // Act var exception = Assert.Throws <NotSupportedException>(() => bookingService.CreateBookingForFlight(1, 2, "testFlight")); // Assert Assert.Equal("A person with id=2 was not found", exception.Message); }
public void TestCreateBookingForFlight_WhenInputValuesAreValid_ShouldCreateBookingCorrectly() { // Arrange var personRepository = new Mock <IRepository <Person> >(); personRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(new Person { Id = 1, Name = "testName" }); var bookingRepository = new Mock <IRepository <Booking> >(); var passengersList = new[] { new Booking { Id = 23, Passengers = new[] { new Person(), new Person(), }, Flight = new Flight { Id = 1, Number = "testFlight" }, } }; bookingRepository.Setup(x => x.GetAll()).Returns(passengersList); var flightRepository = new Mock <IRepository <Flight> >(); var flightInfo = new Flight { Id = 1, Number = "testFlight" }; flightRepository.Setup(x => x.GetAll()).Returns(new[] { flightInfo }); var bookingService = new BookingService(personRepository.Object, bookingRepository.Object, flightRepository.Object); // Act var newBookinInfo = bookingService.CreateBookingForFlight(1, 1, "testFlight"); // Assert Assert.Equal(24, newBookinInfo.Id); Assert.Equal(flightInfo, newBookinInfo.Flight); Assert.Equal(1, newBookinInfo.Customer.Id); Assert.Single(newBookinInfo.Passengers); Assert.Contains(1, newBookinInfo.Passengers.Select(x => x.Id)); }