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");
        }
示例#5
0
        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());
        }
示例#10
0
        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");
 }