public void GetBooking_ShouldThrowNotFoundException() { var query = new GetBookingQuery { Id = 99 }; FluentActions.Invoking(() => SendAsync(query)).Should().Throw <NotFoundException>(); }
public async Task Handle_WithNoBookings_Throws() { //arrange var query = new GetBookingQuery { Id = 0 }; //act + assert _ = await Assert .ThrowsAsync <BookingNotFoundException>(() => _handler.Handle(query, default)) .ConfigureAwait(false); }
public async Task GetBookingOrderAndDetails() { //Arrange var sut = new GetBookingQueryHandler(_repo); //Act GetBookingQuery req = new GetBookingQuery(); req.BookingId = "1e4199f0-907f-4acc-b886-b12b0323c108"; var result = await sut.Handle(req, CancellationToken.None); //Assert //Main booking result.ShouldBeOfType <BookingOrder>(); result.BookingOrderId.ShouldBe("1e4199f0-907f-4acc-b886-b12b0323c108"); result.Origin.ShouldBe("NY"); result.Destination.ShouldBe("Melbourne"); //booking Details result.BookingDetails.Count.ShouldBe(2); List <BookingOrderDetail> bookingDetails = new List <BookingOrderDetail>(); bookingDetails.Add(new BookingOrderDetail { PackageType = "Express", PackageDescription = "Toys", Price = 10 }); bookingDetails.Add(new BookingOrderDetail { PackageType = "Standard", PackageDescription = "Books", Price = 50 }); var bookingDetailsFromDB = result.BookingDetails.ToList(); bookingDetailsFromDB[0].Price.ShouldBe(bookingDetails[0].Price); bookingDetailsFromDB[1].Price.ShouldBe(bookingDetails[1].Price); bookingDetailsFromDB[0].PackageDescription.ShouldBe(bookingDetails[0].PackageDescription); bookingDetailsFromDB[1].PackageDescription.ShouldBe(bookingDetails[1].PackageDescription); bookingDetailsFromDB[0].PackageType.ShouldBe(bookingDetails[0].PackageType); bookingDetailsFromDB[1].PackageType.ShouldBe(bookingDetails[1].PackageType); }
public async Task Handle_WithValidGetBookingQuery_ReturnsBooking() { //arrange var expected = new Booking { BookingDate = DateTime.Now, ContactNumber = "0123456789", EmailAddress = "*****@*****.**", Flexibility = Flexibility.PlusMinusOneDay, Name = "Name", VehicleSize = VehicleSize.Large, Approved = false }; Context.Add(expected); _ = await Context .SaveChangesAsync() .ConfigureAwait(false); var query = new GetBookingQuery { Id = 1 }; //act var actual = await _handler .Handle(query, default) .ConfigureAwait(false); //assert Assert.Equal(expected.BookingDate, actual.BookingDate); Assert.Equal(expected.ContactNumber, actual.ContactNumber); Assert.Equal(expected.EmailAddress, actual.EmailAddress); Assert.Equal(expected.Flexibility, actual.Flexibility); Assert.Equal(expected.Name, actual.Name); Assert.Equal(expected.VehicleSize, actual.VehicleSize); Assert.Equal(expected.Approved, actual.Approved); }