コード例 #1
0
        public void CSVParseTestSuccess()
        {
            var dataSource         = new WindowsFileSystem(_csvDataFilePath);
            var dataFromFileSystem = dataSource.FetchData();

            var dataToImport = new CSVDataToImport(dataFromFileSystem);

            var dataSourceLocation         = new CSVDataSourceLocation(6, 3);
            var dataDateTimeSourceLocation = new CSVDataSourceLocation(6, 0);

            var parser = new CellParser(new DefaultParserFactory());

            var parseDoubleResult = parser.Parse(dataToImport, dataSourceLocation, typeof(double));

            Assert.NotNull(parseDoubleResult);
            Assert.AreEqual(parseDoubleResult.Level, ResultLevel.INFO);
            Assert.AreEqual(parseDoubleResult.Message, "Parsing value successfully");
            Assert.AreEqual(0.3, ((IParsingResult)parseDoubleResult).Value);

            var parseDateTimeResult = parser.Parse(dataToImport, dataDateTimeSourceLocation, typeof(DateTime));

            Assert.NotNull(parseDateTimeResult);
            Assert.AreEqual(parseDateTimeResult.Level, ResultLevel.INFO);
            Assert.AreEqual(parseDateTimeResult.Message, "Parsing value successfully");
            Assert.AreEqual(new DateTime(2013, 12, 12, 14, 0, 0), ((IParsingResult)parseDateTimeResult).Value);
        }
コード例 #2
0
        public void CSVParseTestSuccess()
        {

            var dataSource = new WindowsFileSystem(_csvDataFilePath);
            var dataFromFileSystem = dataSource.FetchData();

            var dataToImport = new CSVDataToImport(dataFromFileSystem);

            var dataSourceLocation = new CSVDataSourceLocation(6, 3);
            var dataDateTimeSourceLocation = new CSVDataSourceLocation(6, 0);
            
            var parser = new CellParser(new DefaultParserFactory());

            var parseDoubleResult = parser.Parse(dataToImport, dataSourceLocation, typeof(double));

            Assert.NotNull(parseDoubleResult);
            Assert.AreEqual(parseDoubleResult.Level, ResultLevel.INFO);
            Assert.AreEqual(parseDoubleResult.Message, "Parsing value successfully");
            Assert.AreEqual(0.3, ((IParsingResult)parseDoubleResult).Value);

            var parseDateTimeResult = parser.Parse(dataToImport, dataDateTimeSourceLocation, typeof(DateTime));

            Assert.NotNull(parseDateTimeResult);
            Assert.AreEqual(parseDateTimeResult.Level, ResultLevel.INFO);
            Assert.AreEqual(parseDateTimeResult.Message, "Parsing value successfully");
            Assert.AreEqual(new DateTime(2013, 12, 12, 14, 0, 0), ((IParsingResult)parseDateTimeResult).Value);
        }
        public void NotSupportDataSourceTest()
        {
            var dataSourceLocation = new CSVDataSourceLocation(0, 0);
            var mockDataToImport   = new Mock <IDataToImport>();

            var parserFactory = new DefaultParserFactory();

            var testCellParser = new CellParser(parserFactory);

            var testParsingResult = testCellParser.Parse(mockDataToImport.Object, dataSourceLocation, typeof(int)) as ParsingResult;


            Assert.NotNull(testParsingResult);
            Assert.AreEqual(ResultLevel.FATAL, testParsingResult.Level);
            Assert.AreEqual("Castle.Proxies.IDataToImportProxy is not supported by CSV Cell Parser", testParsingResult.Message);
            Assert.Null(testParsingResult.Value);
        }
        public void PasingSuccessTest()
        {
            var dataSourceLocation = new CSVDataSourceLocation(0, 0);
            var dataToImport       = new CSVDataToImport("test.csv",
                                                         new string[][] {
                new string[] { "1", "2", "3" }
            }
                                                         );

            var parserFactory = new DefaultParserFactory();

            var testCellParser = new CellParser(parserFactory);

            var testParsingResult = testCellParser.Parse(dataToImport, dataSourceLocation, typeof(int)) as ParsingResult;


            Assert.NotNull(testParsingResult);
            Assert.AreEqual(ResultLevel.INFO, testParsingResult.Level);
            Assert.AreEqual("Parsing value successfully", testParsingResult.Message);
            Assert.AreEqual(1, (int)testParsingResult.Value);
        }
        public void OutOfRangeTest()
        {
            var dataSourceLocation = new CSVDataSourceLocation(5, 0);
            var dataToImport       = new CSVDataToImport("test.csv",
                                                         new string[][] {
                new string[] { "1", "2", "3" }
            }
                                                         );

            var parserFactory = new DefaultParserFactory();

            var testCellParser = new CellParser(parserFactory);

            var testParsingResult = testCellParser.Parse(dataToImport, dataSourceLocation, typeof(int)) as ParsingResult;


            Assert.NotNull(testParsingResult);
            Assert.AreEqual(ResultLevel.FATAL, testParsingResult.Level);
            Assert.AreEqual("Index is out of range", testParsingResult.Message);
            Assert.Null(testParsingResult.Value);
        }
コード例 #6
0
        protected IEnumerable <IResult> ExtractDataForSingleRow <T>(IList <IExtractConfiguration> extractConfigurations, IDataToImport dataSource, int currentRow) where T : new()
        {
            var resultsForSingleRow = new List <IResult>();
            var model = new T();

            IDataSourceLocation currentLocation = null;

            foreach (var configuration in extractConfigurations.Where(x => x is ISimpleExtractConfiguration).Cast <ISimpleExtractConfiguration>())
            {
                if (configuration is SimpleCSVExtractConfiguration)
                {
                    currentLocation = new CSVDataSourceLocation(currentRow, ((SimpleCSVExtractConfiguration)configuration).ColumnIndex);
                }
                resultsForSingleRow.AddRange(configuration.ExtractData(model, dataSource, currentLocation));
            }

            var parsingResult = new ParsingResult(ResultLevel.DEBUG, "Extract data from single row success", model, new CSVDataSourceLocation(currentRow, 1));

            resultsForSingleRow.Add(parsingResult);

            return(resultsForSingleRow);
        }
コード例 #7
0
 private string GetRawDataValue(CSVDataSourceLocation location, CSVDataToImport csvDataToImport)
 {
     var data = csvDataToImport.Data as string[][];
     return data[location.Row][location.Column];
 }
コード例 #8
0
        private string GetRawDataValue(CSVDataSourceLocation location, CSVDataToImport csvDataToImport)
        {
            var data = csvDataToImport.Data as string[][];

            return(data[location.Row][location.Column]);
        }