コード例 #1
0
        public void CheckForReservationForDinerWithoutReservation()
        {
            ISeatSearcher search = new ConfigurableSeatSearcher(new AllRestaurantRepository(), new[] { new EmptySeatsFilter() },
                                                                new[] { new SameFamilyScoreCalculator() }, new[] { new PreferTablesWithGuestsSorter() });
            var           query = new UnreservedSeatForDinerQuery("Dwayne", "Johnson");
            ISeatSearcher reservationChecker = new ReservationCheckerDecorator(search, new ReservationRepository());

            var seats = reservationChecker.FindSeats(query);

            ValidateMultipleRestaurants(seats);
        }
コード例 #2
0
        public void CheckForReservationForDinerWithReservation()
        {
            ISeatSearcher search = new ConfigurableSeatSearcher(new AllRestaurantRepository(), new[] { new EmptySeatsFilter() },
                                                                new[] { new SameFamilyScoreCalculator() }, new[] { new PreferTablesWithGuestsSorter() });
            ISeatSearcher reservationChecker = new ReservationCheckerDecorator(search, new ReservationRepository());
            var           firstName          = "John";
            var           lastName           = "Boyega";
            var           query = new UnreservedSeatForDinerQuery(firstName, lastName);

            var seats = reservationChecker.FindSeats(query);

            seats.Should().HaveCount(1);
            var seat = seats.First();

            seat.Restaurant.Should().Be("De Peirdestal");
            seat.SectionId.Should().Be(0);
            seat.TableId.Should().Be(2);
        }