associationclient.cpp
来自「Pegasus is an open-source implementation」· C++ 代码 · 共 640 行 · 第 1/2 页
CPP
640 行
assocClass, resultClass, invalidRole, resultRole); } catch(CIMException& e) { if (e.getCode() == CIM_ERR_INVALID_PARAMETER) { gotException = true; if (verbose) { cout << "Test role parameter syntax: " << e.getMessage() << endl; } } else { throw; } } PEGASUS_TEST_ASSERT(gotException); // invalid resultRole parameter syntax gotException = false; try { resultObjectPaths = client.associatorNames( NAMESPACE, instancePath, assocClass, resultClass, role, invalidResultRole); } catch(CIMException& e) { if (e.getCode() == CIM_ERR_INVALID_PARAMETER) { gotException = true; if (verbose) { cout << "Test resultRole parameter syntax: " << e.getMessage() << endl; } } else { throw; } } PEGASUS_TEST_ASSERT(gotException); // =================================================================== // references // // Get the association instances (Sample_TeacherStudent instances) that // refer to the specified target CIM instance (Sample_Teacher.Name = // "Teacher1"). // =================================================================== resultObjects = client.references( NAMESPACE, instancePath, resultClass, role); // verify result numObjects = resultObjects.size(); if (_verifyResult(numObjects, 5) != 0) return -1; // display result // cout << "Number of reference objects = " << numObjects << endl; _displayResult(resultObjects, verbose); // =================================================================== // references // // Validate role parameter syntax. // =================================================================== // invalid role parameter syntax gotException = false; try { resultObjects = client.references( NAMESPACE, instancePath, resultClass, invalidRole); } catch(CIMException& e) { if (e.getCode() == CIM_ERR_INVALID_PARAMETER) { gotException = true; if (verbose) { cout << "Test role parameter syntax: " << e.getMessage() << endl; } } else { throw; } } PEGASUS_TEST_ASSERT(gotException); // =================================================================== // referenceNames // // Get the names of the association instances (Sample_TeacherStudent // instances) that refer to the specified target CIM instance // (Sample_Teacher.Name = "Teacher1"). // =================================================================== resultObjectPaths = client.referenceNames( NAMESPACE, instancePath, resultClass, role); // verify result numObjects = resultObjectPaths.size(); if (_verifyResult(numObjects, 5) != 0) return -1; // display result // cout << "Number of reference name objects = " << numObjects << endl; _displayResult(resultObjectPaths, verbose); // =================================================================== // referenceNames // // Validate role parameter syntax. // =================================================================== // invalid role parameter syntax gotException = false; try { resultObjectPaths = client.referenceNames( NAMESPACE, instancePath, resultClass, invalidRole); } catch(CIMException& e) { if (e.getCode() == CIM_ERR_INVALID_PARAMETER) { gotException = true; if (verbose) { cout << "Test role parameter syntax: " << e.getMessage() << endl; } } else { throw; } } PEGASUS_TEST_ASSERT(gotException); // =================================================================== // Call the association methods with different filters specified. // Filters used are: role, resultClass, resultRole, assocClass. // =================================================================== // // get all the students who are taught by 'Teacher1' // role = "Teaches"; resultRole = "TaughtBy"; resultClass = CIMName("Sample_Student"); assocClass = SAMPLE_TEACHERSTUDENT; resultObjects = client.associators( NAMESPACE, instancePath, assocClass, resultClass, role, resultRole); // verify result numObjects = resultObjects.size(); if (_verifyResult(numObjects, 3) != 0) return -1; // display result // cout << "Number of associator objects = " << numObjects << endl; _displayResult(resultObjects, verbose); // // get all the students who have 'Teacher1' as an advisor // role = "Advises"; resultRole = "AdvisedBy"; resultClass = CIMName("Sample_Student"); assocClass = SAMPLE_ADVISORSTUDENT; resultObjectPaths = client.associatorNames( NAMESPACE, instancePath, assocClass, resultClass, role, resultRole); // verify result numObjects = resultObjectPaths.size(); if (_verifyResult(numObjects, 2) != 0) return -1; // display result // cout << "Number of associator name objects = " << numObjects << endl; _displayResult(resultObjectPaths, verbose); // // get all the TeacherStudent association instances in which 'Teacher1' // plays the role of a teacher. // role = "Teaches"; resultClass = CIMName("Sample_TeacherStudent"); resultObjects = client.references( NAMESPACE, instancePath, resultClass, role); // verify result numObjects = resultObjects.size(); if (_verifyResult(numObjects, 3) != 0) return -1; // display result // cout << "Number of reference objects = " << numObjects << endl; _displayResult(resultObjects, verbose); // // get all the AdvisorStudent association instances in which 'Teacher1' // plays the role of an advisor. // role = "Advises"; resultClass = CIMName("Sample_AdvisorStudent"); resultObjectPaths = client.referenceNames( NAMESPACE, instancePath, resultClass, role); // verify result numObjects = resultObjectPaths.size(); if (_verifyResult(numObjects, 2) != 0) return -1; // display result // cout << "Number of reference objects = " << numObjects << endl; _displayResult(resultObjectPaths, verbose); // =================================================================== // Pass Class object to the Association Methods // =================================================================== // // get the CIM classes that are associated with the Sample_Teacher class // CIMObjectPath classPath("Sample_Teacher"); assocClass = CIMName(); resultClass = CIMName(); role = String::EMPTY; resultRole = String::EMPTY; resultObjects = client.associators( NAMESPACE, classPath, assocClass, resultClass, role, resultRole); // verify result numObjects = resultObjects.size(); if (_verifyResult(numObjects, 1) != 0) return -1; // display result // cout << "Number of associated class objects = " << numObjects << endl; _displayResult(resultObjects, verbose); // // get the association classes that refer to the Sample_Teacher class // resultObjects = client.references( NAMESPACE, classPath, resultClass, role); // verify result numObjects = resultObjects.size(); if (_verifyResult(numObjects, 2) != 0) return -1; // display result // cout << "Number of association class objects = " << numObjects << endl; _displayResult(resultObjects, verbose); } catch(Exception& e) { cerr << "Error: " << e.getMessage() << endl; return -1; } cout << "AssociationClient +++++ passed all tests" << endl; return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?