public void GetMarketDataSource_WhenSourceIsCsvFile_ReturnsAValidSource()
        {
            // Arrange
            var mockMarketDataSourceValidator = MockRepository.GenerateMock <IMarketDataSourceValidator>();
            var mockMarketDataParser          = MockRepository.GenerateMock <IMarketDataParser>();

            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceExists()).Return(true);
            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceIsEmpty()).Return(false);
            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceIsValid()).Return(true);
            var marketDataSrcProcessor = new MarketDataCsvSourceProcessor(mockMarketDataSourceValidator, mockMarketDataParser);

            MarketDataSourceFactory.SetMarketDataSource(marketDataSrcProcessor);

            // Act
            var source = MarketDataSourceFactory.GetMarketDataSource(@"Market.csv");

            // Assert
            Assert.AreEqual(marketDataSrcProcessor, source);
        }
        public void MarketDataCsvSourceProcessor_WhenDataSourceContainsOneLender_ReturnsValidMarketDataWithOneLender()
        {
            var mockMarketDataParser          = MockRepository.GenerateMock <IMarketDataParser>();
            var mockMarketDataSourceValidator = MockRepository.GenerateMock <IMarketDataSourceValidator>();

            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceExists()).Return(true);
            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceIsValid()).Return(true);
            mockMarketDataSourceValidator.Stub(m => m.MarketDataSourceIsEmpty()).Return(false);

            var marketDataSource = new MarketDataCsvSourceProcessor(mockMarketDataSourceValidator, mockMarketDataParser);
            var mockLender       = CreateMockLender(500, 0.05);
            var mockMarketData   = CreateMockMarketData(mockLender);

            mockMarketDataParser.Stub(m => m.Parse()).Return(new List <IMarketData> {
                mockMarketData
            });

            var marketData = marketDataSource.GetMarketData();

            Assert.AreEqual(1, marketData.Count);
        }