public async Task TestReading() { string fileName = CommaDelimitedFileUnitTest.ComposeFileName(); try { IReadOnlyCollection<string> columnNames = Enumerable.Range(0, CommaDelimitedFileUnitTest.CountColumns) .Select( (int item) => item.ToString(CultureInfo.InvariantCulture)) .ToArray(); ITabularFileAdapter fileStore = null; try { fileStore = new CommaDelimitedFileAdapter(fileName, columnNames); Assert.IsTrue(File.Exists(fileName)); Dictionary<string, string> columnsWritten = columnNames .ToDictionary( (string item) => item, (string item) => Guid.NewGuid().ToString()); IRow rowWritten = await fileStore.InsertRow(columnsWritten); Assert.IsNotNull(rowWritten); Assert.IsFalse(string.IsNullOrWhiteSpace(rowWritten.Key)); IRow rowRead = await fileStore.ReadRow(rowWritten.Key); Assert.IsNotNull(rowRead.Columns); Assert.AreEqual(CommaDelimitedFileUnitTest.CountColumns, rowRead.Columns.Count); foreach (string columnName in columnsWritten.Keys) { Assert.IsTrue( string.Equals( columnsWritten[columnName], rowRead.Columns[columnName], StringComparison.OrdinalIgnoreCase)); } } finally { if (fileStore != null) { fileStore.Dispose(); fileStore = null; } } } finally { if (File.Exists(fileName)) { File.Delete(fileName); } } }