void mySetup(int argc, char **argv) { bool want_debug = true; if( argc >= 2 ) { if (0 == strcmp(argv[1], "--cli")) { YangModelNcx* model = YangModelNcx::create_model(); model->load_module("testycli-ia"); TestBaseCli tbcli(*model,want_debug); // ATTN: Reaching in here is wrong - should have accessors. tbcli.root_mode_->top_parse_node_->flags_.set_inherit(ParseFlags::AUTO_MODE_CFG_CONT); tbcli.root_mode_->top_parse_node_->flags_.set_inherit(ParseFlags::AUTO_MODE_CFG_LISTK); tbcli.interactive(); delete model; exit(0); } else if (0 == strcmp(argv[1], "--nbcli")) { YangModelNcx* model = YangModelNcx::create_model(); model->load_module("testycli-ia"); TestBaseCli tbcli(*model,want_debug); // ATTN: Reaching in here is wrong - should have accessors. tbcli.root_mode_->top_parse_node_->flags_.set_inherit(ParseFlags::AUTO_MODE_CFG_CONT); tbcli.root_mode_->top_parse_node_->flags_.set_inherit(ParseFlags::AUTO_MODE_CFG_LISTK); tbcli.interactive_nb(); delete model; exit(0); } g_argv = argv; g_argc = argc; } }
TEST (JsonSchema, JsonAugmentTest) { TEST_DESCRIPTION ("Test for simple yang to json conversion"); YangModelNcx* model = YangModelNcx::create_model(); YangModel::ptr_t p(model); ASSERT_TRUE(model); YangNode* root = model->get_root_node(); ASSERT_TRUE(root); YangModule* tnaa1 = model->load_module("test-json-schema"); ASSERT_TRUE(tnaa1); YangAugment* person = tnaa1->get_first_augment(); ASSERT_TRUE(person); YangNode* node = person->get_target_node(); std::stringstream oss(node->to_json_schema(true)); std::cout << oss.str() << std::endl; pt::ptree tree; pt::read_json(oss, tree); bool found_comp_list = false; BOOST_FOREACH(const pt::ptree::value_type& val, tree.get_child("person.properties")) { auto name = val.second.get<std::string>("name"); if (name == "test-json-schema:company-list") { found_comp_list = true; EXPECT_STREQ (val.second.get<std::string>("type").c_str(), "list"); EXPECT_STREQ (val.second.get<std::string>("cardinality").c_str(), "0..N"); BOOST_FOREACH (const pt::ptree::value_type& v, val.second.get_child("properties")) { auto iname = v.second.get<std::string>("name"); std::cout << iname << std::endl; if (iname == "iref1") { const auto& dtype = v.second.get_child("data-type.idref"); EXPECT_STREQ (dtype.get<std::string>("base").c_str(), "tjs:riftio"); } if (iname == "iref2") { const auto& dtype = v.second.get_child("data-type.idref"); EXPECT_STREQ (dtype.get<std::string>("base").c_str(), "tjs:cloud-platform"); } } } }