@@ -18,63 +18,46 @@ static Logger MakeNullLogger() {
1818 return Logger{std::make_shared<NullBackend>()};
1919}
2020
21- TEST (HandleFDv2PollResponseTest, NotModifiedSetsFdv1FallbackWhenHeaderPresent) {
21+ static FDv2SourceResult HandleResponse (
22+ unsigned status,
23+ std::optional<std::string> body,
24+ network::HttpResult::HeadersType headers) {
2225 auto logger = MakeNullLogger ();
2326 FDv2ProtocolHandler handler;
27+ network::HttpResult res{status, std::move (body), std::move (headers)};
28+ return HandleFDv2PollResponse (res, &handler, logger, " test" );
29+ }
2430
25- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " true" }};
26- network::HttpResult res{304 , std::nullopt , std::move (headers)};
27-
28- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
29-
31+ TEST (HandleFDv2PollResponseTest, NotModifiedSetsFdv1FallbackWhenHeaderPresent) {
32+ auto result =
33+ HandleResponse (304 , std::nullopt , {{" X-LD-FD-Fallback" , " true" }});
3034 EXPECT_TRUE (
3135 std::holds_alternative<FDv2SourceResult::ChangeSet>(result.value ));
3236 EXPECT_TRUE (result.fdv1_fallback );
3337}
3438
3539TEST (HandleFDv2PollResponseTest, FlagIsFalseWhenHeaderAbsent) {
36- auto logger = MakeNullLogger ();
37- FDv2ProtocolHandler handler;
38-
39- network::HttpResult res{304 , std::nullopt , {}};
40-
41- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
42-
40+ auto result = HandleResponse (304 , std::nullopt , {});
4341 EXPECT_FALSE (result.fdv1_fallback );
4442}
4543
4644TEST (HandleFDv2PollResponseTest, RecoverableErrorPropagatesFlag) {
47- auto logger = MakeNullLogger ();
48- FDv2ProtocolHandler handler;
49-
50- network::HttpResult::HeadersType headers{{" x-ld-fd-fallback" , " true" }};
51- network::HttpResult res{400 , std::nullopt , std::move (headers)};
52-
53- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
54-
45+ auto result =
46+ HandleResponse (400 , std::nullopt , {{" x-ld-fd-fallback" , " true" }});
5547 EXPECT_TRUE (
5648 std::holds_alternative<FDv2SourceResult::Interrupted>(result.value ));
5749 EXPECT_TRUE (result.fdv1_fallback );
5850}
5951
6052TEST (HandleFDv2PollResponseTest, TerminalErrorPropagatesFlag) {
61- auto logger = MakeNullLogger ();
62- FDv2ProtocolHandler handler;
63-
64- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " true" }};
65- network::HttpResult res{401 , std::nullopt , std::move (headers)};
66-
67- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
68-
53+ auto result =
54+ HandleResponse (401 , std::nullopt , {{" X-LD-FD-Fallback" , " true" }});
6955 EXPECT_TRUE (
7056 std::holds_alternative<FDv2SourceResult::TerminalError>(result.value ));
7157 EXPECT_TRUE (result.fdv1_fallback );
7258}
7359
7460TEST (HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
75- auto logger = MakeNullLogger ();
76- FDv2ProtocolHandler handler;
77-
7861 std::string const body =
7962 R"( {"events":[)"
8063 R"( {"event":"server-intent","data":{"payloads":[)"
@@ -86,10 +69,7 @@ TEST(HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
8669 R"( {"event":"payload-transferred","data":{"state":"abc","version":1}})"
8770 R"( ]})" ;
8871
89- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " true" }};
90- network::HttpResult res{200 , body, std::move (headers)};
91-
92- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
72+ auto result = HandleResponse (200 , body, {{" X-LD-FD-Fallback" , " true" }});
9373
9474 auto * change_set = std::get_if<FDv2SourceResult::ChangeSet>(&result.value );
9575 ASSERT_NE (change_set, nullptr );
@@ -98,49 +78,29 @@ TEST(HandleFDv2PollResponseTest, OkWithChangeSetBodyPropagatesFlag) {
9878}
9979
10080TEST (HandleFDv2PollResponseTest, OkWithMissingBodyPropagatesFlag) {
101- auto logger = MakeNullLogger ();
102- FDv2ProtocolHandler handler;
103-
104- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " true" }};
105- network::HttpResult res{200 , std::nullopt , std::move (headers)};
106-
107- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
108-
81+ auto result =
82+ HandleResponse (200 , std::nullopt , {{" X-LD-FD-Fallback" , " true" }});
10983 EXPECT_TRUE (
11084 std::holds_alternative<FDv2SourceResult::Interrupted>(result.value ));
11185 EXPECT_TRUE (result.fdv1_fallback );
11286}
11387
11488TEST (HandleFDv2PollResponseTest, HeaderValueIsCaseInsensitive) {
115- auto logger = MakeNullLogger ();
116- FDv2ProtocolHandler handler;
117-
118- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " TRUE" }};
119- network::HttpResult res{304 , std::nullopt , std::move (headers)};
120-
121- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
122-
89+ auto result =
90+ HandleResponse (304 , std::nullopt , {{" X-LD-FD-Fallback" , " TRUE" }});
12391 EXPECT_TRUE (result.fdv1_fallback );
12492}
12593
12694TEST (HandleFDv2PollResponseTest, HeaderValueOtherThanTrueDoesNotSetFlag) {
127- auto logger = MakeNullLogger ();
128- FDv2ProtocolHandler handler;
129-
130- network::HttpResult::HeadersType headers{{" X-LD-FD-Fallback" , " false" }};
131- network::HttpResult res{304 , std::nullopt , std::move (headers)};
132-
133- auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
134-
95+ auto result =
96+ HandleResponse (304 , std::nullopt , {{" X-LD-FD-Fallback" , " false" }});
13597 EXPECT_FALSE (result.fdv1_fallback );
13698}
13799
138100TEST (HandleFDv2PollResponseTest, NetworkErrorDoesNotSetFlag) {
139101 auto logger = MakeNullLogger ();
140102 FDv2ProtocolHandler handler;
141-
142103 network::HttpResult res{std::optional<std::string>{" connection refused" }};
143-
144104 auto result = HandleFDv2PollResponse (res, &handler, logger, " test" );
145105
146106 EXPECT_TRUE (
0 commit comments