public void GetBestQuoteWithAvailableVolume_ReturnsFirstAvailableQuote() { // Arrange const string symbol = "TestSymbol"; var expectedQuote = new Quote(symbol, 6.78d, 1234, DateTime.Now.AddDays(2)); var expiredQuote = new Quote(symbol, 5.67d, 123, DateTime.Now.AddDays(-2)); var emptyVolumeQuote = new Quote(symbol, 3.45d, 0, DateTime.Now.AddDays(2)); var quotes = new List <IQuote> { emptyVolumeQuote, expiredQuote, expectedQuote }; _quoteRepoMock[symbol].Returns(quotes); // Act var obtainedQuote = _quoteManager.GetBestQuoteWithAvailableVolume(symbol); // Assert Assert.IsNotNull(obtainedQuote); Assert.AreEqual(expectedQuote.Id, obtainedQuote.Id); Assert.AreEqual(expectedQuote.AvailableVolume, obtainedQuote.AvailableVolume); Assert.AreEqual(expectedQuote.ExpirationDate, obtainedQuote.ExpirationDate); Assert.AreEqual(expectedQuote.Price, obtainedQuote.Price); Assert.AreEqual(expectedQuote.Symbol, obtainedQuote.Symbol); Assert.AreNotSame(expectedQuote, obtainedQuote); }