1010#include < gtest/gtest.h>
1111#include < rfl/json.hpp>
1212
13- #include " test_utils .h"
13+ #include " util/TempDir .h"
1414
1515namespace openmoq ::moqx::config {
1616namespace {
1717
18- using test::TempYamlFile ;
18+ using test::util::TempDir ;
1919using ::testing::HasSubstr;
2020
2121// --- Parse tests ---
2222
2323TEST (ConfigLoader, MinimalConfig) {
24- TempYamlFile yaml (R"(
24+ TempDir dir;
25+ auto yaml = dir.writeYaml (R"(
2526listeners:
2627 - name: main
2728 udp:
@@ -48,7 +49,7 @@ TEST(ConfigLoader, MinimalConfig) {
4849 port: 9669
4950)" );
5051
51- auto cfg = loadConfig (yaml. path () );
52+ auto cfg = loadConfig (yaml);
5253 EXPECT_EQ (cfg.listeners .value ().size (), 1 );
5354 EXPECT_EQ (cfg.listeners .value ()[0 ].name .value (), " main" );
5455
@@ -66,7 +67,8 @@ TEST(ConfigLoader, MinimalConfig) {
6667}
6768
6869TEST (ConfigLoader, TlsFileConfig) {
69- TempYamlFile yaml (R"(
70+ TempDir dir;
71+ auto yaml = dir.writeYaml (R"(
7072listeners:
7173 - name: production
7274 udp:
@@ -96,7 +98,7 @@ TEST(ConfigLoader, TlsFileConfig) {
9698 port: 9669
9799)" );
98100
99- auto cfg = loadConfig (yaml. path () );
101+ auto cfg = loadConfig (yaml);
100102 const auto & l = cfg.listeners .value ()[0 ];
101103
102104 EXPECT_EQ (l.name .value (), " production" );
@@ -118,7 +120,8 @@ TEST(ConfigLoader, TlsFileConfig) {
118120}
119121
120122TEST (ConfigLoader, ServicesWithAuthorityAndPath) {
121- TempYamlFile yaml (R"(
123+ TempDir dir;
124+ auto yaml = dir.writeYaml (R"(
122125listeners:
123126 - name: main
124127 udp:
@@ -149,7 +152,7 @@ TEST(ConfigLoader, ServicesWithAuthorityAndPath) {
149152 max_groups_per_track: 3
150153)" );
151154
152- auto cfg = loadConfig (yaml. path () );
155+ auto cfg = loadConfig (yaml);
153156 ASSERT_EQ (cfg.services .value ().size (), 2 );
154157
155158 const auto & svc0 = cfg.services .value ().at (" live" );
@@ -208,7 +211,8 @@ TEST(ConfigLoader, ServicesWithAuthorityAndPath) {
208211}
209212
210213TEST (ConfigLoader, ServicesWithAnyAuthority) {
211- TempYamlFile yaml (R"(
214+ TempDir dir;
215+ auto yaml = dir.writeYaml (R"(
212216listeners:
213217 - name: main
214218 udp:
@@ -229,7 +233,7 @@ TEST(ConfigLoader, ServicesWithAnyAuthority) {
229233 max_groups_per_track: 3
230234)" );
231235
232- auto cfg = loadConfig (yaml. path () );
236+ auto cfg = loadConfig (yaml);
233237 ASSERT_EQ (cfg.services .value ().size (), 1 );
234238 const auto & svc = cfg.services .value ().at (" default" );
235239 ASSERT_EQ (svc.match .value ().size (), 1 );
@@ -256,7 +260,8 @@ TEST(ConfigLoader, ServicesWithAnyAuthority) {
256260}
257261
258262TEST (ConfigLoader, ServiceDefaults) {
259- TempYamlFile yaml (R"(
263+ TempDir dir;
264+ auto yaml = dir.writeYaml (R"(
260265listeners:
261266 - name: main
262267 udp:
@@ -278,7 +283,7 @@ TEST(ConfigLoader, ServiceDefaults) {
278283 path: {prefix: "/"}
279284)" );
280285
281- auto cfg = loadConfig (yaml. path () );
286+ auto cfg = loadConfig (yaml);
282287 ASSERT_TRUE (cfg.service_defaults .value ().has_value ());
283288 ASSERT_TRUE (cfg.service_defaults .value ()->cache .value ().has_value ());
284289 EXPECT_EQ (cfg.service_defaults .value ()->cache .value ()->max_tracks .value (), 50 );
@@ -289,7 +294,8 @@ TEST(ConfigLoader, ServiceDefaults) {
289294}
290295
291296TEST (ConfigLoader, TlsDirectoryConfig) {
292- TempYamlFile yaml (R"(
297+ TempDir dir;
298+ auto yaml = dir.writeYaml (R"(
293299listeners:
294300 - name: multi
295301 udp:
@@ -312,12 +318,13 @@ TEST(ConfigLoader, TlsDirectoryConfig) {
312318 path: {prefix: "/"}
313319)" );
314320
315- auto cfg = loadConfig (yaml. path () );
321+ auto cfg = loadConfig (yaml);
316322 EXPECT_EQ (cfg.listeners .value ().size (), 1 );
317323}
318324
319325TEST (ConfigLoader, TlsDirectoryConfigNoDefault) {
320- TempYamlFile yaml (R"(
326+ TempDir dir;
327+ auto yaml = dir.writeYaml (R"(
321328listeners:
322329 - name: multi
323330 udp:
@@ -339,7 +346,7 @@ TEST(ConfigLoader, TlsDirectoryConfigNoDefault) {
339346 path: {prefix: "/"}
340347)" );
341348
342- auto cfg = loadConfig (yaml. path () );
349+ auto cfg = loadConfig (yaml);
343350 EXPECT_EQ (cfg.listeners .value ().size (), 1 );
344351}
345352
@@ -369,7 +376,8 @@ TEST(ConfigSchema, GeneratesValidJson) {
369376// --- Load from file test ---
370377
371378TEST (ConfigLoader, LoadFromFile) {
372- TempYamlFile yaml (R"(
379+ TempDir dir;
380+ auto yaml = dir.writeYaml (R"(
373381listeners:
374382 - name: test
375383 udp:
@@ -396,7 +404,7 @@ TEST(ConfigLoader, LoadFromFile) {
396404 port: 9669
397405)" );
398406
399- auto cfg = loadConfig (yaml. path () );
407+ auto cfg = loadConfig (yaml);
400408 EXPECT_EQ (cfg.listeners .value ()[0 ].name .value (), " test" );
401409 ASSERT_TRUE (cfg.services .value ().at (" default" ).cache .value ().has_value ());
402410 EXPECT_EQ (cfg.services .value ().at (" default" ).cache .value ()->enabled .value (), false );
@@ -407,14 +415,16 @@ TEST(ConfigLoader, LoadFromFileNotFound) {
407415}
408416
409417TEST (ConfigLoader, LoadFromFileInvalidYaml) {
410- TempYamlFile yaml (" not: [valid: yaml: config" );
411- EXPECT_THROW (loadConfig (yaml.path ()), std::runtime_error);
418+ TempDir dir;
419+ auto yaml = dir.writeYaml (" not: [valid: yaml: config" );
420+ EXPECT_THROW (loadConfig (yaml), std::runtime_error);
412421}
413422
414423// --- Unknown field tests ---
415424
416425TEST (ConfigLoader, UnknownFieldIgnoredNonStrict) {
417- TempYamlFile yaml (R"(
426+ TempDir dir;
427+ auto yaml = dir.writeYaml (R"(
418428listeners:
419429 - name: main
420430 udp:
@@ -442,11 +452,12 @@ TEST(ConfigLoader, UnknownFieldIgnoredNonStrict) {
442452 port: 9669
443453)" );
444454
445- EXPECT_NO_THROW (loadConfig (yaml. path () ));
455+ EXPECT_NO_THROW (loadConfig (yaml));
446456}
447457
448458TEST (ConfigLoader, UnknownFieldRejectedStrict) {
449- TempYamlFile yaml (R"(
459+ TempDir dir;
460+ auto yaml = dir.writeYaml (R"(
450461listeners:
451462 - name: main
452463 udp:
@@ -474,7 +485,7 @@ TEST(ConfigLoader, UnknownFieldRejectedStrict) {
474485 port: 9669
475486)" );
476487
477- EXPECT_THROW (loadConfig (yaml. path () , /* strict=*/ true ), std::runtime_error);
488+ EXPECT_THROW (loadConfig (yaml, /* strict=*/ true ), std::runtime_error);
478489}
479490
480491#ifdef CONFIG_EXAMPLE_PATH
0 commit comments