Beispiel #1
0
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");
        }
      }
    }
  }
Beispiel #2
0
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;

  }
}