Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
FolkerKinzel committed Jan 28, 2025
1 parent e2427f1 commit a05a59a
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 14 deletions.
32 changes: 32 additions & 0 deletions src/FolkerKinzel.CsvTools.Tests/CsvRecordTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using System.Collections;

namespace FolkerKinzel.CsvTools.Tests;

Expand Down Expand Up @@ -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<KeyValuePair<string, ReadOnlyMemory<char>>> enumerator2 = record.GetEnumerator();
Assert.AreEqual(enumerator2.GetType(), enumerator.GetType());
}

[TestMethod()]
public void ToStringTest()
{
Expand Down Expand Up @@ -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());
}


}
33 changes: 20 additions & 13 deletions src/FolkerKinzel.CsvTools.Tests/CsvTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,51 +114,58 @@ 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);
}

[TestMethod]
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);
}

[TestMethod]
public void OpenWriteTest3()
{
using var stringWriter = new StringWriter();
using var writer = Csv.OpenWrite(stringWriter, []);
using CsvWriter writer = Csv.OpenWrite(stringWriter, []);
Assert.AreEqual(',', writer.Delimiter);
}

[TestMethod]
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]);
}
}
2 changes: 1 addition & 1 deletion src/FolkerKinzel.CsvTools/CsvRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ public override string ToString()
{
if (this.Count == 0)
{
return base.ToString() ?? string.Empty;
return "<Empty>";
}

var sb = new StringBuilder();
Expand Down

0 comments on commit a05a59a

Please sign in to comment.