@@ -47,6 +47,14 @@ TEST_CASE("MessageSet")
4747 CHECK_THROWS ((msgSet.messages | get_pair{1 }));
4848 REQUIRE ((msgSet.messages | get_num_payloads{0 }) == 1 );
4949 REQUIRE ((msgSet.messages | count_parts{}) == 1 );
50+ // messages: [hdr, pl] — one pair
51+ REQUIRE ((msgSet.messages | get_pair{0 }).headerIdx == 0 );
52+ REQUIRE ((msgSet.messages | get_pair{0 }).payloadIdx == 1 );
53+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
54+ auto indices = msgSet.messages | get_pair{i};
55+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
56+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
57+ }
5058}
5159
5260TEST_CASE (" MessageSetWithFunction" )
@@ -74,6 +82,11 @@ TEST_CASE("MessageSetWithFunction")
7482 CHECK_THROWS ((msgSet.messages | get_pair{1 }));
7583 REQUIRE ((msgSet.messages | get_num_payloads{0 }) == 1 );
7684 REQUIRE ((msgSet.messages | count_parts{}) == 1 );
85+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
86+ auto indices = msgSet.messages | get_pair{i};
87+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
88+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
89+ }
7790}
7891
7992TEST_CASE (" MessageSetWithMultipart" )
@@ -107,6 +120,16 @@ TEST_CASE("MessageSetWithMultipart")
107120 CHECK_THROWS ((msgSet.messages | get_pair{2 }));
108121 REQUIRE ((msgSet.messages | get_num_payloads{0 }) == 2 );
109122 REQUIRE ((msgSet.messages | count_parts{}) == 1 );
123+ // messages: [hdr, pl0, pl1] — one header, two payloads
124+ REQUIRE ((msgSet.messages | get_pair{0 }).headerIdx == 0 );
125+ REQUIRE ((msgSet.messages | get_pair{0 }).payloadIdx == 1 );
126+ REQUIRE ((msgSet.messages | get_pair{1 }).headerIdx == 0 );
127+ REQUIRE ((msgSet.messages | get_pair{1 }).payloadIdx == 2 );
128+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
129+ auto indices = msgSet.messages | get_pair{i};
130+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
131+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
132+ }
110133}
111134
112135TEST_CASE (" MessageSetAddPartRef" )
@@ -183,6 +206,11 @@ TEST_CASE("MessageSetAddMultiple")
183206 REQUIRE ((msgSet.messages | get_num_payloads{2 }) == 2 );
184207 REQUIRE ((msgSet.messages | count_parts{}) == 3 );
185208 REQUIRE ((msgSet.messages | count_payloads{}) == 4 );
209+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
210+ auto indices = msgSet.messages | get_pair{i};
211+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
212+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
213+ }
186214}
187215
188216TEST_CASE (" GetHeaderPayloadOperators" )
@@ -234,6 +262,16 @@ TEST_CASE("GetHeaderPayloadOperators")
234262
235263 REQUIRE ((msgSet.messages | count_parts{}) == 2 );
236264 REQUIRE ((msgSet.messages | count_payloads{}) == 2 );
265+ // messages: [hdr0, pl0, hdr1, pl1] — two standard pairs
266+ REQUIRE ((msgSet.messages | get_pair{0 }).headerIdx == 0 );
267+ REQUIRE ((msgSet.messages | get_pair{0 }).payloadIdx == 1 );
268+ REQUIRE ((msgSet.messages | get_pair{1 }).headerIdx == 2 );
269+ REQUIRE ((msgSet.messages | get_pair{1 }).payloadIdx == 3 );
270+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
271+ auto indices = msgSet.messages | get_pair{i};
272+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
273+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
274+ }
237275}
238276
239277TEST_CASE (" GetHeaderPayloadMultiPayload" )
@@ -323,6 +361,20 @@ TEST_CASE("GetHeaderPayloadMultiPayload")
323361 REQUIRE ((msgSet.messages | get_num_payloads{1 }) == 3 );
324362 REQUIRE ((msgSet.messages | count_parts{}) == 2 );
325363 REQUIRE ((msgSet.messages | count_payloads{}) == 4 );
364+ // messages: [hdr0, pl0, hdr1, pl1_0, pl1_1, pl1_2]
365+ REQUIRE ((msgSet.messages | get_pair{0 }).headerIdx == 0 );
366+ REQUIRE ((msgSet.messages | get_pair{0 }).payloadIdx == 1 );
367+ REQUIRE ((msgSet.messages | get_pair{1 }).headerIdx == 2 );
368+ REQUIRE ((msgSet.messages | get_pair{1 }).payloadIdx == 3 );
369+ REQUIRE ((msgSet.messages | get_pair{2 }).headerIdx == 2 );
370+ REQUIRE ((msgSet.messages | get_pair{2 }).payloadIdx == 4 );
371+ REQUIRE ((msgSet.messages | get_pair{3 }).headerIdx == 2 );
372+ REQUIRE ((msgSet.messages | get_pair{3 }).payloadIdx == 5 );
373+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
374+ auto indices = msgSet.messages | get_pair{i};
375+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
376+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
377+ }
326378}
327379
328380TEST_CASE (" TraditionalSplitParts" )
@@ -390,4 +442,16 @@ TEST_CASE("TraditionalSplitParts")
390442 }
391443 REQUIRE ((msgSet.messages | count_parts{}) == 3 );
392444 REQUIRE ((msgSet.messages | count_payloads{}) == 3 );
445+ // messages: [hdr0, pl0, hdr1, pl1, hdr2, pl2] — three traditional split pairs
446+ REQUIRE ((msgSet.messages | get_pair{0 }).headerIdx == 0 );
447+ REQUIRE ((msgSet.messages | get_pair{0 }).payloadIdx == 1 );
448+ REQUIRE ((msgSet.messages | get_pair{1 }).headerIdx == 2 );
449+ REQUIRE ((msgSet.messages | get_pair{1 }).payloadIdx == 3 );
450+ REQUIRE ((msgSet.messages | get_pair{2 }).headerIdx == 4 );
451+ REQUIRE ((msgSet.messages | get_pair{2 }).payloadIdx == 5 );
452+ for (size_t i = 0 ; i < msgSet.pairMap .size (); ++i) {
453+ auto indices = msgSet.messages | get_pair{i};
454+ REQUIRE (&msgSet.messages [indices.headerIdx ] == &msgSet.associatedHeader (i));
455+ REQUIRE (&msgSet.messages [indices.payloadIdx ] == &msgSet.associatedPayload (i));
456+ }
393457}
0 commit comments