📄 associationclient.cpp
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -