📄 simple-test.cc
字号:
/* * Test of COSS Relationship Service for MICO * Copyright (C) 1998-99 Karel Gardas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Send comments and/or bug reports to: * mico@informatik.uni-frankfurt.de * or to my private e-mail: * gardask@alpha.inf.upol.cz */#include <CORBA.h>#include <time.h>#include <string.h>#include <coss/CosRelationships.h>#include <coss/CosGraphs.h>#include <coss/CosContainment.h>#include <coss/CosReference.h>#include <coss/CosGraphsExtension.h>#include "Documents.h"#include "Test.h"using namespace std;int main( int argc, char *argv[] ){ //ORB initialization CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "mico-local-orb"); cout << "Runing all tests\n" << flush; CORBA::Boolean exception = FALSE; CORBA::Boolean exception2 = FALSE; CORBA::Boolean exception3 = FALSE; CORBA::Boolean state_good = TRUE; state_good = TRUE; // containment cout << "Binding to ContainsRoleFactory ..." << flush; CORBA::ORB::ObjectTag_var tag2 = CORBA::ORB::string_to_tag ("ContainsRole_impl"); CORBA::Object_var obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag2.in()); assert (!CORBA::is_nil (obj10)); CosRelationships::RoleFactory_var contains_factory; if (contains_factory = CosRelationships::RoleFactory::_narrow (obj10)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to ContainedInRoleFactory ..." << flush; CORBA::ORB::ObjectTag_var tag3 = CORBA::ORB::string_to_tag ("ContainedInRole_impl"); CORBA::Object_var obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag3.in()); assert (!CORBA::is_nil (obj11)); CosRelationships::RoleFactory_var containedin_factory; if (containedin_factory = CosRelationships::RoleFactory::_narrow (obj11)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to ContainmentFactory ..." << flush; CORBA::ORB::ObjectTag_var tag11 = CORBA::ORB::string_to_tag ("Containment_impl"); CORBA::Object_var obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0", tag11.in()); assert (!CORBA::is_nil (obj30)); CosRelationships::RelationshipFactory_var containment_factory; if (containment_factory = CosRelationships::RelationshipFactory::_narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; // reference cout << "Binding to ReferencesRoleFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag2 = CORBA::ORB::string_to_tag ("ReferencesRole_impl"); //CORBA::Object_var obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag2.in()); assert (!CORBA::is_nil (obj10)); CosRelationships::RoleFactory_var references_factory; if (references_factory = CosRelationships::RoleFactory::_narrow (obj10)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to ReferencedByRoleFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag3 = CORBA::ORB::string_to_tag ("ReferencedByRole_impl"); //CORBA::Object_var obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag3.in()); assert (!CORBA::is_nil (obj11)); CosRelationships::RoleFactory_var referencedby_factory; if (referencedby_factory = CosRelationships::RoleFactory::_narrow (obj11)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to ReferenceFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag11 = CORBA::ORB::string_to_tag ("Reference_impl"); //CORBA::Object_var obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0", tag11.in()); assert (!CORBA::is_nil (obj30)); CosRelationships::RelationshipFactory_var reference_factory; if (reference_factory = CosRelationships::RelationshipFactory::_narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; // node factory cout << "Binding to NodeFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag11 = CORBA::ORB::string_to_tag ("Node_impl"); //CORBA::Object_var obj30 = orb->bind ("IDL:omg.org/CosGraphs/NodeFactory:1.0", tag11.in()); assert (!CORBA::is_nil (obj30)); CosGraphs::NodeFactory_var node_factory; if (node_factory = CosGraphs::NodeFactory::_narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; // figure and text factory cout << "Binding to TextFactory ..." << flush; //CORBA::Object_var obj30 = orb->bind ("IDL:Documents/TextFactory:1.0"); assert (!CORBA::is_nil (obj30)); Documents::TextFactory_var text_factory; if (text_factory = Documents::TextFactory::_narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to FigureFactory ..." << flush; obj30 = orb->bind ("IDL:Documents/FigureFactory:1.0"); assert (!CORBA::is_nil (obj30)); Documents::FigureFactory_var figure_factory; if (figure_factory = Documents::FigureFactory::_narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; // binding to factories which are need for tests cout << "Binding to BaseRoleFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag2 = CORBA::ORB::string_to_tag ("BaseRole_impl"); //CORBA::Object_var obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag2.in()); assert (!CORBA::is_nil (obj10)); CosRelationships::RoleFactory_var base_factory; if (base_factory = CosRelationships::RoleFactory::_narrow (obj10)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to DerivedRoleFactory 1..." << flush; //CORBA::ORB::ObjectTag_var tag3 = CORBA::ORB::string_to_tag ("DerivedRole1_impl"); //CORBA::Object_var obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag3.in()); assert (!CORBA::is_nil (obj11)); CosRelationships::RoleFactory_var derived_factory1; if (derived_factory1 = CosRelationships::RoleFactory::_narrow (obj11)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to DerivedRoleFactory 2..." << flush; //CORBA::ORB::ObjectTag_var tag3 = CORBA::ORB::string_to_tag ("DerivedRole2_impl"); //CORBA::Object_var obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", tag3.in()); assert (!CORBA::is_nil (obj11)); CosRelationships::RoleFactory_var derived_factory2; if (derived_factory2 = CosRelationships::RoleFactory::_narrow (obj11)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to TestRelationshipFactory ..." << flush; //CORBA::ORB::ObjectTag_var tag11 = CORBA::ORB::string_to_tag ("TestRelationship_impl"); //CORBA::Object_var obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0", tag11.in()); assert (!CORBA::is_nil (obj30)); CosRelationships::RelationshipFactory_var test_relationship_factory; if (test_relationship_factory = CosRelationships::RelationshipFactory:: _narrow (obj30)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to TraversalFactory ..." << flush; CORBA::Object_var obj3 = orb->bind ("IDL:omg.org/CosGraphs/TraversalFactory:1.0"); assert (!CORBA::is_nil (obj3)); CosGraphs::TraversalFactory_var traversal_factory; if (traversal_factory = CosGraphs::TraversalFactory::_narrow (obj3)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Binding to GenericCriteriaFactory ..." << flush; obj3 = orb->bind ("IDL:gnu.org/CosGraphsExtension/GenericCriteriaFactory:1.0"); assert (!CORBA::is_nil (obj3)); CosGraphsExtension::GenericCriteriaFactory_var criteria_factory; if (criteria_factory = CosGraphsExtension::GenericCriteriaFactory::_narrow (obj3)) cout << "done.\n" << flush; else cout << "ERROR!\n" << flush; cout << "Checking first level\n"; cout << "Checking RoleFactory::role_type () ..." << flush; //CORBA::InterfaceDef_ptr interface = owner_factory->role_type (); CORBA::InterfaceDef_ptr interface = contains_factory->role_type (); if (!CORBA::is_nil (interface)) { //interface->destroy (); cout << "ok.\n" << flush; } else cout << "error.\n" << flush; cout << "Checking RelationshipFactory::relationship_type () ..." << flush; //CORBA::InterfaceDef_ptr interface2 = ownership_factory->relationship_type (); CORBA::InterfaceDef_ptr interface2 = containment_factory->relationship_type (); if (!CORBA::is_nil (interface2)) { //interface2->destroy (); cout << "ok.\n" << flush; } else cout << "error.\n" << flush; //sleep (1); cout << "Checking RoleFactory::create_role () ..." << flush; CORBA::Boolean right_role = TRUE; CosContainment::ContainsRole_var role1; CosContainment::ContainedInRole_var role2; CosContainment::Relationship_var relship1; Documents::Figure_var fig1; Documents::Figure_var fig2; CosGraphs::Node_var node1; CosGraphs::Node_var node2;#ifdef HAVE_EXCEPTIONS try {#endif fig1 = Documents::Figure::_narrow (figure_factory->create ("fig1.png")); node1 = CosGraphs::Node::_duplicate (node_factory->create_node (fig1)); role1 = CosContainment::ContainsRole::_narrow (contains_factory->create_role (node1));#ifdef HAVE_EXCEPTIONS } catch (CosRelationships::RoleFactory::RelatedObjectTypeError_catch &ex1) { cout << "RelatedObjectTypeError!\n" << flush; right_role = FALSE; }#endif if (!CORBA::is_nil (role1)) { cout << "ok.\n" << flush; } else cout << "failed.\n"; cout << "Checking Role::related_object () ..." << flush; CosGraphs::Node_var tmp_node = CosGraphs::Node::_narrow (role1->related_object ()); if (!CORBA::is_nil (tmp_node)) cout << "ok.\n" << flush; else { cout << "failed.\n" << flush; } exception = FALSE; cout << "Checking Role::destroy () ..." << flush; role1->destroy ();#ifdef HAVE_EXCEPTIONS try {#endif CORBA::Object_var x = role1->related_object ();#ifdef HAVE_EXCEPTIONS } catch (CORBA::SystemException_catch &ex) { exception = TRUE; }#endif if (exception) cout << "ok.\n" << flush; else { cout << "failed.\n" << flush; } exception = FALSE; cout << "Checking RoleFactory::RelatedObjectTypeError exception ..." << flush;#ifdef HAVE_EXCEPTIONS try {#endif role1 = CosContainment::ContainsRole::_narrow (contains_factory->create_role (Documents::Figure::_duplicate (fig1)));#ifdef HAVE_EXCEPTIONS } catch (CosRelationships::RoleFactory::RelatedObjectTypeError_catch &ex1) { exception = TRUE; }#endif if (exception) cout << "ok.\n" << flush; else { cout << "failed.\n" << flush; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -