Skip to content

Commit b9f3365

Browse files
committed
add unit test for the enum case
1 parent 4e0be94 commit b9f3365

File tree

6 files changed

+65
-3
lines changed

6 files changed

+65
-3
lines changed

tests/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ FASTTYPEGEN_TARGET(simple_types12 simple12.xml)
2424
FASTTYPEGEN_TARGET(simple_types13 simple13.xml)
2525
FASTTYPEGEN_TARGET(simple_types14 simple14.xml)
2626
FASTTYPEGEN_TARGET(simple_types15 simple15.xml)
27-
27+
FASTTYPEGEN_TARGET(simple_types16 simple16.xml)
2828

2929
FASTTYPEGEN_TARGET(test_types1 test1.xml test2.xml)
3030
FASTTYPEGEN_TARGET(test_types3 test3.xml)
@@ -70,6 +70,7 @@ add_executable (mfast_test
7070
${FASTTYPEGEN_simple_types13_OUTPUTS}
7171
${FASTTYPEGEN_simple_types14_OUTPUTS}
7272
${FASTTYPEGEN_simple_types15_OUTPUTS}
73+
${FASTTYPEGEN_simple_types16_OUTPUTS}
7374
fast_type_gen_test.cpp
7475
dictionary_builder_test.cpp
7576
json_test.cpp
@@ -82,6 +83,8 @@ add_executable (mfast_test
8283
scp_reset_test.cpp
8384
template_repo_base.cpp
8485
message_pmap_test.cpp
86+
enum_encoder_decoder_v2.cpp
87+
enum_encoder_decoder.cpp
8588
)
8689

8790
target_link_libraries (mfast_test

tests/enum_encoder_decoder.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "catch.hpp"
2+
#include <mfast.h>
3+
4+
#include "fast_test_coding_case.hpp"
5+
#include "byte_stream.h"
6+
7+
#include "simple16.h"
8+
9+
using namespace test::coding;
10+
11+
TEST_CASE("enum test encoder/decoder","[enum_encoder_decoder]")
12+
{
13+
fast_test_coding_case<simple16::templates_description> test_case;
14+
simple16::Test_1 test_1;
15+
simple16::Test_1_mref test_1_mref = test_1.mref();
16+
test_1_mref.set_discrete().as_Three();
17+
REQUIRE(test_case.encoding(test_1.cref(),"\xC0\x81\x83",true));
18+
REQUIRE(test_case.decoding("\xC0\x81\x83",test_1.cref(),true));
19+
}

tests/enum_encoder_decoder_v2.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "catch.hpp"
2+
#include <mfast.h>
3+
4+
#include "fast_test_coding_case_v2.hpp"
5+
#include "byte_stream.h"
6+
7+
#include "simple16.h"
8+
9+
using namespace test::coding;
10+
11+
TEST_CASE("enum test encoder_V2/decoder_v2","[enum_encoder_v2_decoder_v2]")
12+
{
13+
fast_test_coding_case_v2<simple16::templates_description> test_case;
14+
simple16::Test_1 test_1;
15+
simple16::Test_1_mref test_1_mref = test_1.mref();
16+
test_1_mref.set_discrete().as_Three();
17+
REQUIRE(test_case.encoding(test_1.cref(),"\xC0\x81\x83",true));
18+
REQUIRE(test_case.decoding("\xC0\x81\x83",test_1.cref(),true));
19+
}

tests/fast_test_coding_case.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class fast_test_coding_case
3232
if (result == byte_stream(buffer, encoded_size))
3333
return true;
3434

35-
INFO( "Got \"" << byte_stream(buffer, encoded_size) << "\" instead." );
35+
INFO( "Got \"" << byte_stream(buffer, encoded_size) << "\" instead." );
3636
return false;
3737
}
3838

tests/fast_test_coding_case_v2.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class fast_test_coding_case_v2
2727
if (result == byte_stream(buffer, encoded_size))
2828
return true;
2929

30-
INFO( "Got \"" << byte_stream(buffer, encoded_size) << "\" instead." );
30+
INFO( "Got \"" << byte_stream(buffer, encoded_size) << "\" instead." );
3131
return false;
3232
}
3333

tests/simple16.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<templates
3+
xmlns="http://www.fixprotocol.org/ns/fast/td/1.2"
4+
xmlns:scp="http://www.fixprotocol.org/ns/fast/scp/1.2"
5+
templateNs="https://www.deutsche-boerse.com/rta">
6+
<define name="DiscreteEnum">
7+
<enum>
8+
<element name="One" value="1"/>
9+
<element name="Three" value="3"/>
10+
<element name="Five" value="5"/>
11+
</enum>
12+
</define>
13+
<!-- Define templates-->
14+
<template name="Test_1" id="1">
15+
<string name="MsgType" id="35"><constant value="DP"/></string>
16+
<field name="discrete" id="2477"><type name="DiscreteEnum"></type></field>
17+
</template>
18+
<template name="Test_2" id="2">
19+
<string name="MsgType" id="36"><constant value="DQ"/></string>
20+
</template>
21+
</templates>

0 commit comments

Comments
 (0)