133 lines
5.2 KiB
C++
133 lines
5.2 KiB
C++
/**
|
|
* @file classes_project.cpp
|
|
* @brief <brief>
|
|
* @date Sep 28, 2015
|
|
* @author rheijden
|
|
* @copyright 2015 Dual Inventive Technology Centre B.V.
|
|
*
|
|
* <description>
|
|
*/
|
|
#include <memory>
|
|
#include <iostream>
|
|
|
|
#include <di/rpc/Class.h>
|
|
#include <di/rpc/Reader.h>
|
|
#include <gtest/gtest.h>
|
|
|
|
using namespace std;
|
|
using namespace Di::Rpc;
|
|
|
|
TEST(RPC_Classes_Project, no_params) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"project:id\":1,\"params\":null,\"time\":202181316000,\"req\":\"project:release\", \"id\":1}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:release", m->getClassMethod());
|
|
EXPECT_EQ(1U, m->getProjectId());
|
|
EXPECT_EQ(202181316000U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_EQ(0U, p->projectDevices.size());
|
|
EXPECT_EQ(0U, p->projectDesignDevices.size());
|
|
EXPECT_EQ(0U, p->projectPlanningDevices.size());
|
|
p.reset();
|
|
m.reset();
|
|
}
|
|
|
|
TEST(RPC_Classes_Project, no_project) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"project:id\":1,\"params\":{\"project\":null},\"time\":202181316000,\"req\":\"project:release\", \"id\":1}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:release", m->getClassMethod());
|
|
EXPECT_EQ(1U, m->getProjectId());
|
|
EXPECT_EQ(202181316000U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_EQ(0U, p->projectDevices.size());
|
|
EXPECT_EQ(0U, p->projectDesignDevices.size());
|
|
EXPECT_EQ(0U, p->projectPlanningDevices.size());
|
|
p.reset();
|
|
m.reset();
|
|
}
|
|
|
|
TEST(RPC_Classes_Project, planning_device) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"project:id\":1,\"params\":{\"project\":{\"planning\":{\"devices\":[{\"device:uid\":\"device\", \"role\":1, \"channel\":\"1\"}]}}},\"time\":202181316000,\"req\":\"project:release\", \"id\":1}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:release", m->getClassMethod());
|
|
EXPECT_EQ(1U, m->getProjectId());
|
|
EXPECT_EQ(202181316000U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_EQ(0U, p->projectDevices.size());
|
|
EXPECT_EQ(0U, p->projectDesignDevices.size());
|
|
EXPECT_EQ(1U, p->projectPlanningDevices.size());
|
|
p.reset();
|
|
m.reset();
|
|
}
|
|
|
|
TEST(RPC_Classes_Project, design_device) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"project:id\":1,\"params\":{\"project\":{\"design\":{\"devices\":[{\"device:uid\":\"device\", \"role\":\"strike_in\", \"channel\":1}]}}},\"time\":202181316000,\"req\":\"project:release\", \"id\":1}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:release", m->getClassMethod());
|
|
EXPECT_EQ(1U, m->getProjectId());
|
|
EXPECT_EQ(202181316000U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_EQ(0U, p->projectDevices.size());
|
|
EXPECT_EQ(1U, p->projectDesignDevices.size());
|
|
EXPECT_EQ(0U, p->projectPlanningDevices.size());
|
|
p.reset();
|
|
m.reset();
|
|
}
|
|
|
|
TEST(RPC_Classes_Project, devices) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"project:id\":1, \"id\":1,\"params\":{\"devices\":[{\"device:uid\":1, \"role\":\"strike_in\", \"channel\":\"1\"}]},\"time\":202181316000,\"req\":\"project:release\"}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:release", m->getClassMethod());
|
|
EXPECT_EQ(1U, m->getProjectId());
|
|
EXPECT_EQ(202181316000U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_EQ(1U, p->projectDevices.size());
|
|
EXPECT_EQ(0U, p->projectDesignDevices.size());
|
|
EXPECT_EQ(0U, p->projectPlanningDevices.size());
|
|
p.reset();
|
|
m.reset();
|
|
}
|
|
|
|
TEST(RPC_Classes_Project, fullRcProject) {
|
|
shared_ptr<Msg> m;
|
|
Reader r = Reader();
|
|
|
|
EXPECT_EQ(r.read("{\"dinetrpc\":1,\"time\":1470733748175,\"id\":12,\"project:id\":9,\"user:id\":6,\"req\":\"project:return\",\"params\":{\"project\":{\"setup\":{\"project:id\":9,\"type\":\"rc\",\"roles\":{\"setup\":{\"store\":[{\"user:id\":6}],\"release\":[{\"user:id\":6}],\"return\":[{\"user:id\":6}]},\"planning\":{\"store\":[{\"user:id\":6}],\"verify\":[{\"user:id\":6}],\"validate\":[{\"user:id\":6}]},\"design\":{\"store\":[{\"user:id\":6}],\"verify\":[{\"user:id\":6}],\"validate\":[{\"user:id\":6}]}}},\"planning\":{\"groups\":[{\"id\":1,\"name\":\"Rik\",\"operators\":[{\"user:id\":6,\"from\":1470009600,\"to\":1597881540}]}],\"devices\":[]},\"design\":{\"devices\":[{\"device:uid\":\"01000000000000000000000000000623\",\"group:id\":1}]}}},\"async\":\"queue\"}",
|
|
&m), 0);
|
|
EXPECT_EQ("project:return", m->getClassMethod());
|
|
EXPECT_EQ(9U, m->getProjectId());
|
|
EXPECT_EQ(1470733748175U, m->getTime());
|
|
shared_ptr<Project> p = make_shared<Project>(m);
|
|
EXPECT_STREQ("rc", p->type.c_str());
|
|
EXPECT_EQ(0U, p->projectDevices.size());
|
|
EXPECT_EQ(1U, p->projectDesignDevices.size());
|
|
EXPECT_EQ("01000000000000000000000000000623", p->projectDesignDevices[0].deviceUid);
|
|
EXPECT_EQ(1U, p->projectDesignDevices[0].groupId);
|
|
|
|
EXPECT_EQ(0U, p->projectPlanningDevices.size());
|
|
|
|
EXPECT_EQ(1U, p->projectPlanningGroups.size());
|
|
EXPECT_EQ("Rik", p->projectPlanningGroups[0].name);
|
|
EXPECT_EQ(1U, p->projectPlanningGroups[0].groupId);
|
|
EXPECT_EQ(1U, p->projectPlanningGroups[0].operators.size());
|
|
EXPECT_EQ(6U, p->projectPlanningGroups[0].operators[0].userId);
|
|
EXPECT_EQ(1470009600U, p->projectPlanningGroups[0].operators[0].from);
|
|
EXPECT_EQ(1597881540U, p->projectPlanningGroups[0].operators[0].to);
|
|
p.reset();
|
|
m.reset();
|
|
}
|