// // Creates a description without source file name and line number. // static String _makeCIMExceptionDescription( CIMStatusCode code, const String& message) { String tmp; tmp.append(cimStatusCodeToString(code)); if (message != String::EMPTY) { tmp.append(": \""); tmp.append(message); tmp.append("\""); } return tmp; }
void _checkExceptionCode (const CIMException & e, const CIMStatusCode expectedCode) { if (verbose) { if (e.getCode () != expectedCode) { cerr << "CIMException comparison failed. "; cerr << "Expected " << cimStatusCodeToString (expectedCode) << "; "; cerr << "Actual exception was " << e.getMessage () << "." << endl; } } PEGASUS_ASSERT (e.getCode () == expectedCode); }
// Test against the CIMException defined by the one // defined for the test. If not equal, generate error // and return false. If the message variable is set, // also test the message against the one defined. Boolean testEnumSequence::_testCIMException(CIMException& e) { _returnedCIMExceptionCode = e.getCode(); if (e.getCode() != _expectedCIMExceptionCode) { cerr << "CIMException Error: " << e.getCode() << " " << e.getMessage() << " Expected: " << _expectedCIMExceptionCode << " " << cimStatusCodeToString(_expectedCIMExceptionCode) << endl; return false; } else { VCOUT << "Correct Exception Code received." << _testName << " " << _operationName << " Exception " << e.getCode() << " " << e.getMessage() << endl; // test for correct message if required (i.e. test string not // empty if (_expectedCIMExceptionMessage != "") { if (_globMatch(_expectedCIMExceptionMessage, e.getMessage()) != 0 ) { cerr << "Received CIMException Message Error: |" << e.getMessage() << "| does not match expected CIMException |" << _expectedCIMExceptionMessage << "|" << endl; return false; } } } return true; }
void TestDeleteInstances(ProviderRegistrationManager & prmanager) { CIMKeyBinding kb1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kb2(CIMName ("ProviderName"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kb3(CIMName ("CapabilityID"), "capability1", CIMKeyBinding::STRING); CIMKeyBinding kbp1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kbp2(CIMName ("Name"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kbm1(CIMName ("Name"), "providersModule1", CIMKeyBinding::STRING); CIMObjectPath instanceName; try { for (Uint32 i=1; i<=3; i++) { CIMObjectPath instanceName2; Array<CIMKeyBinding> keys2; Array<CIMKeyBinding> keysm; Array<CIMKeyBinding> keys; // // create Provider module instances // if (i <= 1) { CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); returnRef = prmanager.createInstance(instanceName, cimInstance); } // create PG_Provider instances if (i <= 2 ) { CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); } // // create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; namespaces.append("test_namespace1"); namespaces.append("test_namespace2"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("test_class1"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); Boolean callFailed = false; switch (i) { case 1: // // delete cimInstance2 // keys2.append(kbp1); keys2.append(kbp2); instanceName2.setKeyBindings(keys2); prmanager.deleteInstance(instanceName2); // Test duplicate delete which should fail try { prmanager.deleteInstance(instanceName2); } catch(CIMException& e) { callFailed = true; VCOUT << "CIMException code " << e.getCode() << "(" << cimStatusCodeToString(e.getCode()) << ")" << "\nDescription \"" << e.getMessage() << "\"" << endl; PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_NOT_FOUND); } PEGASUS_TEST_ASSERT(callFailed); break; case 2: // // delete cimInstance3 // keys.append(kb1); keys.append(kb2); keys.append(kb3); instanceName3.setKeyBindings(keys); prmanager.deleteInstance(instanceName3); break; case 3: // // delete cimInstance // keysm.append(kbm1); instanceName.setKeyBindings(keysm); prmanager.deleteInstance(instanceName); break; } } } catch(CIMException& e) { throw (e); } }