Ejemplo n.º 1
0
  virtual void SetUp() {
    mgr = XMLManager::uptr_t(xml_manager_create_xerces());

    YangModel* model = mgr->get_yang_model();
    ASSERT_TRUE(model);
    YangModule* ydom_top = model->load_module("company");
    ASSERT_TRUE(ydom_top);

    model->register_ypbc_schema(
        (const rw_yang_pb_schema_t*)RWPB_G_SCHEMA_YPBCSD(Company));
    ASSERT_EQ((const rw_yang_pb_schema_t*)RWPB_G_SCHEMA_YPBCSD(Company),
              model->get_ypbc_schema());

    ydom_top = model->load_module("company-augment");
    ASSERT_TRUE(ydom_top);

    model->register_ypbc_schema(
        (const rw_yang_pb_schema_t*)RWPB_G_SCHEMA_YPBCSD(CompanyAugment));
    ASSERT_EQ((const rw_yang_pb_schema_t*)RWPB_G_SCHEMA_YPBCSD(CompanyAugment),
              model->get_ypbc_schema());

    schema = mgr->get_yang_model()->get_ypbc_schema();
    ASSERT_TRUE(schema);   

    std::string const delta_xml =
        "<data>"
        "  <company xmlns=\"http://riftio.com/ns/core/util/yangtools/tests/company\">"
        "    <employee>"
        "      <id>0</id>"
        "      <name>foo</name>"      
        "    </employee>"
        "    <employee>"
        "      <id>1</id>"
        "      <name>bar</name>"      
        "    </employee>"
        "    <wacky-interests>"
        "      <name>foo</name>"      
        "      <id>0</id>"
        "    </wacky-interests>"
        "    <wacky-interests>"
        "      <name>bar</name>"      
        "      <id>1</id>"
        "    </wacky-interests>"
        "  </company>"
        "  <mangle-base xmlns=\"http://riftio.com/ns/core/util/yangtools/tests/company\">"
        "    <mangle>"
        "      <name>asdf</name>"
        "      <id>13</id>"
        "      <bucket xmlns=\"http://riftio.com/ns/core/util/yangtools/tests/company-augment\">"
        "        <contents>water</contents>"
        "      </bucket>"
        "      <bucket-list xmlns=\"http://riftio.com/ns/core/util/yangtools/tests/company-augment\">"
        "        <place>victoria falls</place>"
        "      </bucket-list>"
        "      <bucket-list xmlns=\"http://riftio.com/ns/core/util/yangtools/tests/company-augment\">"
        "        <place>angkor wat</place>"
        "      </bucket-list>"
        "    </mangle>"
        "  </mangle-base>"
        "</data>";
  
    std::string error_out;
    dom = XMLDocument::uptr_t(mgr->create_document_from_string(delta_xml.c_str(), error_out, false));
    ASSERT_TRUE(dom.get()) << error_out;
    root = dom->get_root_node();
    ASSERT_TRUE(root);
  
  }