Skip to content

Commit ad9b106

Browse files
committed
Add encode and decode test
1 parent fe1a8bf commit ad9b106

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

extras/test/src/test_decode.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,32 @@ SCENARIO("Arduino Cloud Properties are decoded", "[ArduinoCloudThing::decode]")
400400

401401
/************************************************************************************/
402402

403+
WHEN("A Schedule property is changed via CBOR message")
404+
{
405+
PropertyContainer property_container;
406+
407+
CloudSchedule schedule_test = CloudSchedule(0, 0, 0, 0);
408+
addPropertyToContainer(property_container, schedule_test, "test", Permission::ReadWrite);
409+
410+
/* [{0: "test:frm", 2: 1633305600}, {0: "test:to", 2: 1633651200}, {0: "test:len", 2: 600}, {0: "test:msk", 2: 1140850708}]
411+
= 84 A2 00 68 74 65 73 74 3A 66 72 6D 02 1A 61 5A 44 00 A2 00 67 74 65 73 74 3A 74 6F 02 1A 61 5F 8A 00 A2 00 68 74 65 73 74 3A 6C 65 6E 02 19 02 58 A2 00 68 74 65 73 74 3A 6D 73 6B 02 1A 44 00 00 14
412+
*/
413+
uint8_t const payload[] = {0x84, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x66, 0x72, 0x6D, 0x02, 0x1A, 0x61, 0x5A, 0x44, 0x00, 0xA2, 0x00, 0x67, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x74, 0x6F, 0x02, 0x1A, 0x61, 0x5F, 0x8A, 0x00, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x6C, 0x65, 0x6E, 0x02, 0x19, 0x02, 0x58, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x6D, 0x73, 0x6B, 0x02, 0x1A, 0x44, 0x00, 0x00, 0x14};
414+
CBORDecoder::decode(property_container, payload, sizeof(payload) / sizeof(uint8_t));
415+
416+
Schedule schedule_compare = Schedule(1633305600, 1633651200, 600, 1140850708);
417+
Schedule value_schedule_test = schedule_test.getValue();
418+
419+
bool verify = (value_schedule_test == schedule_compare);
420+
REQUIRE(verify);
421+
REQUIRE(value_schedule_test.frm == schedule_compare.frm);
422+
REQUIRE(value_schedule_test.to == schedule_compare.to);
423+
REQUIRE(value_schedule_test.len == schedule_compare.len);
424+
REQUIRE(value_schedule_test.msk == schedule_compare.msk);
425+
}
426+
427+
/************************************************************************************/
428+
403429
WHEN("Multiple properties is changed via CBOR message")
404430
{
405431
WHEN("Multiple properties of different type are changed via CBOR message")

extras/test/src/test_encode.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,24 @@ SCENARIO("Arduino Cloud Properties are encoded", "[ArduinoCloudThing::encode-1]"
322322

323323
/************************************************************************************/
324324

325+
WHEN("A 'Schedule' property is added")
326+
{
327+
PropertyContainer property_container;
328+
cbor::encode(property_container);
329+
330+
CloudSchedule schedule_test = CloudSchedule(1633305600, 1633651200, 600, 1140850708);
331+
addPropertyToContainer(property_container, schedule_test, "test", Permission::ReadWrite);
332+
333+
/* [{0: "test:frm", 2: 1633305600}, {0: "test:to", 2: 1633651200}, {0: "test:len", 2: 600}, {0: "test:msk", 2: 1140850708}]
334+
= 9F A2 00 68 74 65 73 74 3A 66 72 6D 02 1A 61 5A 44 00 A2 00 67 74 65 73 74 3A 74 6F 02 1A 61 5F 8A 00 A2 00 68 74 65 73 74 3A 6C 65 6E 02 19 02 58 A2 00 68 74 65 73 74 3A 6D 73 6B 02 1A 44 00 00 14 FF
335+
*/
336+
std::vector<uint8_t> const expected = {0x9F, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x66, 0x72, 0x6D, 0x02, 0x1A, 0x61, 0x5A, 0x44, 0x00, 0xA2, 0x00, 0x67, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x74, 0x6F, 0x02, 0x1A, 0x61, 0x5F, 0x8A, 0x00, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x6C, 0x65, 0x6E, 0x02, 0x19, 0x02, 0x58, 0xA2, 0x00, 0x68, 0x74, 0x65, 0x73, 0x74, 0x3A, 0x6D, 0x73, 0x6B, 0x02, 0x1A, 0x44, 0x00, 0x00, 0x14, 0xFF };
337+
std::vector<uint8_t> const actual = cbor::encode(property_container);
338+
REQUIRE(actual == expected);
339+
}
340+
341+
/************************************************************************************/
342+
325343
WHEN("Multiple properties are added")
326344
{
327345
PropertyContainer property_container;

0 commit comments

Comments
 (0)