public void ForwardMessage_Should_Forward_Any_Message_Received(string message, string expectedMessage) { // GIVEN IDrinkMakerProtocol drinkMakerProtocol = new DrinkMakerProtocol(); ICashRegister cashRegister = new CashRegister(); CoffeeMachineLogic coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN string forwardedMessage = coffeeMachineLogic.ForwardMessage(message); // THEN Check.That(forwardedMessage).IsEqualTo(expectedMessage); }
public void ForwardMessage_Should_Return_Correct_Instruction_For_Message(string message, string expectedMessage) { // GIVEN IDrinkMakerProtocol drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); drinkMakerProtocol.BuildMessage(message).Returns(expectedMessage); var cashRegister = Substitute.For <ICashRegister>(); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN string forwardedMessage = coffeeMachineLogic.ForwardMessage(message); // THEN Check.That(forwardedMessage).IsEqualTo(expectedMessage); }
public void ForwardMessage_Should_Call_BuildMessage_Of_DrinkMakerProtocol(string message) { // GIVEN var drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); var cashRegister = Substitute.For <ICashRegister>(); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN //TODO: Forward message should be on DrinkMaker string forwardedMessage = coffeeMachineLogic.ForwardMessage(message); // THEN drinkMakerProtocol.Received().BuildMessage(message); }
public void SendCommand_Should_Not_Call_BuildCommand_Of_DrinkMakerProtocol_With_Insufficient_Money_Inserted(double orderPrice, double insertedMoney) { // GIVEN var drinkOrder = Substitute.For <IDrinkOrder>(); drinkOrder.GetPrice().Returns(orderPrice); var drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); var cashRegister = Substitute.For <ICashRegister>(); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); coffeeMachineLogic.InsertMoney(insertedMoney); // WHEN coffeeMachineLogic.SendCommand(drinkOrder); // THEN drinkMakerProtocol.DidNotReceive().BuildCommand(drinkOrder); }
public void SendCommand_Should_Return_Empty_String() { // GIVEN var drinkOrder = Substitute.For <IDrinkOrder>(); drinkOrder.GetPrice().Returns(0); var drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); var cashRegister = Substitute.For <ICashRegister>(); cashRegister.IsInsertedAmountLessThan(0).Returns(true); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN string command = coffeeMachineLogic.SendCommand(drinkOrder); // THEN Check.That(command).IsEmpty(); }
public void SendCommand_Should_Call_BuildCommand_Of_DrinkMakerProtocol_With_Enough_Money_Inserted(double orderPrice, double insertedMoney) { // GIVEN var drinkOrder = Substitute.For <IDrinkOrder>(); drinkOrder.GetPrice().Returns(orderPrice); var drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); var cashRegister = Substitute.For <ICashRegister>(); cashRegister.IsInsertedAmountLessThan(orderPrice).Returns(true); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN coffeeMachineLogic.SendCommand(drinkOrder); // THEN drinkMakerProtocol.Received().BuildCommand(drinkOrder); }
public void SendMessage_Should_Send_Correct_Instructions_For_Orange_Juice_Order() { // GIVEN IDrinkMakerProtocol drinkMakerProtocol = new DrinkMakerProtocol(); ICashRegister cashRegister = new CashRegister(); CoffeeMachineLogic coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); IColdDrink drink = new OrangeJuice(); IDrinkOrder drinkOrder = new DrinkOrder(drink); var price = drinkOrder.GetPrice(); coffeeMachineLogic.InsertMoney(0.6); // WHEN string command = coffeeMachineLogic.SendCommand(drinkOrder); // THEN Check.That(command).IsEqualTo("O::"); }
public void SendCommand_Should_Return_Missing_Money_Amount_With_Insufficient_Money_Inserted(double orderPrice, double insertedMoney, string expectedMessage) { // GIVEN var drinkOrder = Substitute.For <IDrinkOrder>(); drinkOrder.GetPrice().Returns(orderPrice); var drinkMakerProtocol = Substitute.For <IDrinkMakerProtocol>(); var cashRegister = Substitute.For <ICashRegister>(); cashRegister.IsInsertedAmountLessThan(orderPrice).Returns(false); cashRegister.DifferenceWith(orderPrice).Returns(orderPrice - insertedMoney); var coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); // WHEN string command = coffeeMachineLogic.SendCommand(drinkOrder); // THEN Check.That(command).IsEqualTo(expectedMessage); }
public void SendMessage_Should_Send_Correct_Instructions_For_Chocolate_With_Two_Sugar_Order() { // GIVEN IDrinkMakerProtocol drinkMakerProtocol = new DrinkMakerProtocol(); ICashRegister cashRegister = new CashRegister(); CoffeeMachineLogic coffeeMachineLogic = new CoffeeMachineLogic(drinkMakerProtocol, cashRegister); IHotDrink drink = new Chocolate(); drink.AddSugar().AddSugar(); IDrinkOrder drinkOrder = new DrinkOrder(drink); var price = drinkOrder.GetPrice(); coffeeMachineLogic.InsertMoney(price); // WHEN string command = coffeeMachineLogic.SendCommand(drinkOrder); // THEN Check.That(command).IsEqualTo("H:2:1"); }