From 1107db64f170e7c05be2083f3f637471b1ba3caf Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 15 Feb 2025 12:02:17 -0600 Subject: [PATCH] Refactored app_config unit tests --- .../repertory_test/src/app_config_test.cpp | 85 ++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/repertory/repertory_test/src/app_config_test.cpp b/repertory/repertory_test/src/app_config_test.cpp index 58d4ad69..4b876173 100644 --- a/repertory/repertory_test/src/app_config_test.cpp +++ b/repertory/repertory_test/src/app_config_test.cpp @@ -614,7 +614,90 @@ static void common_tests(app_config &config, provider_type prov) { cfg.set_ring_buffer_file_size(max_ring_buffer_file_size + 1U); EXPECT_EQ(max_ring_buffer_file_size, cfg.get_ring_buffer_file_size()); }}, - {JSON_S3_CONFIG, [](auto &&cfg) {}}, + {JSON_S3_CONFIG, + [](auto &&cfg) { + s3_config cfg1{}; + cfg1.access_key = "1"; + cfg1.bucket = "2"; + cfg1.encryption_token = "3"; + cfg1.region = "4"; + cfg1.secret_key = "5"; + cfg1.timeout_ms = 6U; + cfg1.url = "7"; + cfg1.use_path_style = false; + cfg1.use_region_in_url = false; + + s3_config cfg2{}; + cfg2.access_key = "8"; + cfg2.bucket = "9"; + cfg2.encryption_token = "10"; + cfg2.region = "11"; + cfg2.secret_key = "12"; + cfg2.timeout_ms = 13U; + cfg2.url = "14"; + cfg2.use_path_style = true; + cfg2.use_region_in_url = true; + + ASSERT_NE(cfg1, cfg2); + + test_getter_setter(cfg, &app_config::get_s3_config, + &app_config::set_s3_config, cfg1, cfg2, "", ""); + + s3_config cfg3{}; + cfg3.access_key = "8"; + cfg3.bucket = "9"; + cfg3.encryption_token = "10"; + cfg3.region = "11"; + cfg3.secret_key = "12"; + cfg3.timeout_ms = 13U; + cfg3.url = "14"; + cfg3.use_path_style = true; + cfg3.use_region_in_url = true; + + auto value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_ACCESS_KEY), + cfg3.access_key); + EXPECT_STREQ(cfg3.access_key.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_BUCKET), cfg3.bucket); + EXPECT_STREQ(cfg3.bucket.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_ENCRYPTION_TOKEN), + cfg3.encryption_token); + EXPECT_STREQ(cfg3.encryption_token.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_REGION), cfg3.region); + EXPECT_STREQ(cfg3.region.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_SECRET_KEY), + cfg3.secret_key); + EXPECT_STREQ(cfg3.secret_key.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_TIMEOUT_MS), + std::to_string(cfg3.timeout_ms)); + EXPECT_STREQ(std::to_string(cfg3.timeout_ms).c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_URL), cfg3.url); + EXPECT_STREQ(cfg3.url.c_str(), value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_USE_PATH_STYLE), + utils::string::from_bool(cfg3.use_path_style)); + EXPECT_STREQ(utils::string::from_bool(cfg3.use_path_style).c_str(), + value.c_str()); + + value = cfg.set_value_by_name( + fmt::format("{}.{}", JSON_S3_CONFIG, JSON_USE_REGION_IN_URL), + utils::string::from_bool(cfg3.use_region_in_url)); + EXPECT_STREQ(utils::string::from_bool(cfg3.use_region_in_url).c_str(), + value.c_str()); + }}, {JSON_SIA_CONFIG, [](app_config &cfg) { sia_config cfg1{};