Fixed bug with function getMultipleValuesFromConfig and added test which confirms this.

This commit is contained in:
millb 2019-10-17 19:52:47 +03:00
parent 326dab83d9
commit 26d9ee3ae5
2 changed files with 27 additions and 1 deletions

View File

@ -24,7 +24,7 @@ std::vector<std::string> getMultipleValuesFromConfig(const Poco::Util::AbstractC
{ {
std::vector<std::string> values; std::vector<std::string> values;
for (const auto & key : DB::getMultipleKeysFromConfig(config, root, name)) for (const auto & key : DB::getMultipleKeysFromConfig(config, root, name))
values.emplace_back(config.getString(key)); values.emplace_back(config.getString(root.empty() ? key : root + "." + key));
return values; return values;
} }

View File

@ -0,0 +1,26 @@
#include <Common/getMultipleKeysFromConfig.h>
#include <Poco/AutoPtr.h>
#include <Poco/Util/XMLConfiguration.h>
#include <gtest/gtest.h>
using namespace DB;
TEST(Common, getMultipleValuesFromConfig)
{
std::istringstream xml_isteam(R"END(<?xml version="1.0"?>
<yandex>
<first_level>
<second_level>0</second_level>
<second_level>1</second_level>
<second_level>2</second_level>
<second_level>3</second_level>
</first_level>
</yandex>)END");
Poco::AutoPtr<Poco::Util::XMLConfiguration> config = new Poco::Util::XMLConfiguration(xml_isteam);
std::vector<std::string> answer = getMultipleValuesFromConfig(*config, "first_level", "second_level");
std::vector<std::string> right_answer = {"0", "1", "2", "3"};
EXPECT_EQ(answer, right_answer);
}