87 lines
2.5 KiB
C++
87 lines
2.5 KiB
C++
/**
|
|
* @file tests/can_rpc.cpp
|
|
* @brief brief
|
|
* @date Aug 25, 2015
|
|
* @author rheijden
|
|
* @copyright 2015 Dual Inventive Technology Centre B.V.
|
|
*
|
|
* descr
|
|
*/
|
|
#include "fixtures/CANTest.hpp"
|
|
|
|
TEST_F(DI_CAN, rpc_send_device_info) {
|
|
struct di_rpc_device_info d;
|
|
char l[] = "testlabel";
|
|
|
|
struct di_rpc_device_info_version version[1];
|
|
|
|
version[0].key = "fw-main";
|
|
version[0].value = "v1.0.2";
|
|
|
|
d.version = version;
|
|
d.versionn = DI_ARRAY_SIZE(version);
|
|
d.type = l;
|
|
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, DI_RPC_TYPE_DEVICE_INFO, &d, 1));
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_REPLY, DI_RPC_TYPE_DEVICE_INFO, &d, 1));
|
|
}
|
|
|
|
TEST_F(DI_CAN, rpc_send_sensor_info_bool) {
|
|
struct di_rpc_info info;
|
|
|
|
info.uid = 1;
|
|
info.label = "test-can-rpc-bool";
|
|
info.data_type = DI_RPC_DATA_TYPE_BOOL;
|
|
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, DI_RPC_TYPE_SENSOR_INFO, &info, 1));
|
|
}
|
|
|
|
TEST_F(DI_CAN, rpc_send_sensor_info_enum) {
|
|
struct di_rpc_info info;
|
|
static const struct di_rpc_enum elist[] = {
|
|
{ "empty", 0 },
|
|
{ "crit", 1 },
|
|
{ "low", 2 },
|
|
{ "half", 3 },
|
|
{ "full", 4 }
|
|
};
|
|
|
|
info.uid = 1;
|
|
info.label = "bat1-state";
|
|
info.data_type = DI_RPC_DATA_TYPE_ENUM;
|
|
info.enumerator.size = DI_ARRAY_SIZE(elist);
|
|
info.enumerator.begin = (void *)elist;
|
|
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, DI_RPC_TYPE_SENSOR_INFO, &info, 1));
|
|
}
|
|
|
|
TEST_F(DI_CAN, rpc_send_notify_info_single) {
|
|
struct di_rpc_info info;
|
|
|
|
info.uid = 1;
|
|
info.label = "wu-alarm-system";
|
|
info.data_type = DI_RPC_DATA_TYPE_BOOL;
|
|
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, DI_RPC_TYPE_NOTIFY_INFO, &info, 1));
|
|
}
|
|
|
|
TEST_F(DI_CAN, rpc_send_log_info_single) {
|
|
struct di_rpc_log log;
|
|
|
|
log.msg = "Hello World!";
|
|
|
|
ASSERT_EQ(DNOK, di_can_rpc_send(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, DI_RPC_TYPE_LOG_INFO, &log, 1));
|
|
}
|
|
|
|
TEST_F(DI_CAN, rpc_send_device_ping) {
|
|
ASSERT_EQ(DNOK, di_can_rpc_send_device_ping(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, false));
|
|
// Realtime device:ping without an payload is currently not supported
|
|
ASSERT_EQ(DNE_PROTO, di_can_rpc_send_device_ping(&_ctx, DI_CAN_TRANSFERTYPE_PUBLISH, true));
|
|
ASSERT_EQ(DNOK, di_can_rpc_send_device_ping(&_ctx, DI_CAN_TRANSFERTYPE_REPLY, false));
|
|
}
|
|
|
|
/** Send RPC reply on action:set with di_errno_t DNE_OPNOTSUPP (operation not supported) */
|
|
TEST_F(DI_CAN, rpc_send_errno) {
|
|
ASSERT_EQ(DNOK, di_can_rpc_send_errno(&_ctx, DI_CAN_TRANSFERTYPE_REPLY, DI_RPC_TYPE_ACTION_SET, DNE_OPNOTSUPP));
|
|
}
|