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); }
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); }