public void TestAllToppings() { //Arrange string test = "test"; string prepareString = $"We are preparing the following drink for you: {test} with milk with sugar with chocolate"; var mockDrink = mockRepository.Create <IDrink>(); mockDrink.SetupGet(m => m.HasSugar).Returns(true); mockDrink.SetupGet(m => m.Description).Returns(test); var mockMilk = mockDrink.As <IMilkDrink>(); mockMilk.SetupGet(m => m.HasMilk).Returns(true); var mockChoco = mockMilk.As <IChocolateDrink>(); mockChoco.SetupGet(m => m.HasChocolate).Returns(true); mockLogger.Setup(m => m.WriteToConsole(prepareString)); //Act Preparer.Prepare(mockChoco.Object); //Assert mockLogger.Verify(m => m.WriteToConsole(prepareString), Times.Once); }