public void WhiskeyAndCold() { // Arrange Specification <Drink> whiskeySpec = new WhiskeySpec(); Specification <Drink> coldSpec = new ColdDrinkSpec(); // Act var coldWhiskeySpec = whiskeySpec.And(coldSpec); // Assert coldWhiskeySpec.IsSatisfiedBy(Drink.ColdWhiskey()).Should().BeTrue(); coldWhiskeySpec.IsSatisfiedBy(Drink.AppleJuice()).Should().BeFalse(); }
public void WhiskeyAndCold_using_operator() { // Arrange Drink coldWhiskey = Drink.ColdWhiskey(); Drink appleJuice = Drink.AppleJuice(); Specification <Drink> whiskeySpec = new WhiskeySpec(); Specification <Drink> coldSpec = new ColdDrinkSpec(); // Act var coldWhiskeySpec = whiskeySpec & coldSpec; // Assert coldWhiskeySpec.IsSatisfiedBy(coldWhiskey).Should().BeTrue(); coldWhiskeySpec.IsSatisfiedBy(appleJuice).Should().BeFalse(); }