Files
neuron/tests/json_nodes_test.cc
T
2022-05-30 02:45:17 +00:00

108 lines
2.7 KiB
C++

#include <stdlib.h>
#include <gtest/gtest.h>
#include "adapter.h"
#include "json/neu_json_fn.h"
#include "json/neu_json_node.h"
#include "utils/log.h"
zlog_category_t *neuron = NULL;
TEST(JsonNodesTest, AddNodesDecode)
{
char *buf = (char *) "{\"type\": 1, "
"\"name\": \"adapter1\" ,"
"\"plugin_name\": \"plugin1\" }";
neu_json_add_node_req_t *req = NULL;
EXPECT_EQ(0, neu_json_decode_add_node_req(buf, &req));
EXPECT_EQ(NEU_NA_TYPE_DRIVER, req->type);
EXPECT_STREQ("adapter1", req->name);
EXPECT_STREQ("plugin1", req->plugin_name);
neu_json_decode_add_node_req_free(req);
}
TEST(JsonNodesTest, GetNodesDecode)
{
char * buf = (char *) "{\"node_type\": 1 }";
neu_json_get_nodes_req_t *req = NULL;
EXPECT_EQ(0, neu_json_decode_get_nodes_req(buf, &req));
EXPECT_EQ(1, req->node_type);
neu_json_decode_get_nodes_req_free(req);
}
TEST(JsonNodesTest, GetNodesEncode)
{
char *buf =
(char *) "{\"nodes\": [{\"plugin_id\": 0, \"name\": \"node1\", \"id\": "
"123}, {\"plugin_id\": 0, \"name\": \"node2\", \"id\": 456}, "
"{\"plugin_id\": 0, \"name\": \"node3\", \"id\": 789}]}";
char * result = NULL;
neu_json_get_nodes_resp_t res = {
.n_node = 3,
};
res.nodes = (neu_json_get_nodes_resp_node_t *) calloc(
3, sizeof(neu_json_get_nodes_resp_node_t));
res.nodes[0].name = strdup((char *) "node1");
res.nodes[0].id = 123;
res.nodes[1].name = strdup((char *) "node2");
res.nodes[1].id = 456;
res.nodes[2].name = strdup((char *) "node3");
res.nodes[2].id = 789;
EXPECT_EQ(
0,
neu_json_encode_by_fn(&res, neu_json_encode_get_nodes_resp, &result));
EXPECT_STREQ(buf, result);
free(res.nodes[0].name);
free(res.nodes[1].name);
free(res.nodes[2].name);
free(res.nodes);
free(result);
}
TEST(JsonNodesTest, DeleteNodesDecode)
{
char * buf = (char *) "{\"id\": 123 }";
neu_json_del_node_req_t *req = NULL;
EXPECT_EQ(0, neu_json_decode_del_node_req(buf, &req));
EXPECT_EQ(123, req->id);
neu_json_decode_del_node_req_free(req);
}
TEST(JsonNodesTest, UpdateNodesDecode)
{
char *buf = (char *) "{\"id\": 1, "
"\"name\": \"adapter1\" }";
neu_json_update_node_req_t *req = NULL;
EXPECT_EQ(0, neu_json_decode_update_node_req(buf, &req));
EXPECT_EQ(1, req->id);
EXPECT_STREQ("adapter1", req->name);
neu_json_decode_update_node_req_free(req);
}
int main(int argc, char **argv)
{
zlog_init("./config/dev.conf");
neuron = zlog_get_category("neuron");
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}