Skip to content

Commit d20237b

Browse files
committed
Add unit test for the case of the group presence
1 parent 07a1626 commit d20237b

File tree

4 files changed

+43
-4
lines changed

4 files changed

+43
-4
lines changed

tests/fast_test_coding_case_v2.hpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ class fast_test_coding_case_v2
1818
decoder_v2_(DESC::instance())
1919
{}
2020

21-
bool
22-
encoding(const mfast::message_cref& msg_ref, const byte_stream& result, bool reset=false)
21+
bool encoding(const mfast::message_cref& msg_ref, const byte_stream& result, bool reset=false)
2322
{
2423
const int buffer_size = 128;
2524
char buffer[buffer_size];
@@ -32,8 +31,7 @@ class fast_test_coding_case_v2
3231
return false;
3332
}
3433

35-
bool
36-
decoding(const byte_stream& bytes, const mfast::message_cref& result, bool reset=false)
34+
bool decoding(const byte_stream& bytes, const mfast::message_cref& result, bool reset=false)
3735
{
3836
const char* first = bytes.data();
3937
mfast::message_cref msg = decoder_v2_.decode(first, first+bytes.size(), reset);

tests/sequence_encoder_decoder.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,3 +237,19 @@ TEST_CASE("group sequence inside sequence encoder/decoder","[group_sequence_insi
237237
REQUIRE(test_case.decoding("\xC0\x86\x81\xD0\xB2\x82\xB2",test_6.cref(),true));
238238
}
239239
}
240+
241+
TEST_CASE("sequence with optional group encoder/decoder","[sequence_optional_group_encoder_decoder]")
242+
{
243+
fast_test_coding_case<simple14::templates_description> test_case;
244+
simple14::Test_7 test_7;
245+
simple14::Test_7_mref test_7_mref = test_7.mref();
246+
247+
auto sequence_7_mref = test_7_mref.set_sequence_7();
248+
sequence_7_mref.resize(1);
249+
250+
auto element_sequence = sequence_7_mref.front();
251+
element_sequence.set_field_7_3().as(50);
252+
253+
REQUIRE(test_case.encoding(test_7.cref(),"\xC0\x87\x81\xC0\xB2",true));
254+
REQUIRE(test_case.decoding("\xC0\x87\x81\xC0\xB2",test_7.cref(),true));
255+
}

tests/sequence_encoder_decoder_v2.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,19 @@ TEST_CASE("group sequence inside sequence encoder_V2/decoder_v2","[group_sequenc
239239
REQUIRE(test_case.decoding("\xC0\x86\x81\xD0\xB2\x82\xB2",test_6.cref(),true));
240240
}
241241
}
242+
243+
TEST_CASE("sequence with optional group encoder_V2/decoder_v2","[sequence_optional_group_encoder_v2_decoder_v2]")
244+
{
245+
fast_test_coding_case_v2<simple14::templates_description> test_case;
246+
simple14::Test_7 test_7;
247+
simple14::Test_7_mref test_7_mref = test_7.mref();
248+
249+
auto sequence_7_mref = test_7_mref.set_sequence_7();
250+
sequence_7_mref.resize(1);
251+
252+
auto element_sequence = sequence_7_mref.front();
253+
element_sequence.set_field_7_3().as(50);
254+
255+
REQUIRE(test_case.encoding(test_7.cref(),"\xC0\x87\x81\xC0\xB2",true));
256+
REQUIRE(test_case.decoding("\xC0\x87\x81\xC0\xB2",test_7.cref(),true));
257+
}

tests/simple14.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,13 @@
5454
</sequence>
5555
</group>
5656
</template>
57+
<template name="Test_7" id="7">
58+
<sequence name="sequence_7">
59+
<length name="field_7_2" id="72"></length>
60+
<uInt32 name="field_7_3" id="73"><copy/></uInt32>
61+
<group name="group_7" presence="optional">
62+
<uInt32 name="field_7_4" id="74"/>
63+
</group>
64+
</sequence>
65+
</template>
5766
</templates>

0 commit comments

Comments
 (0)