private void DoAgentBuyTestsAsserts(decimal limit, decimal price, string symbol, int bookerCalledCount) { bookingStrategy = new Mock<IBookingStrategy>(); bookingStrategy.Setup(x => x.ShouldBuy(price, symbol)) .Returns(price < limit); booker = new Mock<IBooker>(); Agent agent = new Agent(booker.Object, bookingStrategy.Object); agent.Book(price, symbol); booker.Verify(foo => foo.Buy(symbol), Times.Exactly(bookerCalledCount)); }