/** * @file classes_project.cpp * @brief * @date Sep 28, 2015 * @author rheijden * @copyright 2015 Dual Inventive Technology Centre B.V. * * */ #include #include #include #include #include using namespace std; using namespace Di::Rpc; TEST(RPC_Classes_Project, no_params) { shared_ptr 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 p = make_shared(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 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 p = make_shared(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 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 p = make_shared(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 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 p = make_shared(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 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 p = make_shared(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 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 p = make_shared(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(); }