aboutsummaryrefslogtreecommitdiff
path: root/test/base
diff options
context:
space:
mode:
Diffstat (limited to 'test/base')
-rw-r--r--test/base/CMakeLists.txt1
-rw-r--r--test/base/toml/ParserTest.cpp31
2 files changed, 32 insertions, 0 deletions
diff --git a/test/base/CMakeLists.txt b/test/base/CMakeLists.txt
index b36bbd23..38cb9d57 100644
--- a/test/base/CMakeLists.txt
+++ b/test/base/CMakeLists.txt
@@ -6,6 +6,7 @@ add_executable(CruBaseTest
StringUtilTest.cpp
SubProcessTest.cpp
TimerTest.cpp
+ toml/ParserTest.cpp
xml/ParserTest.cpp
)
target_link_libraries(CruBaseTest PRIVATE CruBase CruTestBase)
diff --git a/test/base/toml/ParserTest.cpp b/test/base/toml/ParserTest.cpp
new file mode 100644
index 00000000..2582e3c3
--- /dev/null
+++ b/test/base/toml/ParserTest.cpp
@@ -0,0 +1,31 @@
+#include "cru/base/toml/TomlDocument.h"
+#include "cru/base/toml/TomlParser.h"
+
+#include <catch2/catch_test_macros.hpp>
+
+using namespace cru::toml;
+
+TEST_CASE("CruTomlParserTest Simple", "[toml]") {
+ TomlParser parser(
+ R"(
+a1 = v1
+a2 = v2
+# comment
+
+[s1]
+# comment
+a3 = v3
+a4 = v4
+
+[s2]
+a5 = v5
+a6 = v6
+ )");
+ auto document = parser.Parse();
+ REQUIRE(document.GetSection("")->GetValue("a1") == "v1");
+ REQUIRE(document.GetSection("")->GetValue("a2") == "v2");
+ REQUIRE(document.GetSection("s1")->GetValue("a3") == "v3");
+ REQUIRE(document.GetSection("s1")->GetValue("a4") == "v4");
+ REQUIRE(document.GetSection("s2")->GetValue("a5") == "v5");
+ REQUIRE(document.GetSection("s2")->GetValue("a6") == "v6");
+}