Exemplo n.º 1
0
        public void ReturnNone_ForGoodItalianFood()
        {
            var restaurantData = _getRestaurants();

            var isItalian      = new ItalianRestaurantSpecification();
            var goodRestaurant = new GoodRestaurantSpecification();

            var evaluator       = new SpecificationEvaluator <Restaurant>();
            var mySpecification = isItalian.And(goodRestaurant);

            var results = evaluator.ApplySpecification(restaurantData, mySpecification).AsEnumerable();

            Assert.Empty(results);
        }
Exemplo n.º 2
0
        public void ReturnMcdonalds_ForGoodAndAmerican()
        {
            var restaurantData = _getRestaurants();

            var isGoodRestaurant = new GoodRestaurantSpecification();
            var isAmerican       = new AmericanRestaurantSpecification();

            var evaluator       = new SpecificationEvaluator <Restaurant>();
            var mySpecification = isGoodRestaurant.And(isAmerican);

            var results = evaluator.ApplySpecification(restaurantData, mySpecification).AsEnumerable();

            Assert.Single(results);
            Assert.Contains(restaurantData.First(), results);
        }
Exemplo n.º 3
0
        public void ReturnBoth_ForGoodOrItalian()
        {
            var restaurantData = _getRestaurants();

            var isGoodRestaurant = new GoodRestaurantSpecification();
            var isItalian        = new ItalianRestaurantSpecification();

            var evaluator       = new SpecificationEvaluator <Restaurant>();
            var mySpecification = isGoodRestaurant.Or(isItalian);

            var results = evaluator.ApplySpecification(restaurantData, mySpecification).AsEnumerable();

            Assert.Equal(2, results.Count());
            Assert.Contains(restaurantData.First(), results);
            Assert.Contains(restaurantData.ElementAt(1), results);
        }