public void OneActionTest() { var Calc = new Calculator(0); var Action = new Mock<ICalculatorAction>(); Action.SetupGet(t => t.Unary).Returns(false); Action.Setup(t => t.Calculate(It.IsAny<double>(), It.IsAny<double?>())).Returns(200); Calc.InputAction(Action.Object); Calc.InputNumber(50); Assert.AreEqual(200, Calc.CurrentValue); Action.Verify(a => a.Unary, Times.AtLeastOnce()); Action.Verify(a => a.Calculate(It.Is<double>(d => d == 0), It.Is<double?>(d => d.HasValue && d.Value == 50)), Times.Once()); }