⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 instancedecl.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        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 + -