10 #include <gtest/gtest.h>
13 #include <fmt/ostream.h>
32 m_config_manager.Register(&m_config.value0, {
"value0",
"description"});
33 m_config_manager.Register(&m_config.value1, {
"value1",
"description"});
35 EXPECT_THROW(m_config_manager.Register(&m_config.value0, {}), std::invalid_argument);
39 m_config_manager.Register(&m_config.value0, {
"value0",
"description value0"});
41 auto val = m_config_manager.Get(&m_config.value0);
45 EXPECT_EQ(val.metadata.canonical_name,
"value0");
46 EXPECT_EQ(val.metadata.description,
"description value0");
48 EXPECT_THROW(m_config_manager.Get(&m_config.value1), std::invalid_argument)
49 <<
"value1 has not been registered and Get() should throw invalid_argument in that case";
53 m_config_manager.Register(&m_config.value0, {
"value0",
"description value0"});
54 m_config_manager.Register(&m_config.value1, {
"value1",
"description value1"});
58 auto val = m_config_manager.Get(&m_config.value0);
64 m_config_manager.Update(&m_config.value0, 2, {daq::config::Origin::CommandLine,
"args"});
65 auto val = m_config_manager.Get(&m_config.value0);
68 EXPECT_EQ(val.origin.description,
"args");
69 EXPECT_EQ(val.metadata.canonical_name,
"value0");
70 EXPECT_EQ(val.metadata.description,
"description value0");
daq::config::Manager m_config_manager
Maintains the associativity of configuration attributes with metadata and value origin/priority.
daq::config::Manager and associated types.
@ Default
Built-in default value.
@ CommandLine
Command line argument.
TEST_F(TestConfigManager, Register)
EXPECT_EQ(meta.rr_uri, "zpb.rr://meta")
ASSERT_EQ(meta.keyword_rules.size(), 1u)