public async Task Book_Room_By_Props_3_Bed_No_Pets_No_Accessability_Available()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            IMotelDataAdapter     da   = new MotelDataAdapter(new BookingProcessor(repo), repo);

            BookingController controller = new BookingController(da);
            IActionResult     a          = await controller.BookRoomByProperties(2, 0, true);

            Assert.AreEqual(((ObjectResult)a).StatusCode, 201);
        }
        public async Task Book_Room_By_Props_1_Bed_With_Pets_No_Accessability_Not_Available()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            IMotelDataAdapter     da   = new MotelDataAdapter(new BookingProcessor(repo), repo);

            BookingController controller = new BookingController(da);

            List <Task> tasks = new List <Task>();

            for (int i = 0; i < 6; i++)
            {
                //book the first floor entirely
                tasks.Add(controller.BookRoomByNumber(100 + i, 1, true));
            }

            //wait for all the bookings to finish
            await Task.WhenAll(tasks);

            IActionResult a = await controller.BookRoomByProperties(1, 1, false);

            Assert.AreEqual(((ObjectResult)a).StatusCode, 400);
        }