Skip to content

Commit 8f491e6

Browse files
committed
More tests
1 parent b4d6e3c commit 8f491e6

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

extras/test/src/test_command_decode.cpp

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,83 @@ SCENARIO("Test the decoding of command messages") {
7777
delete message;
7878
}
7979

80+
/************************************************************************************/
81+
82+
WHEN("Decode the ThingGetLastValueCmdDown message")
83+
{
84+
ThingGetLastValueCmdDown * message = new ThingGetLastValueCmdDown();
85+
86+
/*
87+
88+
DA 00010600 # tag(67072)
89+
81 # array(1)
90+
4D # bytes(13)
91+
00010203040506070809101112 # "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u0010\u0011\u0012"
92+
93+
*/
94+
95+
uint8_t const payload[] = {0xDA, 0x00, 0x01, 0x06, 0x00, 0x81, 0x4D, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12};
96+
97+
int payload_length = sizeof(payload) / sizeof(uint8_t);
98+
CborError err = MessageDecoder::decode((Message*) message, payload, payload_length);
99+
100+
THEN("The decode is successful") {
101+
REQUIRE(err == CborNoError);
102+
REQUIRE(message->fields.params.length == 13);
103+
REQUIRE(message->fields.params.last_values[0] == (uint8_t)0);
104+
REQUIRE(message->fields.params.last_values[1] == (uint8_t)1);
105+
REQUIRE(message->fields.params.last_values[2] == (uint8_t)2);
106+
REQUIRE(message->fields.params.last_values[3] == (uint8_t)3);
107+
REQUIRE(message->fields.params.last_values[4] == (uint8_t)4);
108+
REQUIRE(message->fields.params.last_values[5] == (uint8_t)5);
109+
REQUIRE(message->fields.params.last_values[6] == (uint8_t)6);
110+
REQUIRE(message->fields.params.last_values[7] == (uint8_t)7);
111+
REQUIRE(message->fields.params.last_values[8] == (uint8_t)8);
112+
REQUIRE(message->fields.params.last_values[9] == (uint8_t)9);
113+
REQUIRE(message->fields.params.last_values[10] == (uint8_t)10);
114+
REQUIRE(message->fields.params.last_values[11] == (uint8_t)11);
115+
REQUIRE(message->fields.params.last_values[12] == (uint8_t)12);
116+
REQUIRE(message->command == 67072);
117+
}
118+
119+
delete message->fields.params.last_values;
120+
delete message;
121+
}
122+
123+
/************************************************************************************/
124+
125+
WHEN("Decode the OtaUpdateCmdDown message")
126+
{
127+
OtaUpdateCmdDown * message = new OtaUpdateCmdDown();
128+
129+
/*
130+
131+
DA 00010100 # tag(65792)
132+
84 # array(4)
133+
6C # text(12)
134+
6F74612D69642D3132333435 # "ota-id-12345"
135+
78 2F # text(47)
136+
2F73746F726167652F6F74612F37363132333837363734363132383736313233383736313233383736313233313233 # "/storage/ota/7612387674612876123876123876123123"
137+
53 # bytes(19)
138+
33303034616162323735313164623332313264 # "3004aab27511db3212d"
139+
50 # bytes(16)
140+
6A6B6173646B6A686173646B6A687868 # "jkasdkjhasdkjhxh"
141+
142+
*/
143+
144+
uint8_t const payload[] = {0xDA, 0x00, 0x01, 0x01, 0x00, 0x84, 0x6C, 0x6F, 0x74, 0x61, 0x2D, 0x69, 0x64, 0x2D, 0x31, 0x32, 0x33, 0x34, 0x35, 0x78, 0x2F, 0x2F, 0x73, 0x74, 0x6F, 0x72, 0x61, 0x67, 0x65, 0x2F, 0x6F, 0x74, 0x61, 0x2F, 0x37, 0x36, 0x31, 0x32, 0x33, 0x38, 0x37, 0x36, 0x37, 0x34, 0x36, 0x31, 0x32, 0x38, 0x37, 0x36, 0x31, 0x32, 0x33, 0x38, 0x37, 0x36, 0x31, 0x32, 0x33, 0x38, 0x37, 0x36, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x53, 0x33, 0x30, 0x30, 0x34, 0x61, 0x61, 0x62, 0x32, 0x37, 0x35, 0x31, 0x31, 0x64, 0x62, 0x33, 0x32, 0x31, 0x32, 0x64, 0x50, 0x6A, 0x6B, 0x61, 0x73, 0x64, 0x6B, 0x6A, 0x68, 0x61, 0x73, 0x64, 0x6B, 0x6A, 0x68, 0x78, 0x68};
145+
146+
int payload_length = sizeof(payload) / sizeof(uint8_t);
147+
CborError err = MessageDecoder::decode((Message*) message, payload, payload_length);
148+
149+
THEN("The decode is successful") {
150+
REQUIRE(err == CborNoError);
151+
REQUIRE(message->fields.params.id == "ota-id-12345");
152+
REQUIRE(message->fields.params.url == "/storage/ota/7612387674612876123876123876123123");
153+
REQUIRE(message->command == 65792);
154+
}
155+
156+
delete message;
157+
}
158+
80159
}

0 commit comments

Comments
 (0)