示例#1
0
void testClearMethod()
{
    // Test with a variety of object types in the From ResponseData
    // Build the class
    CIMClass CIMclass1 = buildClass();

    // Build a CIM Instance. NOTE: key is defaulted in class

    CIMInstance CIMInst1 = CIMclass1.buildInstance(true, true,
                                                   CIMPropertyList());

        // Clone the instance and change key
    CIMInstance CIMInst2 = CIMInst1.clone();
    setPropertyValue(CIMInst2, "id", 2);

    CIMInstance CIMInst3 = CIMInst1.clone();
    setPropertyValue(CIMInst3, "id", 3);
    CIMInstance CIMInst4 = CIMInst1.clone();
    setPropertyValue(CIMInst4, "id", 4);

    // build CIMInstance array
    Array<CIMInstance> CIMInstArray;
    CIMInstArray.append(CIMInst1);
    CIMInstArray.append(CIMInst2);
    CIMInstArray.append(CIMInst3);
    CIMInstArray.append(CIMInst4);

    // Create CIMReponseData object
    CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_INSTANCES);

    // Append an array of CIMInstances
    crd.appendInstances(CIMInstArray);
    PEGASUS_TEST_ASSERT(crd.size() == 4);

    // Build SCMO instances
    SCMOClass SCMO_CSClass(CIMclass1);

    VCOUT << "Creating SCMOInstance from CIMInstance" << endl;
    SCMOInstance SCMO_CSInstance3(SCMO_CSClass,CIMInst3);
    SCMOInstance SCMO_CSInstance4(SCMO_CSClass,CIMInst4);

    // Create array of 2 SCMO Instances
    Array<SCMOInstance> SCMOInstArray;
    SCMOInstArray.append(SCMO_CSInstance3);
    SCMOInstArray.append(SCMO_CSInstance4);
    crd.appendSCMO(SCMOInstArray);

    PEGASUS_TEST_ASSERT(crd.size() == 6);

    crd.clear();

    PEGASUS_TEST_ASSERT(crd.size() == 0);
}
示例#2
0
	void CompoundWriter::onExecute()
	{
		if (!pCompound->name || pCompound->name.contains('@'))
			return;

		switch (pCompound->kind)
		{
			case kdFunction: break;
			case kdTypedef: break;
			case kdClass: buildClass();break;
			case kdNamespace: buildNamespace();break;
			case kdVariable: break;
			case kdEnum: break;
			case kdFile: break;
			case kdFolder: break;
			case kdGroup: break;
			case kdFriend: break;
			case kdUnknown: break;
			case kdMax: break;
		}
	}
示例#3
0
 void ContextBuilder::buildAST(const ParsedContext &parsedContext) {
     for (auto elem : parsedContext.getClasses()) {
         classTable->addClass(buildClass(elem));
     }
 }
示例#4
0
// test size method and moveObjects method
void test02()
{
    // Test with a variety of object types in the From ResponseData
    // Build the class
    CIMClass CIMclass1 = buildClass();

    // Build a CIM Instance. NOTE: key is defaulted in class

    CIMInstance CIMInst1 = CIMclass1.buildInstance(true, true,
                                                   CIMPropertyList());

        // Clone the instance and change key
    CIMInstance CIMInst2 = CIMInst1.clone();
    setPropertyValue(CIMInst2, "id", 2);

    CIMInstance CIMInst3 = CIMInst1.clone();
    setPropertyValue(CIMInst3, "id", 3);
    CIMInstance CIMInst4 = CIMInst1.clone();
    setPropertyValue(CIMInst4, "id", 4);

    // build CIMInstance array
    Array<CIMInstance> CIMInstArray;
    CIMInstArray.append(CIMInst1);
    CIMInstArray.append(CIMInst2);

    // Build SCMO instances
    SCMOClass SCMO_CSClass(CIMclass1);

    VCOUT << "Creating SCMOInstance from CIMInstance" << endl;
    SCMOInstance SCMO_CSInstance3(SCMO_CSClass,CIMInst3);
    SCMOInstance SCMO_CSInstance4(SCMO_CSClass,CIMInst4);

    // Create array of 2 SCMO Instances
    Array<SCMOInstance> SCMOInstArray;
    SCMOInstArray.append(SCMO_CSInstance3);
    SCMOInstArray.append(SCMO_CSInstance4);

    // Create CIMReponseData object
    CIMResponseData crd1 = CIMResponseData(CIMResponseData::RESP_INSTANCES);
    PEGASUS_TEST_ASSERT(crd1.valid());
    // set SCMO array into the object
    crd1.setSCMO(SCMOInstArray);

    PEGASUS_TEST_ASSERT(crd1.valid());

    VCOUT << crd1.size() << endl;
    PEGASUS_TEST_ASSERT(crd1.size() == 2);

    // append a CIM Instance
    crd1.appendInstance(CIMInst1);

    PEGASUS_TEST_ASSERT(crd1.valid());
    VCOUT << crd1.size() << endl;
    PEGASUS_TEST_ASSERT(crd1.size() == 3);

    // Append an array of CIMInstances
    crd1.appendInstances(CIMInstArray);

    PEGASUS_TEST_ASSERT(crd1.valid());
    VCOUT << crd1.size() << endl;
    PEGASUS_TEST_ASSERT(crd1.size() == 5);

    CIMResponseData crdTo = CIMResponseData(CIMResponseData::RESP_INSTANCES);

    VCOUT << "Before from =  " << crd1.size() << ", to = "
        << crdTo.size() << endl;

    PEGASUS_TEST_ASSERT(crdTo.valid());
    Uint32 rtn = crdTo.moveObjects(crd1, 3);
    VCOUT << "After from = " <<  crd1.size() << ", to = "
        << crdTo.size() << endl;

    PEGASUS_TEST_ASSERT(crdTo.valid());
    PEGASUS_TEST_ASSERT(crd1.valid());

    PEGASUS_TEST_ASSERT(rtn ==3);
    PEGASUS_TEST_ASSERT(crd1.size() == 2);
    PEGASUS_TEST_ASSERT(crdTo.size() == 3);

    CIMResponseData crdTo2 = CIMResponseData(CIMResponseData::RESP_INSTANCES);
    VCOUT << "Before from =  " << crd1.size() << ", to = "
        << crdTo2.size() << endl;
    Uint32 rtn2 = crdTo2.moveObjects(crd1, 9);
    VCOUT << "After from = " <<  crd1.size() << ", to = "
        << crdTo2.size() << endl;
    PEGASUS_TEST_ASSERT(rtn2 ==2);
    PEGASUS_TEST_ASSERT(crd1.size() == 0);
    PEGASUS_TEST_ASSERT(crdTo2.size() == 2);

    PEGASUS_TEST_ASSERT(crd1.valid());
    PEGASUS_TEST_ASSERT(crdTo2.valid());

    // Repeat the test but starting with set CIM Instance Array to start
    // Create CIMReponseData object
    CIMResponseData crd2 = CIMResponseData(CIMResponseData::RESP_INSTANCES);
    crd2.setInstances(CIMInstArray);
    PEGASUS_TEST_ASSERT(crd2.size() == 2);
    PEGASUS_TEST_ASSERT(crd2.valid());

    crd2.appendInstance(CIMInst1);

    VCOUT << crd2.size() << endl;
    PEGASUS_TEST_ASSERT(crd2.size() == 3);

    crd2.appendSCMO(SCMOInstArray);
    PEGASUS_TEST_ASSERT(crd2.valid());

    VCOUT << crd2.size() << endl;
    PEGASUS_TEST_ASSERT(crd2.size() == 5);

    // Test XML formatting.

    CIMResponseData crd3 = CIMResponseData(CIMResponseData::RESP_INSTANCES);

    // set CIM instances into the responseData.
    crd3.appendInstances(CIMInstArray);

    VCOUT << "crd3 size " << crd3.size() << endl;
    PEGASUS_TEST_ASSERT(crd3.size() == 2);

    // Confirm that we can encode into a buffer.
    Buffer buf1;
    crd3.encodeXmlResponse(buf1, true);
    PEGASUS_TEST_ASSERT(crd3.size() == 2);

    CIMBuffer bufa;
    crd3.encodeInternalXmlResponse(bufa, true);

    CIMResponseData crd4 = CIMResponseData(CIMResponseData::RESP_INSTANCES);
////  The following fails. Apparently not enough data in the buffer. Think it
////  is the namespace from the buffer that does not exist.
////  FUTURE. Check this but not important since the real test is in the msg
////  serializer and deserializer.
////  PEGASUS_TEST_ASSERT(crd4.setXml(bufa));
////  cout << "crd4 size: " << crd4.size() << endl;
////  PEGASUS_TEST_ASSERT(crd4.size() == 4);

}
示例#5
0
// test the size() function for various types of set and append of object to
// the response data object. Test set and append of single type.
void testSizeMethod()
{
    // Test with a variety of object types in the From ResponseData
    // Build the class
    CIMClass CIMclass1 = buildClass();

    // Build a CIM Instance. NOTE: key is defaulted in class

    CIMInstance CIMInst1 = CIMclass1.buildInstance(true, true,
                                                   CIMPropertyList());

        // Clone the instance and change key
    CIMInstance CIMInst2 = CIMInst1.clone();
    setPropertyValue(CIMInst2, "id", 2);

    CIMInstance CIMInst3 = CIMInst1.clone();
    setPropertyValue(CIMInst3, "id", 3);
    CIMInstance CIMInst4 = CIMInst1.clone();
    setPropertyValue(CIMInst4, "id", 4);

    // build CIMInstance array
    Array<CIMInstance> CIMInstArray;
    CIMInstArray.append(CIMInst1);
    CIMInstArray.append(CIMInst2);
    CIMInstArray.append(CIMInst3);
    CIMInstArray.append(CIMInst3);

    // Build SCMO instances
    SCMOClass SCMO_CSClass(CIMclass1);

    VCOUT << "Creating SCMOInstance from CIMInstance" << endl;
    SCMOInstance SCMO_CSInstance3(SCMO_CSClass,CIMInst3);
    SCMOInstance SCMO_CSInstance4(SCMO_CSClass,CIMInst4);

    // Create array of 2 SCMO Instances
    Array<SCMOInstance> SCMOInstArray;
    SCMOInstArray.append(SCMO_CSInstance3);
    SCMOInstArray.append(SCMO_CSInstance4);

    // tests with CIM objects (C++ Interface)
    {
        CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_INSTANCES);

        crd.setInstances(CIMInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 4);
        crd.appendInstances(CIMInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 8);
        crd.appendInstance(CIMInst1);
        PEGASUS_TEST_ASSERT(crd.size() == 9);
        crd.appendSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 11);
        PEGASUS_TEST_ASSERT(crd.valid());
    }

    {
        CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_INSTANCES);

        crd.setInstance(CIMInst1);
        PEGASUS_TEST_ASSERT(crd.size() == 1);
        crd.appendInstances(CIMInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 5);
        crd.appendInstance(CIMInst1);
        PEGASUS_TEST_ASSERT(crd.size() == 6);
        crd.appendSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 8);
        PEGASUS_TEST_ASSERT(crd.valid());
    }

    // test with objects
    {
        CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_OBJECTS);
        Array<CIMObject> x;
        x.append((CIMObject)CIMInst1);
        x.append((CIMObject)CIMInst2);

        // Append an array of CIMInstances
        crd.setObjects(x);
        PEGASUS_TEST_ASSERT(crd.size() == 2);
        crd.appendObject((CIMObject)CIMInst1);
        PEGASUS_TEST_ASSERT(crd.size() == 3);
        PEGASUS_TEST_ASSERT(crd.valid());
    }

    // test with SCMOInst
    {
        CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_INSTANCES);
        crd.setSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 2);
        crd.appendSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 4);
        PEGASUS_TEST_ASSERT(crd.valid());
    }

    {
        // Create array of 2 SCMO Instances
        Array<SCMOInstance> SCMOInstArray;
        SCMOInstArray.append(SCMO_CSInstance3);
        SCMOInstArray.append(SCMO_CSInstance4);

        CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_INSTANCES);
        crd.appendSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 2);
        crd.appendSCMO(SCMOInstArray);
        PEGASUS_TEST_ASSERT(crd.size() == 4);
        PEGASUS_TEST_ASSERT(crd.valid());
    }

    // Test with path objects
    String s1  = "//atp:77/root/cimv25:"
      "TennisPlayer.last=\"Rafter\",first=\"Patrick\"";
    String s2 = "//atp:77/root/cimv25:"
          "TennisPlayer.first=\"Patrick\",last=\"Rafter\"";
    CIMObjectPath r1 = s1;
    CIMObjectPath r2 = s2;
    Array<CIMObjectPath> refArray;
    refArray.append(r1);
    refArray.append(r2);
    refArray.append(r1);
    refArray.append(r2);

    CIMResponseData crd = CIMResponseData(CIMResponseData::RESP_OBJECTPATHS);
    crd.setInstanceNames(refArray);
    PEGASUS_TEST_ASSERT(crd.size() == 4);
    PEGASUS_TEST_ASSERT(crd.valid());

    // KS_TBD There is not appendinstancenames today in ResponseData
    //crd.appendInstanceNames(refArray);


    // Test with XML and binary
    {

    }

}
示例#6
0
// Test move method
void testMoveMethod01()
{
    // Test with a variety of object types in the From ResponseData
    // Build the class
    CIMClass CIMclass1 = buildClass();

    // Build a CIM Instance. NOTE: key is defaulted in class

    CIMInstance CIMInst1 = CIMclass1.buildInstance(true, true,
                                                   CIMPropertyList());

        // Clone the instance and change key
    CIMInstance CIMInst2 = CIMInst1.clone();
    setPropertyValue(CIMInst2, "id", 2);

    CIMInstance CIMInst3 = CIMInst1.clone();
    setPropertyValue(CIMInst3, "id", 3);
    CIMInstance CIMInst4 = CIMInst1.clone();
    setPropertyValue(CIMInst4, "id", 4);

    // build CIMInstance array
    Array<CIMInstance> CIMInstArray;
    CIMInstArray.append(CIMInst1);
    CIMInstArray.append(CIMInst2);
    CIMInstArray.append(CIMInst3);
    CIMInstArray.append(CIMInst3);
    {
        // Create from CIMReponseData object
        CIMResponseData crdFrom = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);

        // Append an array of CIMInstances
        crdFrom.appendInstances(CIMInstArray);
        VCOUT << crdFrom.size() << endl;
        PEGASUS_TEST_ASSERT(crdFrom.size() == 4);

        // Move the objects < what is in from crd
        CIMResponseData crdTo = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);
        PEGASUS_TEST_ASSERT(testMoveObjects(crdTo, crdFrom, 2));
        PEGASUS_TEST_ASSERT(crdFrom.size() == 2);
        PEGASUS_TEST_ASSERT(crdTo.size() == 2);

        // request move of more that exists.  Moves all
        CIMResponseData crdTo1 = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);
        PEGASUS_TEST_ASSERT(testMoveObjects(crdTo1, crdFrom, 8));
        PEGASUS_TEST_ASSERT(crdFrom.size() == 0);
        PEGASUS_TEST_ASSERT(crdTo1.size() == 2);
    }

    // move exactly all and then none
    {
        // Create from CIMReponseData object
        CIMResponseData crdFrom = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);

        // Append an array of CIMInstances
        crdFrom.appendInstances(CIMInstArray);
        VCOUT << crdFrom.size() << endl;
        PEGASUS_TEST_ASSERT(crdFrom.size() == 4);

        // Move the objects < what is in from crd
        CIMResponseData crdTo = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);
        PEGASUS_TEST_ASSERT(testMoveObjects(crdTo, crdFrom, 4));
        PEGASUS_TEST_ASSERT(crdFrom.size() == 0);
        PEGASUS_TEST_ASSERT(crdTo.size() == 4);

        // request move of more that exists.  Moves all r
        CIMResponseData crdTo1 = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);
        PEGASUS_TEST_ASSERT(testMoveObjects(crdTo1, crdFrom, 8));
        PEGASUS_TEST_ASSERT(crdFrom.size() == 0);
        VCOUT << "Error: bad size() = " << crdTo1.size() << endl;
        PEGASUS_TEST_ASSERT(crdTo1.size() == 0);
    }

    // request move more than total
    {
        // Create from CIMReponseData object
        CIMResponseData crdFrom = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);

        // Append an array of CIMInstances
        crdFrom.appendInstances(CIMInstArray);
        VCOUT << crdFrom.size() << endl;
        PEGASUS_TEST_ASSERT(crdFrom.size() == 4);

        // Move the objects < what is in from crd
        CIMResponseData crdTo = CIMResponseData(
            CIMResponseData::RESP_INSTANCES);
        PEGASUS_TEST_ASSERT(testMoveObjects(crdTo, crdFrom, 9));
        PEGASUS_TEST_ASSERT(crdFrom.size() == 0);
        PEGASUS_TEST_ASSERT(crdTo.size() == 4);
    }
}