#include #include "config.hpp" using svapi::Config; TEST(Config, DefaultsWhenEmpty) { Config c = Config::fromJson(nlohmann::json::object()); EXPECT_EQ(c.logLevel, "info"); EXPECT_EQ(c.httpBind, "0.0.0.0"); EXPECT_EQ(c.httpPort, 8080); EXPECT_EQ(c.dbAddress, "localhost:9004"); } TEST(Config, ParsesProvidedValues) { auto j = nlohmann::json::parse(R"({ "log_level":"debug", "http":{"bind_address":"127.0.0.1","port":9090}, "database":{"address":"db:9004"} })"); Config c = Config::fromJson(j); EXPECT_EQ(c.logLevel, "debug"); EXPECT_EQ(c.httpBind, "127.0.0.1"); EXPECT_EQ(c.httpPort, 9090); EXPECT_EQ(c.dbAddress, "db:9004"); } TEST(Config, IgnoresUnknownKeys) { auto j = nlohmann::json::parse(R"({"nonsense":true,"http":{"port":1234}})"); Config c = Config::fromJson(j); EXPECT_EQ(c.httpPort, 1234); EXPECT_EQ(c.httpBind, "0.0.0.0"); }