Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 67f62d1

Browse files
committed
Merge branch 'master' of github.com:ServiceStack/ServiceStack.Text
2 parents 1340b00 + 7091c2e commit 67f62d1

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/ServiceStack.Text/TextExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static object ToCsvField(this object text)
4242
textSerialized = TypeSerializer.SerializeToString(text).StripQuotes();
4343
}
4444

45-
return textSerialized == null || !CsvWriter.HasAnyEscapeChars(textSerialized)
45+
return textSerialized.IsNullOrEmpty() || !CsvWriter.HasAnyEscapeChars(textSerialized)
4646
? textSerialized
4747
: string.Concat
4848
(

tests/ServiceStack.Text.Tests/CsvSerializerTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,26 @@ public void Can_serialize_single_ObjectDictionary_or_ObjectKvps()
335335
Assert.That(kvps.ToCsv().NormalizeNewLines(), Is.EqualTo("Id,CustomerId\n1,ALFKI").Or.EqualTo("CustomerId,Id\nALFKI,1"));
336336
}
337337

338+
[Test]
339+
public void Can_serialize_single_ObjectDictionary_or_ObjectKvps_WithEmptyString()
340+
{
341+
var row = new Dictionary<string, object>
342+
{
343+
{ "Id", 1 },
344+
{ "CustomerId", "" },
345+
};
346+
347+
Assert.That(row.ToCsv().NormalizeNewLines(), Is.EqualTo("Id,CustomerId\n1,").Or.EqualTo("CustomerId,Id\n,1"));
348+
349+
var kvps = new[]
350+
{
351+
new KeyValuePair<string, object>("Id", 1),
352+
new KeyValuePair<string, object>("CustomerId", ""),
353+
};
354+
355+
Assert.That(kvps.ToCsv().NormalizeNewLines(), Is.EqualTo("Id,CustomerId\n1,").Or.EqualTo("CustomerId,Id\n,1"));
356+
}
357+
338358
[Test]
339359
public void Can_serialize_single_StringDictionary_or_StringKvps()
340360
{

0 commit comments

Comments
 (0)