public void Write_RealFileUTF8_Success()
        {
            // Arrange
            var fileName = Path.Combine(ConfigurationManager.AppSettings.Get("sampleDataPath"), "quotesUTF8.txt");

            if (File.Exists(fileName))
                File.Delete(fileName);

            try
            {
                // Act
                using (var writer = new CsvWriter(fileName: fileName, delimiter: DELIMETER_AS_SPACE, append: false, encoding: Encoding.UTF8))
                {
                    string[] values1 = { "è", "€" };
                    writer.Write(values1);
                    string[] values2 = { "è2", "€2" };
                    writer.Write(values2);
                    writer.Close();
                }

                // Assert
                var fileLines = File.ReadAllLines(fileName);
                Assert.AreEqual(2, fileLines.Count(), "Invalid file exported");
                Assert.AreEqual("è €", fileLines[0]);
                Assert.AreEqual("è2 €2", fileLines[1]);
            }
            finally
            {
                if (File.Exists(fileName))
                    File.Delete(fileName);
            }
        }
        public void Write_RealFile_Success()
        {
            // Arrange
            var fileName = Path.Combine(ConfigurationManager.AppSettings.Get("sampleDataPath"), "quotesUTF8.txt");

            if (File.Exists(fileName))
                File.Delete(fileName);

            try
            {
                // Act
                using (var writer = new CsvWriter(fileName, DELIMETER_AS_SPACE, false, Encoding.ASCII))
                {
                    string[] values1 = { "qw", "er" };
                    writer.Write(values1);
                    string[] values2 = { "ty", "ui" };
                    writer.Write(values2);
                    writer.Close();
                }

                // Assert
                var fileLines = File.ReadAllLines(fileName);
                Assert.AreEqual(2, fileLines.Count(), "Invalid file exported");
                Assert.AreEqual("qw er", fileLines[0]);
                Assert.AreEqual("ty ui", fileLines[1]);
            }
            finally
            {
                if (File.Exists(fileName))
                    File.Delete(fileName);
            }
        }
        public void Write_TwoStringsWithSemicolonDelimeter_Success()
        {
            // Arrange
            using (var stream = new MemoryStream())
            {
                using (var streamWriter = new StreamWriter(stream))

                // Act
                using (var writerUnderTest = new CsvWriter(streamWriter, DELIMETER_AS_SEMICOLON))
                {
                    string[] values1 = { "qw", "er" };
                    writerUnderTest.Write(values1);
                    string[] values2 = { "ty", "ui" };
                    writerUnderTest.Write(values2);
                    writerUnderTest.Close();
                }

                // Assert
                var expectedLines = string.Format("qw;er{0}ty;ui{0}", Environment.NewLine);
                var actualLines = Encoding.UTF8.GetString(stream.ToArray());
                Assert.AreEqual(expectedLines, actualLines);
            }
        }
        public void Write_WriterDisposed_ThrowException()
        {
            // Arrange
            using (var stream = new MemoryStream())
            {
                using (var streamWriter = new StreamWriter(stream))
                {
                    // Act
                    var writerUnderTest = new CsvWriter(streamWriter);

                    string[] values1 = { "qw" };
                    writerUnderTest.Write(values1);
                    writerUnderTest.Close();

                    string[] values2 = { "ty" };
                    writerUnderTest.Write(values2);
                }
            }
        }