#include #include #include #include #include #include #include "tests/rpc_serialize.h" /** Used because serialize message header loads di_time_get_stamp */ TEST(time, init) { di_time_init(); } /** Serialize RPC message publish */ TEST(rpc, serialize_rpc_msg_pub) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.msg_type = DI_RPC_MSG_TYPE_PUBLISH; msg.type = DI_RPC_TYPE_NOTIFY_INFO; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC RT message publish without project:id */ TEST(rpc, serialize_rpc_msg_rt_pub) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.msg_type = DI_RPC_MSG_TYPE_PUBLISH; msg.type = DI_RPC_TYPE_DEVICE_DATA; msg.rt = true; msg.rt_seqnr = 1337; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC RT message publish with project:id */ TEST(rpc, serialize_rpc_msg_rt_pub_with_project_id) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.project_id = 666; msg.msg_type = DI_RPC_MSG_TYPE_PUBLISH; msg.type = DI_RPC_TYPE_DEVICE_DATA; msg.rt = true; msg.rt_seqnr = 1337; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC message request */ TEST(rpc, serialize_rpc_msg_req) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.msg_type = DI_RPC_MSG_TYPE_REQUEST; msg.type = DI_RPC_TYPE_NOTIFY_INFO; msg.id = 1; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC message reply */ TEST(rpc, serialize_rpc_msg_rep) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.id = 2; msg.msg_type = DI_RPC_MSG_TYPE_REPLY; msg.type = DI_RPC_TYPE_NOTIFY_INFO; msg.err = DNOK; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC message reply error */ TEST(rpc, serialize_rpc_msg_rep_error) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.id = 1234; msg.msg_type = DI_RPC_MSG_TYPE_REPLY; msg.type = DI_RPC_TYPE_NOTIFY_INFO; di_rpc_serialize_msg(writer->get(), &msg); } /** Serialize RPC message reply error */ TEST(rpc, serialize_rpc_msg_rep_error_unknown_type) { auto writer = TEST_RPC_SERIALIZE_WRITER; struct di_rpc_msg msg; di_rpc_msg_reset(&msg, di_device_uid_get()); msg.id = 1234; msg.err = DNE_OPNOTSUPP; msg.msg_type = DI_RPC_MSG_TYPE_REPLY; msg.type = DI_RPC_TYPE_UNKNOWN; di_rpc_serialize_msg(writer->get(), &msg); }