#include <gtest/gtest.h>
#include "ctrl_packet.h"
TEST(CTRL_PACKET, PARSE)
{
const char *data = "{\"tsync\":\"1.0\",\"session_id\":\"123456789\",\"state\":\"active\",\"method\":\"policy_update\",\"params\":{\"service_chaining\":[1,2,3],\"shaping\":[4,5,6]}}";
size_t length = strlen(data);
struct ctrl_pkt_parser parser;
ctrl_packet_parser_init(&parser);
EXPECT_TRUE(ctrl_packet_parser_parse(&parser, data, length) == 0);
ctrl_packet_parser_dump(&parser);
EXPECT_STREQ(parser.tsync, "1.0");
EXPECT_TRUE(parser.session_id == 123456789);
EXPECT_TRUE(parser.state == SESSION_STATE_ACTIVE);
EXPECT_STREQ(parser.method, "policy_update");
EXPECT_TRUE(parser.policy_id_num == 3);
EXPECT_TRUE(parser.policy_ids[0] == 1);
EXPECT_TRUE(parser.policy_ids[1] == 2);
EXPECT_TRUE(parser.policy_ids[2] == 3);
}
int main(int argc, char **argv)
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();