From 2c192af35dea5d50209a649f88b14fa9599ae749 Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Sat, 29 Jun 2019 20:20:31 +0900 Subject: [PATCH] test: add test for toml::string format --- tests/CMakeLists.txt | 1 + tests/test_string.cpp | 113 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 tests/test_string.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 01d038c..b395c7a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,6 @@ set(TEST_NAMES test_datetime + test_string test_utility test_result test_traits diff --git a/tests/test_string.cpp b/tests/test_string.cpp new file mode 100644 index 0000000..f007bdf --- /dev/null +++ b/tests/test_string.cpp @@ -0,0 +1,113 @@ +#define BOOST_TEST_MODULE "test_string" +#include +#include + +BOOST_AUTO_TEST_CASE(test_basic_string) +{ + { + const toml::string str("basic string"); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "\"basic string\""); + } + { + const std::string s1 ("basic string"); + const toml::string str(s1); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "\"basic string\""); + } + { + const toml::string str("basic string", toml::string_t::basic); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "\"basic string\""); + } + { + const std::string s1 ("basic string"); + const toml::string str(s1, toml::string_t::basic); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "\"basic string\""); + } +} + +BOOST_AUTO_TEST_CASE(test_basic_ml_string) +{ + { + const toml::string str("basic\nstring"); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "\"\"\"\nbasic\nstring\\\n\"\"\""; + BOOST_TEST(oss1.str() == oss2.str()); + } + { + const std::string s1 ("basic\nstring"); + const toml::string str(s1); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "\"\"\"\nbasic\nstring\\\n\"\"\""; + BOOST_TEST(oss1.str() == oss2.str()); + } + { + const toml::string str("basic\nstring", toml::string_t::basic); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "\"\"\"\nbasic\nstring\\\n\"\"\""; + BOOST_TEST(oss1.str() == oss2.str()); + + } + { + const std::string s1 ("basic\nstring"); + const toml::string str(s1, toml::string_t::basic); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "\"\"\"\nbasic\nstring\\\n\"\"\""; + BOOST_TEST(oss1.str() == oss2.str()); + } +} + + +BOOST_AUTO_TEST_CASE(test_literal_string) +{ + { + const toml::string str("literal string", toml::string_t::literal); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "'literal string'"); + } + { + const std::string s1 ("literal string"); + const toml::string str(s1, toml::string_t::literal); + std::ostringstream oss; + oss << str; + BOOST_TEST(oss.str() == "'literal string'"); + } +} + +BOOST_AUTO_TEST_CASE(test_literal_ml_string) +{ + { + const toml::string str("literal\nstring", toml::string_t::literal); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "'''\nliteral\nstring'''"; + BOOST_TEST(oss1.str() == oss2.str()); + + } + { + const std::string s1 ("literal\nstring"); + const toml::string str(s1, toml::string_t::literal); + std::ostringstream oss1; + oss1 << str; + std::ostringstream oss2; + oss2 << "'''\nliteral\nstring'''"; + BOOST_TEST(oss1.str() == oss2.str()); + } +} +