Esempio n. 1
0
        public IReadOnlyCollection <RoomData> SearchByFilter(RoomRequirements roomRequirements)
        {
            var roomsSelectionPipeline = new RoomsSelectionPipeline();

            roomsSelectionPipeline.Register(new RoomPriceFromFilter(roomRequirements.PriceFrom))
            .Register(new RoomPriceToFilter(roomRequirements.PriceTo))
            .Register(new RoomCapacityFilter(roomRequirements.RequiredCapacity))
            .Register(new RoomAvailabilityFilter(roomRequirements.CheckIn, roomRequirements.CheckOut, context.Orders.ToList()));
            return(Map(roomsSelectionPipeline.Process(context.Rooms.Where(room => room.HotelId == roomRequirements.HotelId)
                                                      .ToList())));
        }
Esempio n. 2
0
        public void SearchByFiltersTest()
        {
            RoomRequirements roomRequirements       = CreateRoomRequirements();
            IReadOnlyCollection <RoomData> expected = CreateRoomCollection();

            SetupRoomRepositorySearchByFiltersMock(roomRequirements, expected);

            IReadOnlyCollection <RoomData> actual = roomService.SearchByFilters(roomRequirements);

            Assert.AreEqual(expected, actual);
        }
Esempio n. 3
0
        public void SearchTest()
        {
            RoomRequirements roomRequirements        = CreateRoomRequirements();
            IReadOnlyCollection <RoomData> roomsData = CreateRoomsData();

            SetupHotelServiceGetSearchResultMock(roomsData, roomRequirements);

            var actual = (JsonResult)roomApiController.Search(roomRequirements);

            Assert.AreEqual(roomsData, actual.Value);
        }
Esempio n. 4
0
 public IActionResult Search(RoomRequirements roomRequirements) =>
 Json(roomService.SearchByFilters(roomRequirements));
Esempio n. 5
0
 private void SetupRoomRepositorySearchByFiltersMock(RoomRequirements roomRequirements, IReadOnlyCollection <RoomData> roomDatas)
 => roomRepositoryMock
 .Setup(repository => repository.SearchByFilter(roomRequirements))
 .Returns(roomDatas);
Esempio n. 6
0
 private void SetupHotelServiceGetSearchResultMock(IReadOnlyCollection <RoomData> roomsData, RoomRequirements roomRequirements)
 => roomServiceMock
 .Setup(service => service.SearchByFilters(roomRequirements))
 .Returns(roomsData);
Esempio n. 7
0
 public IReadOnlyCollection <RoomData> SearchByFilters(RoomRequirements roomRequirements)
 {
     return(roomRepository.SearchByFilter(roomRequirements));
 }
Esempio n. 8
0
 public HotelsRoomFilter(RoomRequirements roomRequirements, IReadOnlyCollection <Room> rooms, IReadOnlyCollection <Order> orders)
 {
     this.roomRequirements = roomRequirements;
     this.rooms            = rooms;
     this.orders           = orders;
 }