diff options
Diffstat (limited to 'nihil.config/tests/string.cc')
| -rw-r--r-- | nihil.config/tests/string.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/nihil.config/tests/string.cc b/nihil.config/tests/string.cc new file mode 100644 index 0000000..aeb1ef8 --- /dev/null +++ b/nihil.config/tests/string.cc @@ -0,0 +1,36 @@ +/* + * This source code is released into the public domain. + */ + +#include <string> + +#include <catch2/catch_test_macros.hpp> + +import nihil.config; + +TEST_CASE("nihil.config: string option", "[nihil][nihil.config]") +{ + std::string storage; + + auto opt = nihil::config::get_option("test_option"); + REQUIRE(!opt); + + { + auto string_option = nihil::config::string( + storage, "test_option", "This is a test option"); + + auto opt = nihil::config::get_option("test_option"); + REQUIRE(opt); + + REQUIRE((*opt)->name() == "test_option"); + REQUIRE((*opt)->description() == "This is a test option"); + REQUIRE((*opt)->is_default() == true); + REQUIRE((*opt)->string() == ""); + + REQUIRE((*opt)->string("testing")); + REQUIRE(storage == "testing"); + } + + opt = nihil::config::get_option("test_option"); + REQUIRE(!opt); +} |
