Implemented CSVStorage

This commit is contained in:
tsommer committed 2024-05-05 20:23:17 +02:00
1 parent 07ffe92067
commit 951858a99e
2 files changed
+200

No files matched your search

+36
View File
@@ -1,4 +1,5 @@
using System.Diagnostics.CodeAnalysis;
using CSV_Metrics_Logger;
namespace Tests;
@@ -81,4 +82,39 @@ public sealed class Tests
Assert.That(dataLine, Is.EquivalentTo(new[] { "New York", "35", "1.85" }));
});
}
[Test]
public async Task TestWritingCSV()
{
List<TestDataOneLine> testData =
[
new TestDataOneLine("Name 1", 14),
new TestDataOneLine("Name 2", 25),
new TestDataOneLine("Name 3", 36),
new TestDataOneLine("Name 4", 47),
new TestDataOneLine("Name 5", 58),
];
// Get a random file:
var fileName = Path.GetTempFileName();
await using (var storage = CSVStorage<TestDataOneLine>.Create(fileName))
{
foreach (var data in testData)
storage.Write(data);
}
var lines = await File.ReadAllLinesAsync(fileName);
Assert.Multiple(() =>
{
Assert.That(lines, Has.Length.EqualTo(6));
Assert.That(lines[0], Is.EqualTo("Name;Age"));
Assert.That(lines[1], Is.EqualTo("\"Name 1\";14"));
Assert.That(lines[2], Is.EqualTo("\"Name 2\";25"));
Assert.That(lines[3], Is.EqualTo("\"Name 3\";36"));
Assert.That(lines[4], Is.EqualTo("\"Name 4\";47"));
Assert.That(lines[5], Is.EqualTo("\"Name 5\";58"));
});
File.Delete(fileName);
}
}