From a05a59a9daed13eb414f9afa8ae6ef2245cb80ad Mon Sep 17 00:00:00 2001 From: Folker Kinzel Date: Tue, 28 Jan 2025 15:41:56 +0100 Subject: [PATCH] tests --- .../CsvRecordTests.cs | 32 ++++++++++++++++++ src/FolkerKinzel.CsvTools.Tests/CsvTests.cs | 33 +++++++++++-------- src/FolkerKinzel.CsvTools/CsvRecord.cs | 2 +- 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/FolkerKinzel.CsvTools.Tests/CsvRecordTests.cs b/src/FolkerKinzel.CsvTools.Tests/CsvRecordTests.cs index f3c9a43..f9c7ca9 100644 --- a/src/FolkerKinzel.CsvTools.Tests/CsvRecordTests.cs +++ b/src/FolkerKinzel.CsvTools.Tests/CsvRecordTests.cs @@ -4,6 +4,7 @@ using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Collections.Generic; +using System.Collections; namespace FolkerKinzel.CsvTools.Tests; @@ -150,6 +151,15 @@ public void GetEnumeratorTest1() Assert.AreEqual(3, rec.Select(x => int.Parse(x.Value!.ToString(), CultureInfo.InvariantCulture)).Sum()); } + [TestMethod] + public void GetEnumeratorTest2() + { + var record = new CsvRecord(1); + IEnumerator enumerator = ((IEnumerable)record).GetEnumerator(); + IEnumerator>> enumerator2 = record.GetEnumerator(); + Assert.AreEqual(enumerator2.GetType(), enumerator.GetType()); + } + [TestMethod()] public void ToStringTest() { @@ -223,4 +233,26 @@ public void IndexOfColumnTest() Assert.AreEqual(-1, rec.IndexOfColumn("bla")); Assert.AreEqual(-1, rec.IndexOfColumn(null)); } + + [TestMethod] + public void IsEmptyTest1() + { + var record = new CsvRecord(0); + Assert.IsTrue(record.IsEmpty); + Assert.IsNotNull(record.ToString()); + } + + [TestMethod] + public void IsEmptyTest2() + { + var record = new CsvRecord(1); + Assert.IsTrue(record.IsEmpty); + Assert.IsNotNull(record.ToString()); + + record.Values[0] = "1".AsMemory(); + Assert.IsFalse(record.IsEmpty); + Assert.IsNotNull(record.ToString()); + } + + } \ No newline at end of file diff --git a/src/FolkerKinzel.CsvTools.Tests/CsvTests.cs b/src/FolkerKinzel.CsvTools.Tests/CsvTests.cs index 0fbde5e..6738b6c 100644 --- a/src/FolkerKinzel.CsvTools.Tests/CsvTests.cs +++ b/src/FolkerKinzel.CsvTools.Tests/CsvTests.cs @@ -114,27 +114,20 @@ public void OpenReadTest4(char delimiter) [DataRow('#')] [DataRow('\t')] [DataRow(' ')] - public void OpenReadTest5(char delimiter) - { - _ = Csv.Parse("Hi", delimiter: delimiter); - } + public void OpenReadTest5(char delimiter) => _ = Csv.Parse("Hi", delimiter: delimiter); [DataTestMethod] [DataRow('\"')] [DataRow('\r')] [DataRow('\n')] [ExpectedException(typeof(ArgumentOutOfRangeException))] - public void OpenReadTest6(char delimiter) - { - _ = Csv.Parse("Hi", delimiter: delimiter); - } - + public void OpenReadTest6(char delimiter) => _ = Csv.Parse("Hi", delimiter: delimiter); [TestMethod] public void OpenWriteTest1() { string fileName = Path.Combine(TestContext.TestRunResultsDirectory!, "OpenWriteTest1.csv"); - using var writer = Csv.OpenWrite(fileName, 2); + using CsvWriter writer = Csv.OpenWrite(fileName, 2); Assert.AreEqual(',', writer.Delimiter); } @@ -142,7 +135,7 @@ public void OpenWriteTest1() public void OpenWriteTest2() { string fileName = Path.Combine(TestContext.TestRunResultsDirectory!, "OpenWriteTest1.csv"); - using var writer = Csv.OpenWrite(fileName, []); + using CsvWriter writer = Csv.OpenWrite(fileName, []); Assert.AreEqual(',', writer.Delimiter); } @@ -150,7 +143,7 @@ public void OpenWriteTest2() public void OpenWriteTest3() { using var stringWriter = new StringWriter(); - using var writer = Csv.OpenWrite(stringWriter, []); + using CsvWriter writer = Csv.OpenWrite(stringWriter, []); Assert.AreEqual(',', writer.Delimiter); } @@ -158,7 +151,21 @@ public void OpenWriteTest3() public void OpenWriteTest4() { using var stringWriter = new StringWriter(); - using var writer = Csv.OpenWrite(stringWriter, 2); + using CsvWriter writer = Csv.OpenWrite(stringWriter, 2); Assert.AreEqual(',', writer.Delimiter); } + + [TestMethod] + public void ParseTest1() + { + CsvRecord[] result = Csv.Parse(""" + A,A,A + 1,2,3 + """); + + Assert.AreEqual(1, result.Length); + Assert.AreEqual("A", result[0].ColumnNames[0]); + Assert.AreEqual("A2", result[0].ColumnNames[1]); + Assert.AreEqual("A3", result[0].ColumnNames[2]); + } } diff --git a/src/FolkerKinzel.CsvTools/CsvRecord.cs b/src/FolkerKinzel.CsvTools/CsvRecord.cs index 2043c21..28bee62 100644 --- a/src/FolkerKinzel.CsvTools/CsvRecord.cs +++ b/src/FolkerKinzel.CsvTools/CsvRecord.cs @@ -289,7 +289,7 @@ public override string ToString() { if (this.Count == 0) { - return base.ToString() ?? string.Empty; + return ""; } var sb = new StringBuilder();