public void CSVReaderWriter_Read_MultiValueTabbedData()
        {
            string         column1    = null;
            string         column2    = null;
            MockDataReader mockReader = new MockDataReader();

            mockReader.ReadLineDelegate = () => string.Join(delimiter.ToString(), new string[] { "data1", "data2", "data3" });

            var csvReaderWriter = new CSVReaderWriter(mockReader, null, delimiter);

            Assert.IsTrue(csvReaderWriter.Read(out column1, out column2));
            Assert.AreEqual("data1", column1);
            Assert.AreEqual("data2", column2);
        }
        public void CSVReaderWriter_Read_CleanupCalledOnClose()
        {
            bool           cleanupCalled = false;
            MockDataReader mockReader    = new MockDataReader();

            mockReader.CloseDelegate =
                () =>
            {
                cleanupCalled = true;
            };

            var csvReaderWriter = new CSVReaderWriter(mockReader, null, delimiter);

            csvReaderWriter.Close();
            Assert.IsTrue(cleanupCalled, "Cleanup was not called for data reader");
        }
        public void CSVReaderWriter_Read_NotOpenedOnWriteOpen()
        {
            MockDataReader mockReader = new MockDataReader();
            MockDataWriter mockWriter = new MockDataWriter();

            mockReader.OpenDelegate =
                (s) =>
            {
                Assert.Fail("Open called for reader");
            };

            var csvReaderWriter = new CSVReaderWriter(mockReader, mockWriter, delimiter);

            csvReaderWriter.Open("somefilepath", Mode.Write);
            csvReaderWriter.OpenWrite("somefilepath");
        }
        public void CSVReaderWriter_Read_Opened()
        {
            int            openCalled = 0;
            MockDataReader mockReader = new MockDataReader();

            mockReader.OpenDelegate =
                (s) =>
            {
                Assert.AreEqual("somefilepath", s);
                openCalled++;
            };

            var csvReaderWriter = new CSVReaderWriter(mockReader, null, delimiter);

            csvReaderWriter.Open("somefilepath", Mode.Read);
            csvReaderWriter.OpenRead("somefilepath");
            Assert.AreEqual(2, openCalled);
        }
        public void CSVReaderWriter_Read_NoTabbedData()
        {
            string         column1        = null;
            string         column2        = null;
            bool           readLineCalled = false;
            MockDataReader mockReader     = new MockDataReader();

            mockReader.ReadLineDelegate =
                () =>
            {
                readLineCalled = true;
                return("somedata");
            };

            var csvReaderWriter = new CSVReaderWriter(mockReader, null, delimiter);

            Assert.IsFalse(csvReaderWriter.Read(out column1, out column2));
            Assert.IsTrue(readLineCalled);
        }