Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cfc3fa5

Browse files
committed
[C++]: added group with only data elements test
1 parent 0f426bc commit cfc3fa5

File tree

1 file changed

+96
-1
lines changed

1 file changed

+96
-1
lines changed

sbe-tool/src/test/cpp/GroupWithDataTest.cpp

Lines changed: 96 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "gtest/gtest.h"
1919
#include "group_with_data/TestMessage1.hpp"
2020
#include "group_with_data/TestMessage2.hpp"
21+
#include "group_with_data/TestMessage4.hpp"
2122

2223
using namespace std;
2324
using namespace group_with_data;
@@ -50,6 +51,7 @@ static const int VAR_DATA_FIELD_2_IDX_1_LENGTH = 11;
5051

5152
static const int expectedTestMessage1Size = 78;
5253
static const int expectedTestMessage2Size = 107;
54+
static const int expectedTestMessage4Size = 73;
5355

5456
class GroupWithDataTest : public testing::Test
5557
{
@@ -103,8 +105,30 @@ class GroupWithDataTest : public testing::Test
103105
return msg2_.size();
104106
}
105107

108+
virtual int encodeTestMessage4(char *buffer, int offset, int bufferLength)
109+
{
110+
msg4_.wrapForEncode(buffer, offset, bufferLength);
111+
112+
msg4_.tag1(TAG_1);
113+
114+
TestMessage4::Entries &entries = msg4_.entriesCount(ENTRIES_COUNT);
115+
116+
entries.next();
117+
118+
entries.putVarDataField1(VAR_DATA_FIELD_1_IDX_0, VAR_DATA_FIELD_1_IDX_0_LENGTH);
119+
entries.putVarDataField2(VAR_DATA_FIELD_2_IDX_0, VAR_DATA_FIELD_2_IDX_0_LENGTH);
120+
121+
entries.next();
122+
123+
entries.putVarDataField1(VAR_DATA_FIELD_1_IDX_1, VAR_DATA_FIELD_1_IDX_1_LENGTH);
124+
entries.putVarDataField2(VAR_DATA_FIELD_2_IDX_1, VAR_DATA_FIELD_2_IDX_1_LENGTH);
125+
126+
return msg4_.size();
127+
}
128+
106129
TestMessage1 msg1_;
107130
TestMessage2 msg2_;
131+
TestMessage4 msg4_;
108132
};
109133

110134
TEST_F(GroupWithDataTest, shouldBeAbleToEncodeTestMessage1Correctly)
@@ -188,7 +212,7 @@ TEST_F(GroupWithDataTest, shouldBeAbleToEncodeTestMessage2Correctly)
188212

189213
int offset = 0;
190214
EXPECT_EQ(*(sbe_uint32_t *)(bp + offset), TAG_1);
191-
EXPECT_EQ(TestMessage1::sbeBlockLength(), 16);
215+
EXPECT_EQ(TestMessage2::sbeBlockLength(), 16);
192216
offset += 16; // root blockLength of 16
193217

194218
// entries
@@ -264,3 +288,74 @@ TEST_F(GroupWithDataTest, shouldbeAbleToEncodeAndDecodeTestMessage2Correctly)
264288

265289
EXPECT_EQ(msg2Decoder.size(), expectedTestMessage2Size);
266290
}
291+
292+
TEST_F(GroupWithDataTest, shouldBeAbleToEncodeTestMessage4Correctly)
293+
{
294+
char buffer[2048];
295+
const char *bp = buffer;
296+
int sz = encodeTestMessage4(buffer, 0, sizeof(buffer));
297+
298+
int offset = 0;
299+
EXPECT_EQ(*(sbe_uint32_t *)(bp + offset), TAG_1);
300+
EXPECT_EQ(TestMessage4::sbeBlockLength(), 16);
301+
offset += 16; // root blockLength of 16
302+
303+
// entries
304+
EXPECT_EQ(*(sbe_uint16_t *)(bp + offset), 0);
305+
offset += sizeof(sbe_uint16_t);
306+
EXPECT_EQ(*(sbe_uint8_t *)(bp + offset), ENTRIES_COUNT);
307+
offset += sizeof(sbe_uint8_t);
308+
309+
EXPECT_EQ(*(sbe_uint8_t *)(bp + offset), VAR_DATA_FIELD_1_IDX_0_LENGTH);
310+
offset += sizeof(sbe_uint8_t);
311+
EXPECT_EQ(std::string(bp + offset, VAR_DATA_FIELD_1_IDX_0_LENGTH), VAR_DATA_FIELD_1_IDX_0);
312+
offset += VAR_DATA_FIELD_1_IDX_0_LENGTH;
313+
EXPECT_EQ(*(sbe_uint8_t *)(bp + offset), VAR_DATA_FIELD_2_IDX_0_LENGTH);
314+
offset += sizeof(sbe_uint8_t);
315+
EXPECT_EQ(std::string(bp + offset, VAR_DATA_FIELD_2_IDX_0_LENGTH), VAR_DATA_FIELD_2_IDX_0);
316+
offset += VAR_DATA_FIELD_2_IDX_0_LENGTH;
317+
318+
EXPECT_EQ(*(sbe_uint8_t *)(bp + offset), VAR_DATA_FIELD_1_IDX_1_LENGTH);
319+
offset += sizeof(sbe_uint8_t);
320+
EXPECT_EQ(std::string(bp + offset, VAR_DATA_FIELD_1_IDX_1_LENGTH), VAR_DATA_FIELD_1_IDX_1);
321+
offset += VAR_DATA_FIELD_1_IDX_1_LENGTH;
322+
EXPECT_EQ(*(sbe_uint8_t *)(bp + offset), VAR_DATA_FIELD_2_IDX_1_LENGTH);
323+
offset += sizeof(sbe_uint8_t);
324+
EXPECT_EQ(std::string(bp + offset, VAR_DATA_FIELD_2_IDX_1_LENGTH), VAR_DATA_FIELD_2_IDX_1);
325+
offset += VAR_DATA_FIELD_2_IDX_1_LENGTH;
326+
327+
EXPECT_EQ(sz, offset);
328+
}
329+
330+
TEST_F(GroupWithDataTest, shouldbeAbleToEncodeAndDecodeTestMessage4Correctly)
331+
{
332+
char buffer[2048];
333+
int sz = encodeTestMessage4(buffer, 0, sizeof(buffer));
334+
335+
EXPECT_EQ(sz, expectedTestMessage4Size);
336+
337+
TestMessage4 msg4Decoder(buffer, sizeof(buffer), TestMessage4::sbeBlockLength(), TestMessage4::sbeSchemaVersion());
338+
339+
EXPECT_EQ(msg4Decoder.tag1(), TAG_1);
340+
341+
TestMessage4::Entries &entries = msg4Decoder.entries();
342+
EXPECT_EQ(entries.count(), ENTRIES_COUNT);
343+
344+
ASSERT_TRUE(entries.hasNext());
345+
entries.next();
346+
347+
EXPECT_EQ(entries.varDataField1Length(), VAR_DATA_FIELD_1_IDX_0_LENGTH);
348+
EXPECT_EQ(std::string(entries.varDataField1(), VAR_DATA_FIELD_1_IDX_0_LENGTH), VAR_DATA_FIELD_1_IDX_0);
349+
EXPECT_EQ(entries.varDataField2Length(), VAR_DATA_FIELD_2_IDX_0_LENGTH);
350+
EXPECT_EQ(std::string(entries.varDataField2(), VAR_DATA_FIELD_2_IDX_0_LENGTH), VAR_DATA_FIELD_2_IDX_0);
351+
352+
ASSERT_TRUE(entries.hasNext());
353+
entries.next();
354+
355+
EXPECT_EQ(entries.varDataField1Length(), VAR_DATA_FIELD_1_IDX_1_LENGTH);
356+
EXPECT_EQ(std::string(entries.varDataField1(), VAR_DATA_FIELD_1_IDX_1_LENGTH), VAR_DATA_FIELD_1_IDX_1);
357+
EXPECT_EQ(entries.varDataField2Length(), VAR_DATA_FIELD_2_IDX_1_LENGTH);
358+
EXPECT_EQ(std::string(entries.varDataField2(), VAR_DATA_FIELD_2_IDX_1_LENGTH), VAR_DATA_FIELD_2_IDX_1);
359+
360+
EXPECT_EQ(msg4Decoder.size(), expectedTestMessage4Size);
361+
}

0 commit comments

Comments
 (0)