87 lines
3.4 KiB
C++
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;
|
|
}
|