From ed76a7d54c3d3f42e5fa9965877ec97498875f65 Mon Sep 17 00:00:00 2001 From: George Sedov <george.sedov@desy.de> Date: Thu, 2 Dec 2021 13:08:14 +0100 Subject: [PATCH] Fix unit tests --- .../json_parser/test_json_parser.cpp | 49 +++++++++++++++++++ receiver/src/receiver_config.cpp | 4 +- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/common/cpp/unittests/json_parser/test_json_parser.cpp b/common/cpp/unittests/json_parser/test_json_parser.cpp index dfc5f3c6c..9c2bf4f4f 100644 --- a/common/cpp/unittests/json_parser/test_json_parser.cpp +++ b/common/cpp/unittests/json_parser/test_json_parser.cpp @@ -19,6 +19,7 @@ using ::testing::Return; using ::testing::SetArgPointee; using ::testing::HasSubstr; using ::testing::ElementsAre; +using ::testing::Pair; using ::testing::DoAll; using asapo::JsonFileParser; @@ -209,6 +210,54 @@ TEST(ParseString, StringArrayConvertToJson) { ASSERT_THAT(vec, ElementsAre("s1", "s2", "s3")); } +TEST(ParseString, ObjectMemberArrayConvertToJson) { + std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})"; + + JsonStringParser parser{json}; + + std::vector<std::string> vec; + auto err = parser.GetArrayObjectMembers("object", &vec); + + ASSERT_THAT(err, Eq(nullptr)); + ASSERT_THAT(vec, ElementsAre("k1", "k2", "k3")); +} + +TEST(ParseString, DictionaryStringConvertToJson) { + std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})"; + + JsonStringParser parser{json}; + + std::map<std::string, std::string> map; + auto err = parser.GetDictionaryString("object", &map); + + ASSERT_THAT(err, Eq(nullptr)); + ASSERT_THAT(map, ElementsAre(Pair("k1", "v1"), Pair("k2", "v2"), Pair("k3", "v3"))); +} + +TEST(ParseString, RawStringConvertToJson) { + std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})"; + + JsonStringParser parser{json}; + + std::string value; + auto err = parser.GetRawString(&value); + + ASSERT_THAT(err, Eq(nullptr)); + ASSERT_THAT(json, Eq(value)); +} + +TEST(ParseString, ArrayRawStringConvertToJson) { + std::string json = R"({"array":[{"k1":"v1"},{"k2":"v2"},{"k3":"v3"}]})"; + + JsonStringParser parser{json}; + + std::vector<std::string> vec; + auto err = parser.GetArrayRawStrings("array", &vec); + + ASSERT_THAT(err, Eq(nullptr)); + ASSERT_THAT(vec, ElementsAre(R"({"k1":"v1"})", R"({"k2":"v2"})", R"({"k3":"v3"})")); +} + class ParseFileTests : public Test { public: NiceMock<MockIO> mock_io; diff --git a/receiver/src/receiver_config.cpp b/receiver/src/receiver_config.cpp index c32526d3f..ae62336fc 100644 --- a/receiver/src/receiver_config.cpp +++ b/receiver/src/receiver_config.cpp @@ -42,7 +42,9 @@ Error ReceiverConfigManager::ReadConfigFromFile(std::string file_name) { (err = parser.GetString("LogLevel", &log_level)) || (err = parser.Embedded("Kafka").GetBool("Enabled", &kafkaEnabled)); - + if (err) { + return err; + } if (kafkaEnabled) { // read the configuration only if kafka is enabled. empty configuration means "disabled" -- GitLab