public void ReadRecord_ReadingMoreThanExist_ReturnsNull()
        {
            var csvReader = new CustomCsvReader(FakeCsvGenerator.GenerateGoodTextReader(recordAmount: 4, addHeaders: true));

            IList <IDictionary <string, string> > records = Enumerable.Range(0, 5).Select(index => csvReader.ReadRecord()).ToList();

            Assert.IsNull(records[4]);
        }
        public void ReadRecord_HeadersAmountNotEqualValueAmount_ThrowsException()
        {
            var csvReader = new CustomCsvReader(FakeCsvGenerator.GenerateNotNormalizedTextReader(addHeaders: true));

            Assert.Catch(() =>
            {
                var results = Enumerable.Range(0, FakeCsvGenerator.magicNumber).Select(i => csvReader.ReadRecord()).ToList();
            });
        }
        public void ReadRecord_GoodStreamWithHeadersAndNoOptions_ReturnsDictionary()
        {
            TextReader stream    = FakeCsvGenerator.GenerateGoodTextReader(addHeaders: true);
            var        csvReader = new CustomCsvReader(stream);

            IDictionary <string, string> record = csvReader.ReadRecord();

            Assert.AreEqual(FakeCsvGenerator.GenerateRecord(FakeCsvGenerator.GenerateRecordValues(-1), FakeCsvGenerator.GenerateRecordValues(0)), record);
        }
        public void ReadValues_GoodStreamWithHeadersAndNoOptions_ReturnsListOfValues()
        {
            TextReader stream    = FakeCsvGenerator.GenerateGoodTextReader(addHeaders: true);
            var        csvReader = new CustomCsvReader(stream);

            IList <string> recordValues = csvReader.ReadValues();

            Assert.AreEqual(FakeCsvGenerator.GenerateRecordValues(0), recordValues);
        }
        public void ReadRecord_GoodStreamNoHeadersInFileOrInOptions_ThrowsException()
        {
            var csvReader = new CustomCsvReader(FakeCsvGenerator.GenerateGoodTextReader(), new CustomCsvReaderOptions()
            {
                ReadHeaders = false
            });

            Assert.Catch(() =>
            {
                csvReader.ReadRecord();
            });
        }
        public void ReadValues_GoodStreamAndNoHeaders_ReturnsListOfValues()
        {
            TextReader stream    = FakeCsvGenerator.GenerateGoodTextReader();
            var        csvReader = new CustomCsvReader(stream, new CustomCsvReaderOptions()
            {
                ReadHeaders = false
            });

            IList <string> recordValues = csvReader.ReadValues();

            Assert.AreEqual(FakeCsvGenerator.GenerateRecordValues(0), recordValues);
        }
 public void ReadRecord_AmountOfProvidedHeadersNotSameAsAmountOfHeadersInFile_ThrowsExceptionAtCreation()
 {
     Assert.Catch(() =>
     {
         var csvReader = new CustomCsvReader(
             FakeCsvGenerator.GenerateGoodTextReader(addHeaders: true),
             new CustomCsvReaderOptions()
         {
             ReadHeaders = true,
             Headers     = FakeCsvGenerator.GenerateRecordValues(-10, FakeCsvGenerator.magicNumber * 2)
         });
     });
 }
        public void ReadRecord_ProvidingOwnHeadersInsteadHeadersInFile_ReturnsDictionary()
        {
            var csvReader = new CustomCsvReader(
                FakeCsvGenerator.GenerateGoodTextReader(addHeaders: true),
                new CustomCsvReaderOptions()
            {
                ReadHeaders = true,
                Headers     = FakeCsvGenerator.GenerateRecordValues(-10)
            });

            var result = Enumerable.Range(0, FakeCsvGenerator.magicNumber).Select(i => csvReader.ReadRecord()).ToList();

            Assert.AreEqual(
                Enumerable.Range(0, FakeCsvGenerator.magicNumber).Select(i => FakeCsvGenerator.GenerateRecord(FakeCsvGenerator.GenerateRecordValues(-10), FakeCsvGenerator.GenerateRecordValues(i))).ToList(),
                result
                );
        }