src.dualinventive.com/dinet/sec-multi-proxy/libdipp/tests/rpc/classes.cpp

87 lines
3.4 KiB
C++

#include <memory>
#include <iostream>
#include <string>
#include <di/rpc/Class.h>
#include <di/rpc/Reader.h>
#include <gtest/gtest.h>
using namespace std;
using namespace Di::Rpc;
int DiRpcReaderCallback(Msg *msg, shared_ptr<string> *data) {
(void)data;
cout << "hello from " << __func__ << endl;
cout << "msgtype: " << msg->getMsgType() << endl;
return 1;
}
TEST(Reader, classCreate) {
shared_ptr<Msg> m;
Reader r = Reader();
EXPECT_TRUE(r.registerCallback(DiRpcMsgCallback(DiRpcReaderCallback), "*", "*"));
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"connection:connect\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\", \"code\":1}],\"time\":202181316,\"pub\":\"connection:disconnect\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\", \"code\":1}],\"time\":202181316,\"pub\":\"connection:nothing\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"dncm:info\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"dncm:ping\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"device:info\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"device:ping\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"id\":23456789,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"params\":{\"project\":{\"planning\": {\"devices\": \"127.0.0.1:51394\"}}},\"time\":202181316,\"req\":\"project:info\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"project:ping\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"sensor:info\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"sensor:data\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"device:uid\":\"012d2d2d4c45474143592d2d0000026f\",\"result\":[{\"peer\":\"127.0.0.1:51394\"}],\"time\":202181316,\"pub\":\"sensor:nothing\"}",
&m), 0);
EXPECT_EQ(m->runCallback(), 1);
m = nullptr;
}