Exemplo n.º 1
0
        public async Task Two_Bed_Two_Pets()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            BookingProcessor      proc = new BookingProcessor(repo);

            MotelRoom room = await proc.BookAvailableRoomAsync(2, 2, false);

            Assert.AreEqual(room.TotalCost, 115);
        }
        public async Task Book_Room_By_Number_With_Pets_With_Accessability_Available()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            IMotelDataAdapter     da   = new MotelDataAdapter(new BookingProcessor(repo), repo);

            BookingController controller = new BookingController(da);
            IActionResult     a          = await controller.BookRoomByNumber(101, 1, true);

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

            BookingController controller = new BookingController(da);
            IActionResult     a          = await controller.RemoveReservation(101); //remove reservation from room 101, ex will be thrown which will be caught by controller

            Assert.AreEqual(((ObjectResult)a).StatusCode, 400);                     //check for OK status
        }
        public async Task Rooms_Are_Available()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            IMotelDataAdapter     da   = new MotelDataAdapter(new BookingProcessor(repo), repo);

            BookingController controller = new BookingController(da);
            List <MotelRoom>  rooms      = await controller.GetRoomsAvailable();

            Assert.IsTrue(rooms.Count > 0);
        }
        public async Task Book_Room_By_Props_1_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(1, 0, false);

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

            BookingController controller = new BookingController(da);
            await controller.BookRoomByNumber(101, 0, false);          //book room 101

            IActionResult a = await controller.RemoveReservation(101); //remove its reservation

            Assert.AreEqual(((ObjectResult)a).StatusCode, 200);        //check for OK status
        }
        public async Task Book_Room_By_Number_With_Pets_With_Accessability_Not_Available()
        {
            IMotelRoomsRepository repo = new MotelRoomsRepository();
            IMotelDataAdapter     da   = new MotelDataAdapter(new BookingProcessor(repo), repo);

            BookingController controller = new BookingController(da);

            //book the whole first floor
            List <Task> tasks = new List <Task>();

            for (int i = 0; i < 6; i++)
            {
                tasks.Add(controller.BookRoomByNumber(100 + i, 1, true));
            }

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

            IActionResult a = await controller.BookRoomByNumber(101, 1, true);

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