public void CalculatePomotionShouldPassWithGivenCheckoutAmount() { int CheckoutAmount = 370; int QuantityA = 5, QuantityB = 5, QuantityC = 1, QuantityD = 0; var pA = mockProductA.Setup(x => x.CalculateAmoutForA(QuantityA)).Returns(230); var pB = mockProductB.Setup(x => x.CalculateAmoutForB(QuantityB)).Returns(120); var pc = mockProductC.Setup(x => x.CalculateAmoutForC(QuantityC)).Returns(20); var pD = mockProductD.Setup(x => x.CalculateAmoutForD(QuantityC)).Returns(0); int result = promotion.ApplyPromo(QuantityA, QuantityB, QuantityC, QuantityD); Assert.AreEqual(CheckoutAmount, result); }