76 lines
2.5 KiB
C#
76 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using Sarand.Net.Standard.Base.Data;
|
|
|
|
namespace Sacs.UnitTests.Net.Standard.Base.Data
|
|
{
|
|
//=======================================================================
|
|
[TestClass]
|
|
public class SacsCsvHandler_Tester
|
|
{
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void ParseCsvRecord_FieldCount ()
|
|
{
|
|
Assert.AreEqual(0, SacsCsvHandler.ParseCsvRecord(null).Count);
|
|
Assert.AreEqual(1, SacsCsvHandler.ParseCsvRecord("").Count);
|
|
Assert.AreEqual(2, SacsCsvHandler.ParseCsvRecord(",").Count);
|
|
Assert.AreEqual(3, SacsCsvHandler.ParseCsvRecord("A,B,C").Count);
|
|
Assert.AreEqual(5, SacsCsvHandler.ParseCsvRecord("A,B,C,D,E").Count);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void ParseCsvRecord_Simple_NoText ()
|
|
{
|
|
String data = "A,B,C";
|
|
List<String> fields = SacsCsvHandler.ParseCsvRecord(data);
|
|
Assert.AreEqual(3, fields.Count);
|
|
Assert.AreEqual("B", fields[1]);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void ParseCsvRecord_Text_Simple ()
|
|
{
|
|
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\"B\",C");
|
|
Assert.AreEqual(3, fields.Count);
|
|
Assert.AreEqual("A", fields[0]);
|
|
Assert.AreEqual("B", fields[1]);
|
|
Assert.AreEqual("C", fields[2]);
|
|
|
|
fields = SacsCsvHandler.ParseCsvRecord("A,\"B\",\"C\"");
|
|
Assert.AreEqual(3, fields.Count);
|
|
Assert.AreEqual("A", fields[0]);
|
|
Assert.AreEqual("B", fields[1]);
|
|
Assert.AreEqual("C", fields[2]);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void ParseCsvRecord_Text_WithFieldDelim ()
|
|
{
|
|
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\",\",C");
|
|
Assert.AreEqual(3, fields.Count);
|
|
Assert.AreEqual("A", fields[0]);
|
|
Assert.AreEqual(",", fields[1]);
|
|
Assert.AreEqual("C", fields[2]);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void ParseCsvRecord_Text_EmbeddedTextDelims ()
|
|
{
|
|
List<String> fields = SacsCsvHandler.ParseCsvRecord("A,\"\"\"\",C");
|
|
Assert.AreEqual(3, fields.Count);
|
|
Assert.AreEqual("A", fields[0]);
|
|
Assert.AreEqual("\"", fields[1]);
|
|
Assert.AreEqual("C", fields[2]);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|