public void AddTrade_WithDetails_SuccessfullyAddsTradeToList() { // Arrange var dateTimeProvider = new Mock <IDateTimeProvider>(); var localTimestamp = new DateTime(2017, 2, 17, 22, 14, 44); dateTimeProvider.Setup(x => x.Now).Returns(localTimestamp); var tradeRepository = new TradeRepository(dateTimeProvider.Object); var teaStock = new CommonStock { StockSymbol = "TEA" }; // Act var trade = tradeRepository.AddTrade(teaStock, 100, TransactionType.Buy, 1.23M); // Assert Assert.AreEqual(1, tradeRepository.TradeCount); Assert.AreEqual(100, trade.Quantity); Assert.AreEqual(TransactionType.Buy, trade.TransactionType); Assert.AreEqual(1.23, trade.TradePrice); Assert.AreEqual(localTimestamp, trade.LocalTimestamp); Assert.AreEqual(teaStock, trade.Stock); }