@@ -64,3 +64,44 @@ TEST(BitsetTest, ConvertBitsetToPacket) {
6464 EXPECT_EQ (convertedPayload.b , payload.b );
6565 EXPECT_EQ (convertedPayload.c , payload.c );
6666}
67+
68+ TEST (BitsetTest, SuspiciousPacket) {
69+ tools::PacketBuilder packetBuilder;
70+ struct payloadStruct {
71+ std::size_t id;
72+ struct {
73+ float x;
74+ float y;
75+ } position;
76+ std::size_t health;
77+ };
78+
79+ packetBuilder.SetPayloadType (tools::PayloadType::kCustom );
80+ packetBuilder.SetMessageType (5 );
81+
82+ std::vector<struct payloadStruct > payload = {
83+ {1 , {1 .0f , 2 .0f }, 100 },
84+ };
85+
86+ auto packet = packetBuilder.Build <payloadStruct>(payload);
87+ EXPECT_EQ (packet[0 ]->GetHeader ().offsetFlag , 1 );
88+
89+ auto bitset = packet[0 ]->GetBitset ();
90+
91+ auto header = tools::PacketUtils::ExportHeaderFromBitset (bitset);
92+ EXPECT_EQ (header.offsetFlag , 1 );
93+
94+ auto convertedPacket = packetBuilder.Build <payloadStruct>(bitset);
95+
96+ EXPECT_EQ (convertedPacket->GetHeader ().payloadType , static_cast <unsigned >(tools::PayloadType::kCustom ));
97+ EXPECT_EQ (convertedPacket->GetHeader ().payloadLength , sizeof (payloadStruct));
98+ EXPECT_EQ (convertedPacket->GetHeader ().offsetFlag , 1 );
99+ EXPECT_EQ (convertedPacket->GetHeader ().turnFlag , 0 );
100+
101+ EXPECT_EQ (convertedPacket->GetMessage ().messageType , 5 );
102+
103+ auto convertedPayload = convertedPacket->GetPayload ();
104+ EXPECT_EQ (convertedPayload.id , payload[0 ].id );
105+ EXPECT_EQ (convertedPayload.position .x , payload[0 ].position .x );
106+ EXPECT_EQ (convertedPayload.health , payload[0 ].health );
107+ }
0 commit comments