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); }
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); }
private string GetRawDataValue(CSVDataSourceLocation location, CSVDataToImport csvDataToImport) { var data = csvDataToImport.Data as string[][]; return data[location.Row][location.Column]; }
private string GetRawDataValue(CSVDataSourceLocation location, CSVDataToImport csvDataToImport) { var data = csvDataToImport.Data as string[][]; return(data[location.Row][location.Column]); }