Example #1
0
        static void TestCsvFormatters()
        {
            var action = new Action(() =>
            {
                var test01FilePath = Runtime.GetDesktopFilePath("csv-writer-test-01.csv");
                var test02FilePath = Runtime.GetDesktopFilePath("csv-witer-test-02.csv");

                var generatedRecords = SampleCsvRecord.CreateSampleSet(100);
                $"Generated {generatedRecords.Count} sample records.".Info(nameof(TestCsvFormatters));

                var savedRecordCount = CsvWriter.SaveRecords(generatedRecords, test01FilePath);
                $"Saved {savedRecordCount} records (including header) to file: {Path.GetFileName(test01FilePath)}."
                .Info(nameof(TestCsvFormatters));

                var loadedRecords = CsvReader.LoadRecords <SampleCsvRecord>(test01FilePath);
                $"Loaded {loadedRecords.Count} records from file: {Path.GetFileName(test01FilePath)}.".Info(
                    nameof(TestCsvFormatters));

                savedRecordCount = CsvWriter.SaveRecords(generatedRecords, test02FilePath);
                $"Saved {savedRecordCount} records (including header) to file: {Path.GetFileName(test02FilePath)}."
                .Info(nameof(TestCsvFormatters));

                var sourceObject     = loadedRecords[generatedRecords.Count / 2];
                var targetObject     = new SampleCopyTarget();
                var copiedProperties = sourceObject.CopyPropertiesTo(targetObject);
                $"{nameof(Extensions.CopyPropertiesTo)} method copied {copiedProperties} properties from one object to another"
                .Info(nameof(TestCsvFormatters));
            });

            var elapsed = action.Benchmark();

            $"Elapsed: {Math.Round(elapsed.TotalMilliseconds, 3)} milliseconds".Trace();
        }
Example #2
0
        public void TempFileFilled_SetStreamLengthToZero()
        {
            var tempFile         = Path.GetTempFileName();
            var generatedRecords = SampleCsvRecord.CreateSampleSet(TotalRows);

            var dictionaryheaders = new Dictionary <string, string>
            {
                { "AccessDate", "20171107" },
                { "AlternateId", "1" },
                { "CreationDate", "20171107" },
                { "Description", "Sr. Software Engineer" },
                { "Id", "0001" },
                { "IsValidated", "true" },
                { "Name", "Alexey Turpalov" },
                { "Score", "1245F" },
                { "ValidationResult", "true" }
            };

            var stringHeaders = dictionaryheaders.Select(k => k.Key).ToList();

            using (var stream = File.OpenWrite(tempFile))
            {
                using (var writer = new CsvWriter(stream))
                {
                    writer.WriteHeadings(dictionaryheaders);
                    writer.WriteObjects(stringHeaders);
                }
            }

            CsvWriter.SaveRecords(generatedRecords, tempFile);

            var valuesInFile = CsvReader.LoadRecords <SampleCsvRecord>(tempFile);

            Assert.AreEqual(generatedRecords.Count, valuesInFile.Count, "Same length");
        }
Example #3
0
        public void WithNullList_Invalid()
        {
            var generatedRecords = SampleCsvRecord.CreateSampleSet(TotalRows);

            generatedRecords.Add(null);

            Assert.Throws <ArgumentNullException>(() => CsvWriter.SaveRecords(generatedRecords, new MemoryStream()));
        }
Example #4
0
        public void WithObjectList_Valid()
        {
            var tempFile         = Path.GetTempFileName();
            var generatedRecords = SampleCsvRecord.CreateSampleSet(TotalRows);

            CsvWriter.SaveRecords(generatedRecords, tempFile);

            var valuesInFile = CsvReader.LoadRecords <SampleCsvRecord>(tempFile);

            Assert.AreEqual(generatedRecords.Count, valuesInFile.Count, "Same length");
            Assert.AreEqual(generatedRecords[0].Name, valuesInFile[0].Name, "Same first name");
        }
Example #5
0
        public void WriteObjectTest()
        {
            var tempFile         = Path.GetTempFileName();
            var generatedRecords = SampleCsvRecord.CreateSampleSet(TotalRows);

            CsvWriter.SaveRecords(generatedRecords, tempFile);
            CsvReader.LoadRecords <SampleCsvRecord>(tempFile);

            generatedRecords.Add(null);

            Assert.Throws <ArgumentNullException>(() =>
            {
                CsvWriter.SaveRecords(generatedRecords, tempFile);
            });
        }
Example #6
0
        public void WriteObjectDynamicObjectTest()
        {
            var tempFile         = Path.GetTempFileName();
            var generatedRecords = SampleCsvRecord.CreateSampleSet(TotalRows);

            CsvWriter.SaveRecords(generatedRecords, tempFile);
            var loadedRecords = CsvReader.LoadRecords <SampleCsvRecord>(tempFile);

            dynamic item = SampleCsvRecord.GetItem();

            generatedRecords.Add(item);

            CsvWriter.SaveRecords(generatedRecords, tempFile);
            var newloadedRecords = CsvReader.LoadRecords <SampleCsvRecord>(tempFile);

            Assert.AreNotEqual(loadedRecords, newloadedRecords);
        }