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