void drive_resolve_specialChars() { const char* env = getenv("PEGASUS_HOME"); String repositoryDir(env); repositoryDir.append("/repository"); //String repositoryDir("c:/pegasus-cvs/pegasus/repository"); CIMNamespaceName _ns("root/cimv2"); CIMRepository *_rep = new CIMRepository(repositoryDir); RepositoryQueryContext _query(_ns, _rep); RepositoryQueryContext _query1(_ns, _rep); try { const CQLIdentifier _Id1(String("CIM_OperatingSystem")); _query.insertClassPath(_Id1); const CIMName _cimName(String("CIM_OperatingSystem")); CIMInstance _i1(_cimName); CIMProperty _p1(CIMName("OSType"),CIMValue(Uint16(11))); CIMProperty _p2(CIMName("Status"),CIMValue(String("Degraded"))); Array<Uint16> array16; array16.append(Uint16(0)); array16.append(Uint16(1)); array16.append(Uint16(2)); array16.append(Uint16(3)); CIMProperty _p3(CIMName("OperationalStatus"),CIMValue(array16)); _i1.addProperty(_p1); _i1.addProperty(_p2); _i1.addProperty(_p3); CQLChainedIdentifier ci1(String("CIM_OperatingSystem.OSType#OS400")); CQLChainedIdentifier ci2(String("CIM_OperatingSystem.OSType#LINUX")); CQLChainedIdentifier ci3(String("CIM_OperatingSystem.Status#Degraded")); CQLChainedIdentifier ci5(String("CIM_OperatingSystem.Status#BOGUS")); CQLChainedIdentifier ci6( String("CIM_OperatingSystem.CIM_OperatingSystem::" "OperationalStatus[2]")); CQLValue a1(ci1); CQLValue a2(ci2); CQLValue a3(ci3); CQLValue a5(ci5); CQLValue a6(ci6); a1.resolve(_i1, _query); a2.resolve(_i1, _query); a6.resolve(_i1, _query); try { a3.resolve(_i1, _query); PEGASUS_TEST_ASSERT(0); } catch(...) { PEGASUS_TEST_ASSERT(1); } try { a5.resolve(_i1, _query); PEGASUS_TEST_ASSERT(0); } catch(...) { PEGASUS_TEST_ASSERT(1); } PEGASUS_TEST_ASSERT(a1 == CQLValue(Uint64(11))); PEGASUS_TEST_ASSERT(a2 == CQLValue(Uint64(36))); PEGASUS_TEST_ASSERT(a6 == CQLValue(Uint64(2))); } catch(Exception & e) { cout << e.getMessage() << endl; PEGASUS_TEST_ASSERT(0); } delete _rep; return; }
/* **************************************************************************** * * put - */ TEST(putAvailabilitySubscriptionConvOp, put) { ConnectionInfo ci1("/ngsi9/contextAvailabilitySubscriptions", "POST", "1.1"); ConnectionInfo ci2("/ngsi9/contextAvailabilitySubscriptions", "GET", "1.1"); ConnectionInfo ci3("/ngsi9/contextAvailabilitySubscriptions/111222333444555666777888", "PUT", "1.1"); ConnectionInfo ci4("/ngsi9/contextAvailabilitySubscriptions/111222333444555666777888", "DELETE", "1.1"); ConnectionInfo ci5("/ngsi9/contextAvailabilitySubscriptions/111222333444555666777881", "PUT", "1.1"); ConnectionInfo ci6("/ngsi9/contextAvailabilitySubscriptions/012345678901234567890123", "XVERB", "1.1"); const char* infile1 = "ngsi9.subscribeContextAvailabilityRequest.ok.valid.xml"; const char* infile2 = "ngsi9.updateContextAvailabilitySubscriptionRequest.withSubId.valid.xml"; const char* outfile1 = "ngsi9.subscribeContextAvailabilityResponse.ok.middle.xml"; const char* outfile3 = "ngsi9.updateContextAvailabilitySubscriptionResponse.putAvailabilitySubscriptionConvOp.notFound.valid.xml"; const char* outfile4 = "ngsi9.unsubscribeContextAvailabilityResponse.putAvailabilitySubscriptionConvOp.notFound2.valid.xml"; const char* outfile5 = "ngsi9.updateContextAvailabilitySubscriptionResponse.putAvailabilitySubscriptionConvOp.unmatchingSubscriptionId.valid.xml"; std::string out; utInit(); EXPECT_EQ("OK", testDataFromFile(testBuf, sizeof(testBuf), infile1)) << "Error getting test data from '" << infile1 << "'"; EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile1)) << "Error getting test data from '" << outfile1 << "'"; ci1.payload = testBuf; ci1.payloadSize = strlen(testBuf); out = restService(&ci1, rs); char* outStart = (char*) out.c_str(); // Remove last char in expectedBuf expectedBuf[strlen(expectedBuf) - 1] = 0; // Shorten'out' to be of same length as expectedBuf outStart[strlen(expectedBuf)] = 0; EXPECT_STREQ(expectedBuf, out.c_str()); out = restService(&ci2, rs); EXPECT_EQ("", out); EXPECT_EQ("Allow", ci2.httpHeader[0]); EXPECT_EQ("POST", ci2.httpHeaderValue[0]); EXPECT_EQ("OK", testDataFromFile(testBuf, sizeof(testBuf), infile2)) << "Error getting test data from '" << infile2 << "'"; EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile3)) << "Error getting test data from '" << outfile3 << "'"; ci3.payload = testBuf; ci3.payloadSize = strlen(testBuf); out = restService(&ci3, rs); EXPECT_STREQ(expectedBuf, out.c_str()); EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile4)) << "Error getting test data from '" << outfile4 << "'"; out = restService(&ci4, rs); EXPECT_STREQ(expectedBuf, out.c_str()); EXPECT_EQ("OK", testDataFromFile(testBuf, sizeof(testBuf), infile2)) << "Error getting test data from '" << infile2 << "'"; EXPECT_EQ("OK", testDataFromFile(expectedBuf, sizeof(expectedBuf), outfile5)) << "Error getting test data from '" << outfile5 << "'"; ci5.payload = testBuf; ci5.payloadSize = strlen(testBuf); out = restService(&ci5, rs); EXPECT_STREQ(expectedBuf, out.c_str()); out = restService(&ci6, rs); EXPECT_EQ("", out); EXPECT_EQ("Allow", ci6.httpHeader[0]); EXPECT_EQ("PUT, DELETE", ci6.httpHeaderValue[0]); utExit(); }
void drive_resolve_primitive() { const char* env = getenv("PEGASUS_HOME"); String repositoryDir(env); repositoryDir.append("/repository"); //String repositoryDir("c:/pegasus-cvs/pegasus/repository"); CIMNamespaceName _ns("root/cimv2"); CIMRepository *_rep = new CIMRepository(repositoryDir); RepositoryQueryContext _query(_ns, _rep); RepositoryQueryContext _query1(_ns, _rep); try { const CQLIdentifier _Id1(String("CIM_OperatingSystem")); _query.insertClassPath(_Id1); const CIMName _cimName(String("CIM_OperatingSystem")); CIMInstance _i1(_cimName); CIMProperty _p1(CIMName("Description"),CIMValue(String("Dave Rules"))); CIMProperty _p2(CIMName("EnabledState"),CIMValue(Uint16(2))); CIMProperty _p3(CIMName("CurrentTimeZone"),CIMValue(Sint16(-600))); CIMProperty _p4(CIMName("TimeOfLastStateChange"), CIMValue(CIMDateTime(String("20040811105625.000000-360")))); _i1.addProperty(_p1); _i1.addProperty(_p2); _i1.addProperty(_p3); _i1.addProperty(_p4); CQLChainedIdentifier ci1( String("CIM_OperatingSystem.CIM_OperatingSystem::Description")); CQLChainedIdentifier ci2(String("CIM_OperatingSystem.CIM_OperatingSystem::EnabledState")); CQLChainedIdentifier ci3( String("CIM_OperatingSystem.CIM_OperatingSystem::CurrentTimeZone")); CQLChainedIdentifier ci4( String("CIM_OperatingSystem.CIM_OperatingSystem::TimeOfLastStateChange")); CQLChainedIdentifier ci5(String( "CIM_OperatingSystem.CIM_EnabledLogicalElement::TimeOfLastStateChange")); CQLChainedIdentifier ci7(String("CIM_OperatingSystem")); CQLChainedIdentifier ci9(String( "CIM_EnabledLogicalElement.CIM_OperatingSystem::CSCreationClassName")); CQLChainedIdentifier ci10(String("CIM_OperatingSystem.CIM_OperatingSystem::Bubba")); CQLValue a1(ci1); CQLValue a2(ci2); CQLValue a3(ci3); CQLValue a4(ci4); CQLValue a5(ci5); CQLValue a7(ci7); CQLValue a9(ci9); CQLValue a10(ci10); CQLValue a11(_query.getClass(CIMName("CIM_OperatingSystem"))); a1.resolve(_i1, _query); a2.resolve(_i1, _query); a3.resolve(_i1, _query); a4.resolve(_i1, _query); a5.resolve(_i1, _query); a7.resolve(_i1, _query); a10.resolve(_i1, _query1); a9.resolve(_i1, _query); PEGASUS_TEST_ASSERT(a1 == CQLValue(String("Dave Rules"))); PEGASUS_TEST_ASSERT(a2 == CQLValue(Uint64(2))); PEGASUS_TEST_ASSERT(a3 == CQLValue(Sint64(-600))); PEGASUS_TEST_ASSERT(a4 == CQLValue( CIMDateTime(String("20040811105625.000000-360")))); PEGASUS_TEST_ASSERT(a5 == CQLValue( CIMDateTime(String("20040811105625.000000-360")))); //PEGASUS_TEST_ASSERT(a7 == CQLValue(_i1)); PEGASUS_TEST_ASSERT(a9.isNull()); PEGASUS_TEST_ASSERT(a10.isNull()); } catch(Exception & e) { cout << e.getMessage() << endl; PEGASUS_TEST_ASSERT(0); } delete _rep; return; }