|
|
@@ -0,0 +1,32 @@
|
|
|
+#include <gtest/gtest.h>
|
|
|
+#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");
|
|
|
+}
|