@@ -27,3 +27,33 @@ TEST_CASE("enum test copy encoder/decoder","[enum_copy_encoder_decoder]")
2727 REQUIRE (test_case.encoding (test_3.cref ()," \xE0\x83\x83 " ,true ));
2828 REQUIRE (test_case.decoding (" \xE0\x83\x83 " ,test_3.cref (),true ));
2929}
30+
31+ TEST_CASE (" optional value present in enum with default encoder/decoder" ," [optional_preset_enum_default_encoder_decoder]" )
32+ {
33+ fast_test_coding_case<simple16::templates_description> test_case;
34+ simple16::Test_4 test_4;
35+ simple16::Test_4_mref test_4_mref = test_4.mref ();
36+ test_4_mref.set_discrete ().as_Three ();
37+ REQUIRE (test_4.cref ().get_discrete ().present ());
38+ // \xE0 : 1110 : OK
39+ // 1 : Stop Bit.
40+ // 1 : Set Template Id.
41+ // 1 : Set Field discrete
42+ // 0 : Not used
43+ REQUIRE (test_case.encoding (test_4.cref ()," \xE0\x84\x84 " , true ));
44+ REQUIRE (test_case.decoding (" \xE0\x84\x84 " ,test_4.cref (), true ));
45+ }
46+
47+ TEST_CASE (" optional value not present in enum with default encoder/decoder" ," [optional_preset_enum_default_encoder_decoder]" )
48+ {
49+ fast_test_coding_case<simple16::templates_description> test_case;
50+ simple16::Test_4 test_4;
51+ REQUIRE (!test_4.cref ().get_discrete ().present ());
52+ // \xC0 : 1100 : OK
53+ // 1 : Stop Bit.
54+ // 1 : Set Template Id.
55+ // 0 : Not Set Field discrete
56+ // 0 : Not used
57+ REQUIRE (test_case.encoding (test_4.cref ()," \xC0\x84 " , true ));
58+ REQUIRE (test_case.decoding (" \xC0\x84 " ,test_4.cref (), true ));
59+ }
0 commit comments