test_config.cpp 944 B

1234567891011121314151617181920212223242526272829303132
  1. #include <gtest/gtest.h>
  2. #include "config.hpp"
  3. using svapi::Config;
  4. TEST(Config, DefaultsWhenEmpty) {
  5. Config c = Config::fromJson(nlohmann::json::object());
  6. EXPECT_EQ(c.logLevel, "info");
  7. EXPECT_EQ(c.httpBind, "0.0.0.0");
  8. EXPECT_EQ(c.httpPort, 8080);
  9. EXPECT_EQ(c.dbAddress, "localhost:9004");
  10. }
  11. TEST(Config, ParsesProvidedValues) {
  12. auto j = nlohmann::json::parse(R"({
  13. "log_level":"debug",
  14. "http":{"bind_address":"127.0.0.1","port":9090},
  15. "database":{"address":"db:9004"}
  16. })");
  17. Config c = Config::fromJson(j);
  18. EXPECT_EQ(c.logLevel, "debug");
  19. EXPECT_EQ(c.httpBind, "127.0.0.1");
  20. EXPECT_EQ(c.httpPort, 9090);
  21. EXPECT_EQ(c.dbAddress, "db:9004");
  22. }
  23. TEST(Config, IgnoresUnknownKeys) {
  24. auto j = nlohmann::json::parse(R"({"nonsense":true,"http":{"port":1234}})");
  25. Config c = Config::fromJson(j);
  26. EXPECT_EQ(c.httpPort, 1234);
  27. EXPECT_EQ(c.httpBind, "0.0.0.0");
  28. }