public void MappingToPublicPropertiesAllowed() { CsvToObjectMapper <ClassWithPublicField> publicField = new CsvToObjectMapper <ClassWithPublicField>(); publicField.AddMap(t => t.PublicStringField, "FileId"); publicField.ObjectToCsvMapping.Count.Should().Be(1, " public field should be allowed to map to csv"); }
public CsvToObjectReaderTests() { _fileServiceMock = Substitute.For <IFileService>(); _loggerFactoryCsvReaderMock = Substitute.For <ILoggerFactory>(); _fileServiceReal = new FileService(); _csvToObjectMapperFileInfoMock = Substitute.For <CsvToObjectMapper <ServerLogFileInfo> >(); }
public void DontAllowEmptySpaceStringAsCsvColumName() { _csvToObjectMapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); var ex = Assert.Throws <CsvReadWriteException>(() => _csvToObjectMapper.AddMap(t => t.FileId, " ")); ex.Message.Should().Be("Valid csv column name should be passed into AddMap method parameter", "It should not allow to add empty spaces as csv column"); }
public void CsvToObjectMapper_AddMap_MandatoryParameterValueTests() { _csvToObjectMapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); var ex = Assert.Throws <CsvReadWriteException>(() => _csvToObjectMapper.AddMap(t => t.FileId, null)); ex.Message.Should().Be("Valid csv column name should be passed into AddMap method parameter", "csvColumnName is mandatory attribute for mapping"); }
static List <ServerLogFileInfo> GetServerLogFileInfo() { CsvToObjectMapper <ServerLogFileInfo> mapper = new CsvToObjectMapper <ServerLogFileInfo> (); mapper.AddMap((t) => t.FileId, "ID"); mapper.AddMap(t => t.FileName, "Name"); List <ServerLogFileInfo> result = new List <ServerLogFileInfo>(); try { var readCsv = new CsvToObjectReader <ServerLogFileInfo>( Parameters.FilePath, new FileService(), mapper, LoggerFactory); PrintHelper.WriteToConsoleAndLog("CsvToObjectReader instance constructed", true, false); var res = readCsv.Read(out IList <ErrorCodeAndDescription> errorsOccured, out bool parseStatus); ValidateAndLogExtractedList("ServerLogFileInfo", Parameters.FilePath, parseStatus, readCsv.ErrorsOccured, readCsv.ExtractFailedRows, res?.Count()); return(res?.ToList()); } catch (CsvReadWriteException csvException) { PrintHelper.WriteToConsoleAndLog($"{csvException.ErrorCode}\n{csvException.Message}\n{csvException.StackTrace}", true, false); PrintHelper.WriteToConsoleAndLog($"{csvException.ErrorCode}\n{csvException.Message}\nCheck Log for more details", false, true); } catch (Exception ex) { PrintHelper.WriteToConsoleAndLog($"{ex.Message}\n{ex.StackTrace}", true, false); PrintHelper.WriteToConsoleAndLog($"{ex.Message}\nCheck Log for more details", true, true); } return(null); }
public void When_Duplicate_Mapping_Added_Consider_The_Last_Added_Value() { _csvToObjectMapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); _csvToObjectMapper.AddMap(t => t.FileId, "1.csv"); _csvToObjectMapper.AddMap(t => t.FileName, "2.csv"); _csvToObjectMapper.AddMap(t => t.FileId, "3.csv"); _csvToObjectMapper.ObjectToCsvMapping.Count.Should().Be(2, " If we add same item twice, it should only retain the last value"); }
public void CannotAddSameCsvColumnToTwoDifferentProperties() { _csvToObjectMapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); _csvToObjectMapper.AddMap(t => t.FileId, "FileId"); var ex = Assert.Throws <CsvReadWriteException>(() => _csvToObjectMapper.AddMap(t => t.TimeStamp, "FileId")); ex.Should().BeOfType <CsvReadWriteException>() .Which.Message.Should().Be($@"Csv column name 'FileId' already present in the mapping"); }
private List <ServerLogFileInfo> GetServerLogFileInfoList() { string path = TestHelpers.GetPathToTestDataFolder("InputFiles"); _csvToObjectMapperFileInfo = new CsvToObjectMapper <ServerLogFileInfo>(); _csvToObjectMapperFileInfo.AddMap((t) => t.FileId, "ID"); _csvToObjectMapperFileInfo.AddMap(t => t.FileName, "Name"); _readerLogInfo = new CsvToObjectReader <ServerLogFileInfo>($@"{path}\Files_6_rows_sample.csv", _fileServiceReal, _csvToObjectMapperFileInfo, _loggerFactoryCsvReaderMock); return(_readerLogInfo.Read().ToList()); }
private List <ServerLogFactInfo> GetServerLogFactInfoList() { string path = TestHelpers.GetPathToTestDataFolder("InputFiles"); _csvToObjectMapperFactInfo = new CsvToObjectMapper <ServerLogFactInfo>(); _csvToObjectMapperFactInfo.AddMap(t => t.FileId, "FileID"); _csvToObjectMapperFactInfo.AddMap(t => t.SizeInBytes, "SizeInBytes"); _csvToObjectMapperFactInfo.AddMap(t => t.TimeStamp, "Timestamp"); _readerLogFactInfo = new CsvToObjectReader <ServerLogFactInfo>( path + @"\FileStats_18_rows_sample_3_files.csv", new FileService(), _csvToObjectMapperFactInfo, _loggerFactoryCsvReaderMock); return(_readerLogFactInfo.Read().ToList()); }
static void WriteCsvFileFinally(List <ServerLogFileInfo> serverLogFileInfoList, List <ServerLogFactInfo> serverLogFactInfoList) { try { ServerLogFactGrowthInfoGenerator <ServerLogFactGrowthInfo> slfg = new ServerLogFactGrowthInfoGenerator <ServerLogFactGrowthInfo>( serverLogFileInfoList.Cast <IServerLogFileInfo>().ToList(), serverLogFactInfoList.Cast <IServerLogFactInfo>().ToList()); var sliced = slfg.GenerateSlicedList(); PrintHelper.WriteToConsoleAndLog($"Calculation Completed for file growth rate, got back {sliced.Count()} data sets", true, true); PrintHelper.WriteToConsoleAndLog($"Attempting writing to csv files at {Parameters.OutputFolder}", true, true); ICsvToObjectMapper <ServerLogFactGrowthInfo> mapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); mapper.AddMap(t => t.FileId, "FileID"); mapper.AddMap(t => t.FileName, "Name"); mapper.AddMap(t => t.TimeStampFormatted, "Timestamp"); mapper.AddMap(t => t.SizeInBytes, "SizeInBytes"); mapper.AddMap(t => t.GrowthRateInBytesPerHour, "GrowthRateInBytesPerHour"); ReflectionHelper <ServerLogFactGrowthInfo> rh = new ReflectionHelper <ServerLogFactGrowthInfo>(); List <string> fileNames = sliced.Select(list => list?.FirstOrDefault()?.FileId + ".csv").ToList(); ObjectToCsvWriter <ServerLogFactGrowthInfo> objCsvWriter = new ObjectToCsvWriter <ServerLogFactGrowthInfo>(sliced, mapper, new LoggerFactory(), rh, new FileService(), Parameters.OutputFolder, fileNames); objCsvWriter.Write(); PrintHelper.WriteToConsoleAndLog($"Completed writing to {Parameters.OutputFolder}. No of files created {sliced.Count()}", true, true); } catch (CsvReadWriteException csvException) { PrintHelper.WriteToConsoleAndLog($"{csvException.ErrorCode}\n{csvException.Message}\n{csvException.StackTrace}", true, false); PrintHelper.WriteToConsoleAndLog($"{csvException.ErrorCode}\n{csvException.Message}\nCheck Log for more details", false, true); Environment.Exit(0); } catch (Exception ex) { PrintHelper.WriteToConsoleAndLog($"{ex.Message}\n{ex.StackTrace}", true, false); PrintHelper.WriteToConsoleAndLog($"{ex.Message}\nCheck Log for more details", true, true); Environment.Exit(0); } }
public void Dispose() { _csvToObjectMapper = null; }
public void Able_to_Add_ObjectToCsv_Mapping_To_Mapper() { _csvToObjectMapper = new CsvToObjectMapper <ServerLogFactGrowthInfo>(); _csvToObjectMapper.AddMap(t => t.FileId, "1.csv"); _csvToObjectMapper.ObjectToCsvMapping.Count.Should().Be(1, " We have just added one item to map"); }