public async Task Handle_WithAnInvalidEditBookingCommand_Throws()
        {
            //arrange
            var invalidCommand = new ToggleBookingApprovedCommand {
                Id = 0
            };

            //act + assert
            _ = await Assert
                .ThrowsAsync <BookingNotFoundException>(() => _handler.Handle(invalidCommand, default))
                .ConfigureAwait(false);
        }
        public async Task Handle_WithAValidEditBookingCommand_UpdatesBooking()
        {
            //arrange
            const bool expected = true;

            Context.Add(new Booking
            {
                BookingDate   = DateTime.Now,
                ContactNumber = "0123456789",
                EmailAddress  = "*****@*****.**",
                Flexibility   = Flexibility.PlusMinusOneDay,
                Name          = "Name",
                VehicleSize   = VehicleSize.Large,
                Approved      = !expected
            });
            _ = await Context
                .SaveChangesAsync()
                .ConfigureAwait(false);

            var validCommand = new ToggleBookingApprovedCommand
            {
                Id = 1
            };

            //act
            _ = await _handler
                .Handle(validCommand, default)
                .ConfigureAwait(false);

            //assert
            var actual = await Context
                         .Bookings
                         .SingleAsync()
                         .ConfigureAwait(false);

            Assert.Equal(expected, actual.Approved);
        }