From 07d343eed8fc6e4753cf016a2cef2ae7b172fdb8 Mon Sep 17 00:00:00 2001 From: Olga Khlopkova Date: Fri, 19 Jun 2020 10:32:07 +0300 Subject: [PATCH] Unit tests for different quotes combinations. Co-authored-by: ldo2 --- tests/unit_tests.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/unit_tests.cpp b/tests/unit_tests.cpp index 134f8df..e43af3d 100644 --- a/tests/unit_tests.cpp +++ b/tests/unit_tests.cpp @@ -180,6 +180,37 @@ TEST_CASE("Read quoted empty values") CHECK_EQ(res[0], ""); CHECK_EQ(res[1], ""); } +TEST_CASE("Read quoted quote") +{ + const auto res = CsvParser::split_record(",\"\"\"\""); + REQUIRE_EQ(res.size(), 2); + CHECK_EQ(res[0], ""); + CHECK_EQ(res[1], "\""); +} + +TEST_CASE("Read quoted double quote") +{ + const auto res = CsvParser::split_record(",\"\"\"\"\"\""); + REQUIRE_EQ(res.size(), 2); + CHECK_EQ(res[0], ""); + CHECK_EQ(res[1], "\"\""); +} + +TEST_CASE("Read quoted values with quotes in begin") +{ + const auto res = CsvParser::split_record(",\"\"\"Name\"\" and some other\""); + REQUIRE_EQ(res.size(), 2); + CHECK_EQ(res[0], ""); + CHECK_EQ(res[1], "\"Name\" and some other"); +} + +TEST_CASE("Read quoted values with quotes at end") +{ + const auto res = CsvParser::split_record(",\"Text and \"\"Name\"\"\""); + REQUIRE_EQ(res.size(), 2); + CHECK_EQ(res[0], ""); + CHECK_EQ(res[1], "Text and \"Name\""); +} TEST_SUITE_END(); TEST_SUITE_BEGIN("Read & write");