#include #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.rule_id_num == 3); EXPECT_TRUE(parser.rule_ids[0] == 1); EXPECT_TRUE(parser.rule_ids[1] == 2); EXPECT_TRUE(parser.rule_ids[2] == 3); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }