📄 instancedecl.cpp
字号:
pl1Array.append("count"); CIMPropertyList pl1(pl1Array); CIMInstance filterInstance = tstInstance.clone(); filterInstance.filter(true, true, pl1); if (verbose) { XmlWriter::printInstanceElement(filterInstance); } PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 1); PEGASUS_TEST_ASSERT(filterInstance.findProperty("count") != PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == tstInstance.getQualifierCount()); } // // Filter to no properties // { if (verbose) { cout << "Test5a" << endl; } Array<CIMName> pl1Array; CIMPropertyList pl1(pl1Array); CIMInstance filterInstance = tstInstance.clone(); filterInstance.filter(true, true, pl1); PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 0); PEGASUS_TEST_ASSERT(filterInstance.findProperty("ratio") == PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == tstInstance.getQualifierCount()); } // // Filter to two properties // { if (verbose) { cout << "Test5b" << endl; } Array<CIMName> pl1Array; pl1Array.append("count"); pl1Array.append("message"); CIMPropertyList pl1(pl1Array); CIMInstance filterInstance = tstInstance.clone(); filterInstance.filter(true, true, pl1); PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 2); PEGASUS_TEST_ASSERT(filterInstance.findProperty("ratio") == PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.findProperty("message") != PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(_propertyIdentical("message", filterInstance, tstInstance)); PEGASUS_TEST_ASSERT(filterInstance.findProperty("count") != PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(_propertyIdentical("count", filterInstance, tstInstance)); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == tstInstance.getQualifierCount()); } // // Filter to no qualifiers and all properties. // { if (verbose) { cout << "Test6" << endl; } CIMInstance filterInstance = tstInstance.clone(); filterInstance.filter(false, true, CIMPropertyList()); PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 3); PEGASUS_TEST_ASSERT(filterInstance.findProperty("ratio") != PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == 0); for (Uint32 i = 0; i < filterInstance.getPropertyCount() ; i++) { CIMConstProperty p = filterInstance.getProperty(i); PEGASUS_TEST_ASSERT(p.getQualifierCount() == 0); } } // // Filter to no qualifiers and no properties. // { if (verbose) { cout << "Test6a" << endl; } Array<CIMName> pl1Array; CIMPropertyList pl1(pl1Array); CIMInstance filterInstance = tstInstance.clone(); filterInstance.filter(false, true, pl1); PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 0); PEGASUS_TEST_ASSERT(filterInstance.findProperty("ratio") == PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == 0); } // // Test Class Origin Filter // { if (verbose) { cout << "Test7 Class Origin" << endl; } // Create a subclass to do classOrigin testing CIMClass mySubClass(CIMName("subclass")); mySubClass.setSuperClassName(CIMName("MyClass")); Resolver::resolveClass(mySubClass, context, NAMESPACE); context->addClass(NAMESPACE, mySubClass); // build instance CIMInstance filterInstance = mySubClass.buildInstance(true, true, CIMPropertyList()); filterInstance.filter(false, true, CIMPropertyList()); PEGASUS_TEST_ASSERT(filterInstance.getPropertyCount() == 3); PEGASUS_TEST_ASSERT(filterInstance.findProperty("ratio") != PEG_NOT_FOUND); PEGASUS_TEST_ASSERT(filterInstance.getQualifierCount() == 0); for (Uint32 i = 0 ; i < filterInstance.getPropertyCount() ; i++) { CIMProperty p = filterInstance.getProperty(i); PEGASUS_TEST_ASSERT(!(p.getClassOrigin() == CIMName())); } filterInstance.filter(false, false, CIMPropertyList()); for (Uint32 i = 0 ; i < filterInstance.getPropertyCount() ; i++) { CIMProperty p = filterInstance.getProperty(i); PEGASUS_TEST_ASSERT(p.getClassOrigin() == CIMName()); } CIMInstance filterInstance2 = mySubClass.buildInstance(true, false, CIMPropertyList()); for (Uint32 i = 0 ; i < filterInstance2.getPropertyCount() ; i++) { CIMProperty p = filterInstance2.getProperty(i); PEGASUS_TEST_ASSERT(p.getClassOrigin() == CIMName()); } } delete context;}//// Test instance qualifier operations//void test05(){ CIMInstance instance1(CIMName("MyClass")); instance1.addQualifier(CIMQualifier(CIMName("Qualifier1"), true)); instance1.addQualifier(CIMQualifier(CIMName("Qualifier2"), Uint32(1))); instance1.addQualifier(CIMQualifier(CIMName("Qualifier3"), String("a"))); Boolean caughtException = false; try { instance1.addQualifier(CIMQualifier(CIMName("Qualifier1"), true)); } catch (const AlreadyExistsException&) { caughtException = true; } PEGASUS_TEST_ASSERT(caughtException); PEGASUS_TEST_ASSERT(instance1.getQualifierCount() == 3); // Test that the correct qualifiers exist in the instance Uint32 qualifierIndex; qualifierIndex = instance1.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance1.findQualifier(CIMName("Qualifier2")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance1.findQualifier(CIMName("Qualifier3")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance1.findQualifier(CIMName("Qualifier4")); PEGASUS_TEST_ASSERT(qualifierIndex == PEG_NOT_FOUND); // Clone the instance and test for the correct qualifiers CIMConstInstance instance2 = instance1.clone(); PEGASUS_TEST_ASSERT(instance2.getQualifierCount() == 3); qualifierIndex = instance2.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier2")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier3")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier4")); PEGASUS_TEST_ASSERT(qualifierIndex == PEG_NOT_FOUND); // Remove Qualifier2 from instance1 qualifierIndex = instance1.findQualifier(CIMName("Qualifier2")); instance1.removeQualifier(qualifierIndex); PEGASUS_TEST_ASSERT(instance1.getQualifierCount() == 2); qualifierIndex = instance1.findQualifier(CIMName("Qualifier2")); PEGASUS_TEST_ASSERT(qualifierIndex == PEG_NOT_FOUND); qualifierIndex = instance1.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); // Confirm that the qualifiers are still in instance2 PEGASUS_TEST_ASSERT(instance2.getQualifierCount() == 3); qualifierIndex = instance2.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier2")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); // Remove a non-existant qualifier caughtException = false; try { instance1.removeQualifier(10); } catch (const IndexOutOfBoundsException&) { caughtException = true; } PEGASUS_TEST_ASSERT(caughtException); // Remove Qualifier1 and Qualifier3 from instance1 qualifierIndex = instance1.findQualifier(CIMName("Qualifier1")); instance1.removeQualifier(qualifierIndex); PEGASUS_TEST_ASSERT(instance1.getQualifierCount() == 1); qualifierIndex = instance1.findQualifier(CIMName("Qualifier3")); instance1.removeQualifier(qualifierIndex); PEGASUS_TEST_ASSERT(instance1.getQualifierCount() == 0); qualifierIndex = instance1.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex == PEG_NOT_FOUND); qualifierIndex = instance1.findQualifier(CIMName("Qualifier3")); PEGASUS_TEST_ASSERT(qualifierIndex == PEG_NOT_FOUND); // Confirm that the qualifiers are still in instance2 PEGASUS_TEST_ASSERT(instance2.getQualifierCount() == 3); qualifierIndex = instance2.findQualifier(CIMName("Qualifier1")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier2")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND); qualifierIndex = instance2.findQualifier(CIMName("Qualifier3")); PEGASUS_TEST_ASSERT(qualifierIndex != PEG_NOT_FOUND);}int main(int argc, char** argv){ verbose = getenv("PEGASUS_TEST_VERBOSE"); try { test01(); test02(); test03(); test04(); test05(); } catch (Exception& e) { cout << "Exception: " << e.getMessage() << endl; exit(1); } cout << argv[0] << " +++++ passed all tests" << endl; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -