#include #include #include #include #include /* Used because serialize message header loads di_time_get_stamp */ TEST(time, init) { di_time_init(); } /** Deserialize ``` { "dinetrpc": 1, "rep": "notify:info", "device:uid": "00000000000000000000000000000000", "id": 2, "result": null } ``` */ TEST(rpc_deserialize, msg_rep) { mpack_reader_t r; struct di_rpc_msg msg; mpack_reader_init_file(&r, "data/rpc_deserialize_msg_1.mp"); di_rpc_deserialize_msg(&r, &msg); ASSERT_EQ(1U, msg.dinetrpc); ASSERT_STREQ("00000000000000000000000000000000", msg.device_uid); ASSERT_EQ(DI_RPC_MSG_TYPE_REPLY, msg.msg_type); ASSERT_EQ(DI_RPC_TYPE_NOTIFY_INFO, msg.type); ASSERT_EQ(2U, msg.id); mpack_reader_destroy(&r); } /** Deserialize ``` { "dinetrpc": 1, "req": "deadbeef", "device:uid": "00000000000000000000000000000000", "id": 1337 } ``` */ TEST(rpc_deserialize, msg_unknown_type) { mpack_reader_t r; struct di_rpc_msg msg; mpack_reader_init_file(&r, "data/rpc_deserialize_msg_2.mp"); di_rpc_deserialize_msg(&r, &msg); ASSERT_EQ(1U, msg.dinetrpc); ASSERT_EQ(DI_RPC_MSG_TYPE_REQUEST, msg.msg_type); ASSERT_EQ(DI_RPC_TYPE_UNKNOWN, msg.type); ASSERT_EQ(1337U, msg.id); mpack_reader_destroy(&r); }