📄 simple-test.cc
字号:
try { fig2 = Documents::Figure::_narrow (figure_factory->create ("fig2.jpg")); node2 = CosCompoundExternalization::Node::_narrow (node_factory->create_node (fig2)); role2 = CosExternalizationContainment::ContainedInRole::_narrow (containedin_factory->create_role (node2)); role1 = CosExternalizationContainment::ContainsRole::_narrow (contains_factory->create_role (node1)); } catch (CosRelationships::RoleFactory::RelatedObjectTypeError &ex1) { cout << "RelatedObjectTypeError!\n" << flush; } assert (!CORBA::is_nil (role1)); assert (!CORBA::is_nil (role2)); exception = FALSE; cout << "Checking RelationshipFactory::create () ..." << flush; CosRelationships::NamedRoles nr; nr.length (2); nr[0].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = CORBA::string_dup ("ExternalizationContainedInRole"); nr[1].aRole = CosRelationships::Role::_duplicate (role2); try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { cout << "DegreeError exception!!!\n" << flush; cout << "Required degree is " << ex->required_degree << "\n" << flush; relship1 = CosExternalizationContainment::Relationship::_nil (); } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { cout << "DuplicateRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i<(ex->culprits).length () ; i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } relship1 = CosExternalizationContainment::Relationship::_nil (); } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { cout << "UnknownRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i< (ex->culprits).length (); i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } relship1 = CosExternalizationContainment::Relationship::_nil (); cout << "End of catch statement!\n" << flush; } if (!CORBA::is_nil (relship1)) { cout << "ok.\n" << flush; } else { cout << "failed.\n"; } exception = FALSE; state_good = FALSE; cout << "Checking RelationshipFactory::UnknownRoleName exception ..." << flush; nr.length (2); nr[0].name = strdup ("Ha"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = strdup ("ExternalizationConatinedInRole"); nr[1].aRole = CosRelationships::Role::_duplicate (role2); try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { cout << "DegreeError exception!!!\n" << flush; cout << "Required degree is " << ex->required_degree << "\n" << flush; exception = TRUE; } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { cout << "DuplicateRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i<(ex->culprits).length () ; i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { // cout << "UnknownRoleName exception!!!\n" << flush; // cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" // << flush; // for (int i=0; i< (ex->culprits).length (); i++) { // cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; // } state_good = TRUE; } if (state_good) { cout << "ok.\n" << flush; } else cout << "failed.\n" << flush; exception = FALSE; state_good = FALSE; cout << "Checking RelationshipFactory::DuplicateRoleName exception ..." << flush; nr.length (2); nr[0].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[1].aRole = CosRelationships::Role::_duplicate (role1); try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { cout << "DegreeError exception!!!\n" << flush; cout << "Required degree is " << ex->required_degree << "\n" << flush; exception = TRUE; } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { // cout << "DuplicateRoleName exception!!!\n" << flush; // cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" // << flush; // for (int i=0; i<(ex->culprits).length () ; i++) { // cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; // } state_good = TRUE; } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { cout << "UnknownRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i< (ex->culprits).length (); i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; cout << "End of catch statement!\n" << flush; } if (state_good) cout << "ok.\n" << flush; else cout << "failed.\n" << flush; exception = FALSE; state_good = FALSE; cout << "Checking RelationshipFactory::DegreeError exception ..." << flush; nr.length (3); nr[0].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = CORBA::string_dup ("ExternalizationContainedInRole"); nr[1].aRole = CosRelationships::Role::_duplicate (role2); nr[2].name = CORBA::string_dup ("ExternalizationContainedInRole"); nr[2].aRole = CosRelationships::Role::_duplicate (role2); try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { // cout << "DegreeError exception!!!\n" << flush; // cout << "Required degree is " << ex->required_degree << "\n" << flush; state_good = TRUE; } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { cout << "DuplicateRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i<(ex->culprits).length () ; i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { cout << "UnknownRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i< (ex->culprits).length (); i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; cout << "End of catch statement!\n" << flush; } if (state_good) cout << "ok.\n" << flush; else cout << "failed\n" << flush; exception = FALSE; state_good = FALSE; cout << "Checking RelationshipFactory::RoleTypeError exception ..." << flush; nr.length (2); nr[0].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = CORBA::string_dup ("ExternalizationContainedInRole"); nr[1].aRole = CosRelationships::Role::_duplicate (role1); // ContainedInRole try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { cout << "DegreeError exception!!!\n" << flush; cout << "Required degree is " << ex->required_degree << "\n" << flush; exception = TRUE; } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { cout << "DuplicateRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i<(ex->culprits).length () ; i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { cout << "UnknownRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i< (ex->culprits).length (); i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; cout << "End of catch statement!\n" << flush; } catch (CosRelationships::RelationshipFactory::RoleTypeError &ex) { // cout << "RoleTypeError exception!!!\n" << flush; // cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; // for (int i=0; i< (ex->culprits).length (); i++) { // cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; // } state_good = TRUE; } if (state_good) cout << "ok.\n" << flush; else cout << "failed.\n" << flush; exception = FALSE; state_good = FALSE; cout << "Checking RelationshipFactory::MaxCardinalityExceeded exception ..." << flush; nr.length (2); nr[0].name = CORBA::string_dup ("ExternalizationContainsRole"); nr[0].aRole = CosRelationships::Role::_duplicate (role1); nr[1].name = CORBA::string_dup ("ExternalizationContainedInRole"); // will be twice nr[1].aRole = CosRelationships::Role::_duplicate (role2); try { relship1 = CosExternalizationContainment::Relationship::_narrow (containment_factory->create (nr)); } catch (CosRelationships::RelationshipFactory::DegreeError &ex) { cout << "DegreeError exception!!!\n" << flush; cout << "Required degree is " << ex->required_degree << "\n" << flush; exception = TRUE; } catch (CosRelationships::RelationshipFactory::DuplicateRoleName &ex) { cout << "DuplicateRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i<(ex->culprits).length () ; i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; } catch (CosRelationships::RelationshipFactory::UnknownRoleName &ex) { cout << "UnknownRoleName exception!!!\n" << flush; cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; for (unsigned int i=0; i< (ex->culprits).length (); i++) { cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; } exception = TRUE; cout << "End of catch statement!\n" << flush; } catch (CosRelationships::RelationshipFactory::MaxCardinalityExceeded &ex) { // cout << "MaxCardinalityExceeded exception!!!\n" << flush; // cout << "ex->culprits.length () = " << (ex->culprits).length () << "\n" << flush; // for (int i=0; i< (ex->culprits).length (); i++) { // cout << i << ". name: " << (ex->culprits[i]).name << "\n" << flush; // } state_good = TRUE; } if (state_good) cout << "ok.\n" << flush; else cout << "failed.\n" << flush; cout << "Checking Role::get_relationships () ..." << flush; CosRelationships::RelationshipIterator_var iterator = CosRelationships::RelationshipIterator::_nil (); CosRelationships::RelationshipHandles* rel_handles; rel_handles = NULL; role1->get_relationships (3, rel_handles, iterator); if ((rel_handles != NULL) && (CORBA::is_nil (iterator))) { rel_handles = NULL; iterator = CosRelationships::RelationshipIterator::_nil (); role1->get_relationships (0, rel_handles, iterator); if (rel_handles->length () == 0) if (!CORBA::is_nil (iterator)) cout << "ok.\n" << flush; else cout << "error3!\n" << flush; else cout << "error2!\n" << flush; } else cout << "error!\n" << flush; cout << "Checking RelationshipIterator::next_n () ..." << flush; iterator->next_n (10, rel_handles); if (rel_handles->length () == 1 && ( (*rel_handles)[0].the_relationship->is_identical (relship1))) cout << "ok.\n" << flush; else cout << "error!\n" << flush; iterator->destroy (); cout << "Checking RelationshipIterator::next_one () ..." << flush; CosRelationships::RelationshipHandle* rel_handle; role1->get_relationships (0, rel_handles, iterator); iterator->next_one (rel_handle); if (rel_handle->the_relationship->is_identical (relship1)) cout << "ok.\n" << flush; else cout << "error!\n" << flush; // testing second level of MICO RS cout << "Checking second level\n"; assert (!CORBA::is_nil (text_factory)); assert (!CORBA::is_nil (figure_factory)); Documents::Text_var text = text_factory->create_with_file (CORBA::string_dup ("MICO Relationship Service."), CORBA::string_dup ("thesis.tex")); Documents::Figure_var obr1 = figure_factory->create_with_file (CORBA::string_dup ("obr1"), CORBA::string_dup ("obr1.eps")); Documents::Figure_var obr2 = figure_factory->create_with_file (CORBA::string_dup ("obr2"), CORBA::string_dup ("obr2.eps")); Documents::Figure_var obr3 = figure_factory->create_with_file (CORBA::string_dup ("obr3"), CORBA::string_dup ("obr3.eps")); Documents::Figure_var obr4 = figure_factory->create_with_file (CORBA::string_dup ("obr4"), CORBA::string_dup ("obr4.eps")); Documents::Figure_var obr5 = figure_factory->create_with_file (CORBA::string_dup ("obr5"), CORBA::string_dup ("obr5.eps"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -