public async Task Write() { var pd = new MockProcessDisplay(); var writeFile = (CsvFile)m_WriteFile.Clone(); writeFile.FileName = UnitTestInitializeCsv.GetTestPath("BasicCSVOut.txt"); FileSystemUtils.FileDelete(writeFile.FileName); writeFile.FileFormat.FieldDelimiter = "|"; var writer = new CsvFileWriter(writeFile, pd); var res = await writer.WriteAsync(writeFile.SqlStatement, 360, null, pd.CancellationToken); Assert.IsTrue(FileSystemUtils.FileExists(writeFile.FileName)); Assert.AreEqual(7, res); }
public async Task WriteDataTableHandleIssuesAsync() { using (var dataTable = new DataTable { TableName = "DataTable", Locale = CultureInfo.InvariantCulture }) { dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Text", typeof(string)); for (var i = 0; i < 100; i++) { var row = dataTable.NewRow(); row["ID"] = i; row["Text"] = "Text" + i.ToString(CultureInfo.CurrentCulture); dataTable.Rows.Add(row); } var writeFile = new CsvFile { ID = "Test.txt", FileName = UnitTestInitializeCsv.GetTestPath("Test.txt"), SqlStatement = "Hello" }; writeFile.ColumnCollection.Add(new Column("Text", DataType.Integer)); writeFile.Header = "##This is a header for {FileName}"; writeFile.Footer = "##This is a Footer\r\n{Records} in file"; var count = 0; using (var processDisplay = new CustomProcessDisplay(UnitTestInitializeCsv.Token)) { var writer = new CsvFileWriter(writeFile, processDisplay); writer.Warning += (sender, e) => { count++; }; using (var reader = new DataTableWrapper(dataTable)) { // await reader.OpenAsync(processDisplay.CancellationToken); Assert.AreEqual(100, await writer.WriteAsync(reader, processDisplay.CancellationToken), "Records"); } Assert.AreEqual(100, count, "Warnings"); } Assert.IsTrue(File.Exists(writeFile.FileName)); } }