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);
        }