From 3429622d754a87ecca98b3fbde994f24e40d34b4 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 20 Apr 2020 20:10:25 +0300 Subject: Rewrite configuration tests in catch2 - Drop s_conf check in operator<< as s_conf cannot be nullptr there - Add arithmetic type cast to string values --- lib/configuration/test/parser.cpp | 126 -------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 lib/configuration/test/parser.cpp (limited to 'lib/configuration/test/parser.cpp') diff --git a/lib/configuration/test/parser.cpp b/lib/configuration/test/parser.cpp deleted file mode 100644 index 3ad64a5..0000000 --- a/lib/configuration/test/parser.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include "configuration.h" -#include -#include -#include -#include -#include - -class ConfigurationTest : public ::testing::Test -{ -protected: - void SetUp() override - { - conf.read_file(std::getenv("CONFIGFILE")); - } - - Configuration conf{ - { "name", std::string() }, - { "over", std::string() }, - { "other", std::string("not in cfg") }, // this entry is not in the conf file - { "comment", std::string() }, // commented out entry in the conf file - { "number", int(0) }, - { "toggle", bool(false) }, - - { "main/name", std::string() }, - { "main/number", int(0) }, - { "main/toggle", bool(true) }, - - { "extra/name", std::string() }, - { "extra/number", int(0) }, - { "extra/toggle", bool(false) }, - }; - - std::unique_ptr global_conf = std::make_unique>>({ - { "name", std::string("global") }, - { "number", int(123) }, - { "toggle", bool(true) }, - - }); -}; - -TEST_F(ConfigurationTest, NoSection) -{ - EXPECT_EQ(conf.value("name").value(), "Top level"); - EXPECT_EQ(conf.value("other").value(), "not in cfg"); - EXPECT_EQ(conf.value("comment").value(), ""); - EXPECT_EQ(conf.value("number").value(), 12); - EXPECT_TRUE(conf.value("toggle").value()); - EXPECT_FALSE(conf.value("nullopt")); - EXPECT_FALSE(conf.value("nullopt")); - EXPECT_FALSE(conf.value("nullopt")); -} - -TEST_F(ConfigurationTest, TypeCasts) -{ - EXPECT_EQ(conf.value("number").value(), "12"); - EXPECT_EQ(conf.value("toggle").value(), "true"); - EXPECT_EQ(conf.value("main/toggle").value(), "false"); -} - -TEST_F(ConfigurationTest, QtSpecialization) -{ - EXPECT_EQ(conf.value("name").value(), "Top level"); - EXPECT_EQ(conf.value("number").value(), "12"); - EXPECT_EQ(conf.value("toggle").value(), "true"); - EXPECT_EQ(conf.value("main/toggle").value(), "false"); - EXPECT_FALSE(conf.value("nullopt")); - - EXPECT_EQ(conf.value("list").value(), QStringList({ "one", "two", "three", "for four" })); - EXPECT_FALSE(conf.value("nullopt")); -} - -TEST_F(ConfigurationTest, QtShortcut) -{ - QAction action; - EXPECT_EQ(conf.shortcut(action, "qt/shortcut").shortcut().toString(), "Ctrl+Q"); - EXPECT_EQ(conf.shortcut(action, "qt/nil").shortcut().toString(), "Ctrl+Q"); - - QKeySequence sequence; - EXPECT_EQ(conf.shortcut(sequence, "qt/shortcut").toString(), "Ctrl+Q"); - EXPECT_EQ(conf.shortcut(sequence, "qt/nil").toString(), "Ctrl+Q"); -} - -TEST_F(ConfigurationTest, MainSection) -{ - EXPECT_EQ(conf.value("main/name").value(), "Section Testing"); - EXPECT_EQ(conf.value("main/number").value(), 10); - EXPECT_FALSE(conf.value("main/toggle").value()); -} - -TEST_F(ConfigurationTest, ExtraSection) -{ - EXPECT_EQ(conf.value("over").value(), "extra"); - EXPECT_EQ(conf.value("extra/name").value(), "extra section"); - EXPECT_EQ(conf.value("extra/number").value(), 12); - EXPECT_TRUE(conf.value("extra/toggle").value()); -} - -TEST_F(ConfigurationTest, GlobalInstance) -{ - std::stringstream output; - - output << *global_conf; - EXPECT_EQ(output.str(), "name=global\nnumber=123\ntoggle=true\n") << "operator<< on global_conf before move"; - - Configuration::move_global(std::move(global_conf)); - Configuration g; - EXPECT_TRUE(g.value("name")); - EXPECT_EQ(g.value("name").value(), "global"); - EXPECT_TRUE(g.value("number")); - EXPECT_EQ(g.value("number").value(), 123); - EXPECT_TRUE(g.value("toggle")); - EXPECT_EQ(g.value("toggle").value(), true); - EXPECT_FALSE(g.value("nullopt")); - - output.str(std::string()); - output << g; - EXPECT_EQ(output.str(), "name=global\nnumber=123\ntoggle=true\n") << "operator<< on global_conf after move"; -} - -int main(int argc, char **argv) -{ - QApplication a(argc, argv); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} -- cgit v1.2.1