コード例 #1
0
        public IFeedAdapter GetFeedAdapter(string fileName)
        {
            var extension = Path.GetExtension(fileName);

            IFeedAdapter feedProvider = null;

            switch (extension)
            {
            case ".xml":
                feedProvider = new XmlFeedAdapter(_fileSystem);
                break;

            case ".json":
                feedProvider = new JsonFeedAdapter(_fileSystem);
                break;
            }

            return(feedProvider);
        }
コード例 #2
0
        public void FillDataSet_WhenProvidedValidXml_ReturnsListOfHorsesWithPrices()
        {
            var mockFileSystem = new Mock <IFileSystem>();

            mockFileSystem.Setup(x => x.ReadAllText(It.IsAny <string>()))
            .Returns(_testData);

            var xmlFeedAdapter = new XmlFeedAdapter(mockFileSystem.Object);

            var dataSet = new DataSet();

            xmlFeedAdapter.Fill(null, dataSet);

            Assert.Equal(2, dataSet.Horses.Count);

            Assert.Equal("Advancing", dataSet.Horses[0].Name);
            Assert.Equal(4.2, dataSet.Horses[0].Price);

            Assert.Equal("Coronel", dataSet.Horses[1].Name);
            Assert.Equal(12, dataSet.Horses[1].Price);
        }
コード例 #3
0
        public void FillDataSet_WhenNoValidPrice_ReturnsListOfHorsesWithPriceSetToZero()
        {
            var mockFileSystem = new Mock <IFileSystem>();

            string testData = File.ReadAllText("../../../TestData/Xml_NoPrice.xml");

            mockFileSystem.Setup(x => x.ReadAllText(It.IsAny <string>()))
            .Returns(testData);

            var xmlFeedAdapter = new XmlFeedAdapter(mockFileSystem.Object);

            var dataSet = new DataSet();

            xmlFeedAdapter.Fill(null, dataSet);

            Assert.Equal(2, dataSet.Horses.Count);

            Assert.Equal("Advancing", dataSet.Horses[0].Name);
            Assert.Equal(4.2, dataSet.Horses[0].Price);

            Assert.Equal("Coronel", dataSet.Horses[1].Name);
            Assert.Equal(0, dataSet.Horses[1].Price);
        }