public void OrderDrinkTest() { //Arrange var mockDrink = mockRepository.Create <IDrink>(); mockDrinkFactory.Setup(m => m.BuildDrink(EDrinks.Expresso, true, true, true)).Returns(mockDrink.Object); mockPreparer.Setup(m => m.Prepare(mockDrink.Object)); //Act AcuCafe.OrderDrink(EDrinks.Expresso, true, true, true); //Assert mockDrinkFactory.Verify(m => m.BuildDrink(EDrinks.Expresso, true, true, true), Times.Once); mockPreparer.Verify(m => m.Prepare(mockDrink.Object), Times.Once); }
public static IDrink OrderDrink(string type, bool hasMilk, bool hasSugar) { AcuCafe cafe = new AcuCafe(new DrinkFactory(), new DrinkIngredientFactory(), new BaristaInformer(), new Logger(@"c:\Error.txt")); List <string> ingredients = new List <string>(); if (hasMilk) { ingredients.Add("milk"); } if (hasSugar) { ingredients.Add("sugar"); } return(cafe.OrderDrink(type, ingredients)); }
public void OrderDrink_Should_Validate_And_Prepare_Order(bool validation, bool returnNullValidator, bool returnNullDrink, string expectedMessage, Mock <Drink> expectedDrink, [Frozen] Mock <IDrinkFactory> drinkFactory, [Frozen] Mock <IDrinkValidatorFactory> drinkValidatorFactory, [Frozen] Mock <IDrinkValidator> drinkValidator, AcuCafe.AcuCafe sut) { if (!returnNullValidator) { drinkValidatorFactory.Setup(x => x.Get(It.IsAny <string>())).Returns(drinkValidator.Object); drinkValidator.Setup(x => x.Validate(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <Topping>())).Returns(validation); } else { drinkValidatorFactory.Setup(x => x.Get(It.IsAny <string>())).Returns(default(IDrinkValidator)); } if (!returnNullDrink) { drinkFactory.Setup(x => x.Get(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <Topping>())).Returns(expectedDrink.Object); expectedDrink.Setup(x => x.Prepare()).Returns(expectedMessage); } else { drinkFactory.Setup(x => x.Get(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <Topping>())).Returns(default(Drink)); } var result = sut.OrderDrink(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>()); result.Item1.ShouldBe(expectedMessage); if (!returnNullDrink && !returnNullValidator) { result.Item2.ShouldNotBeNull(); } else { result.Item2.ShouldBeNull(); } }