diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/tests/CsvHelper.Tests/Writing/WriteCustomEscapeTests.cs')
-rw-r--r-- | ThirdParty/CsvHelper-master/tests/CsvHelper.Tests/Writing/WriteCustomEscapeTests.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/tests/CsvHelper.Tests/Writing/WriteCustomEscapeTests.cs b/ThirdParty/CsvHelper-master/tests/CsvHelper.Tests/Writing/WriteCustomEscapeTests.cs new file mode 100644 index 0000000..f45da08 --- /dev/null +++ b/ThirdParty/CsvHelper-master/tests/CsvHelper.Tests/Writing/WriteCustomEscapeTests.cs @@ -0,0 +1,63 @@ +using CsvHelper.Configuration; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.Json; +using System.Text.Json.Nodes; +using System.Threading.Tasks; +using System.Xml.Linq; +using Xunit; + +namespace CsvHelper.Tests.Writing +{ + public class WriteCustomEscapeTests + { + [Fact] + public void WriteField_CustomEscapeChar_ModeRFC4180_EscapesQuotesAndEscapeCharacter() + { + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + HasHeaderRecord = false, + Escape = '\\', + }; + using (var writer = new StringWriter()) + using (var csv = new CsvWriter(writer, config)) + { + // {"json":"{\"name\":\"foo\"}"} + // json string -> csv field + // "{\"json\":\"{\\\"name\\\":\\\"foo\\\"}\"}" + csv.WriteField(@"{""json"":""{\""name\"":\""foo\""}""}"); + csv.Flush(); + + var expected = @"""{\""json\"":\""{\\\""name\\\"":\\\""foo\\\""}\""}"""; + Assert.Equal(expected, writer.ToString()); + } + } + + [Fact] + public void WriteField_CustomEscapeChar_ModeEscape_EscapesQuotesAndEscapeCharacter() + { + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + HasHeaderRecord = false, + Escape = '\\', + Mode = CsvMode.Escape, + }; + using (var writer = new StringWriter()) + using (var csv = new CsvWriter(writer, config)) + { + // {"json":"{\"name\":\"foo\"}"} + // json string -> csv field + // {\"json\":\"{\\\"name\\\":\\\"foo\\\"}\"} + csv.WriteField(@"{""json"":""{\""name\"":\""foo\""}""}"); + csv.Flush(); + + var expected = @"{\""json\"":\""{\\\""name\\\"":\\\""foo\\\""}\""}"; + Assert.Equal(expected, writer.ToString()); + } + } + } +} |