(file) Return to test_xmlserializer.cpp CVS log (file) (dir) Up to [OMI] / omi / tests / xmlserializer

File: [OMI] / omi / tests / xmlserializer / test_xmlserializer.cpp (download)
Revision: 1.1, Mon Apr 20 17:20:36 2015 UTC (9 years, 1 month ago) by krisbash
Branch: MAIN
CVS Tags: OMI_1_0_8_2, OMI_1_0_8_1, HEAD
OMI 1.0.8-1

/*
**==============================================================================
**
** Open Management Infrastructure (OMI)
**
** Copyright (c) Microsoft Corporation
** 
** Licensed under the Apache License, Version 2.0 (the "License"); you may not 
** use this file except in compliance with the License. You may obtain a copy 
** of the License at 
**
**     http://www.apache.org/licenses/LICENSE-2.0 
**
** THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
** KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 
** WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
** MERCHANTABLITY OR NON-INFRINGEMENT. 
**
** See the Apache 2 License for the specific language governing permissions 
** and limitations under the License.
**
**==============================================================================
*/

#include <vector>
#include <set>
#include <cstdlib>
#include <iostream>
#include <ut/ut.h>
#include <xml/xml.h>
#include <pal/strings.h>
#include <base/class.h>
#include <xmlserializer/xmlserializer.h>
#include <pal/dir.h>

using namespace std;

#define FULL_RTTI_SERIALIZATION_FLAGS (MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN | \
        MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY | \
        MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS)

#define STANDARD_RTTI_SERIALIZATION_FLAGS (FULL_RTTI_SERIALIZATION_FLAGS | \
                        MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS)

MI_EXTERN_C MI_SchemaDecl schemaDecl;

static const MI_ClassDecl *GetSerializerTestClassDecl(const MI_Char *className)
{
    if(className == NULL)
        return NULL;

    MI_Uint32 count = 0;
    for(count = 0; count < schemaDecl.numClassDecls; count++)
    {
        if(Tcscmp(className, schemaDecl.classDecls[count]->name) == 0)
            return schemaDecl.classDecls[count];
    }

    return NULL;
}

static void SerializerTestCompare(const MI_Uint8 *actual, const MI_Char *expected, NitsCallSite testLine)
{
    size_t lengthOfExpected = Tcslen(expected);

    NitsTraceEx((PAL_T("Comparing between expected and actual serialization strings:-")), testLine, NitsAutomatic);
    NitsTraceEx(expected, testLine, NitsAutomatic);
    NitsTraceEx((MI_Char *)actual, testLine, NitsAutomatic);
    NitsAssertEx(Tcsncmp((MI_Char *)actual, expected, lengthOfExpected) == 0, PAL_T("failed comparison"), testLine, NitsAutomatic);
}

static void TestSerialization(const MI_Char *className, const MI_Char *expectedSerialization,
                NitsCallSite testLine, MI_Uint32 flags)
{
    MI_Result result = MI_RESULT_OK;

    MI_Application miApplication = MI_APPLICATION_NULL;
    MI_Serializer miSerializer;
    MI_Uint32 bufferLenForSerialization = 0;
    MI_Class classObject;
    const MI_ClassDecl *testClassDecl;


    result = XmlSerializer_Create(
                &miApplication,
                0, (MI_Char *)(PAL_T("MI_XML")),
                &miSerializer);

    NitsAssertEx(MI_RESULT_OK == result, PAL_T("failed creating serializer"), testLine, NitsAutomatic);

    testClassDecl = GetSerializerTestClassDecl(className);

    if(!NitsAssertEx(testClassDecl != NULL, PAL_T("Class not found"), testLine, NitsAutomatic))
        return;

    Class_Construct(&classObject, testClassDecl);

    XmlSerializer_SerializeClass(&miSerializer,
                                flags,
                                &classObject,
                                NULL,
                                0,
                                &bufferLenForSerialization);

    MI_Uint8 *neededBuffer = (MI_Uint8 *)PAL_Malloc((bufferLenForSerialization + sizeof(MI_Char)));

    if(!NitsAssertEx(neededBuffer != NULL, PAL_T("Memory allocation failed"), testLine, NitsAutomatic))
        return;

    result = XmlSerializer_SerializeClass(&miSerializer,
                                        flags,
                                        &classObject,
                                        neededBuffer,
                                        bufferLenForSerialization,
                                        &bufferLenForSerialization);

    if(!NitsAssertEx(MI_RESULT_OK == result, PAL_T("failed to serialize class"), testLine, NitsAutomatic))
        return;

    if(neededBuffer)
    {
        ((MI_Char *)(neededBuffer))[(bufferLenForSerialization/sizeof(MI_Char))] = PAL_T('\0');
    }
    SerializerTestCompare(neededBuffer, expectedSerialization, testLine);

    PAL_Free(neededBuffer);

    result = XmlSerializer_Close(&miSerializer);

    NitsAssertEx(MI_RESULT_OK == result, PAL_T("failed to close serializer"), testLine, NitsAutomatic);
}

static void TestStandardRttiSerialization(const MI_Char *className, const MI_Char *expectedSerialization,
                NitsCallSite testLine)
{
    NitsTraceEx(PAL_T("Doing standard rtti serialization for "), testLine, NitsAutomatic);
    NitsTraceEx(className, testLine, NitsAutomatic);
    TestSerialization(className, expectedSerialization, testLine, STANDARD_RTTI_SERIALIZATION_FLAGS);
}

static void TestFullRttiSerialization(const MI_Char *className, const MI_Char *expectedSerialization,
                NitsCallSite testLine)
{
    NitsTraceEx(PAL_T("Doing full rtti serialization for "), testLine, NitsAutomatic);
    NitsTraceEx(className, testLine, NitsAutomatic);
    TestSerialization(className, expectedSerialization, testLine, FULL_RTTI_SERIALIZATION_FLAGS);
}

NitsTest(Class_SuperClass_Derivation)
    TestStandardRttiSerialization(PAL_T("MyEmptyClass"), PAL_T("<CLASS NAME=\"MyEmptyClass\" DERIVATION=\"\"></CLASS>"), NitsHere());
    TestStandardRttiSerialization(PAL_T("MyEmptyDerivedClass"), PAL_T("<CLASS NAME=\"MyEmptyDerivedClass\" SUPERCLASS=\"MyEmptyClass\" DERIVATION=\"MyEmptyClass\"></CLASS>"), NitsHere());
    TestStandardRttiSerialization(PAL_T("MyEmptySecondDerivedClass"), PAL_T("<CLASS NAME=\"MyEmptySecondDerivedClass\" SUPERCLASS=\"MyEmptyDerivedClass\" DERIVATION=\"MyEmptyDerivedClass,MyEmptyClass\"></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Simple_Qualifiers)
    TestStandardRttiSerialization(PAL_T("MySimpleQualClass"), PAL_T("<CLASS NAME=\"MySimpleQualClass\" DERIVATION=\"\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>274</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-1</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>1.1000000e+00</VALUE></QUALIFIER><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Array_Qualifiers)
    TestStandardRttiSerialization(PAL_T("MyArrayQualClass"), PAL_T("<CLASS NAME=\"MyArrayQualClass\" DERIVATION=\"\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>true</VALUE><VALUE>false</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>goodbye</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20110314222412.000000+008</VALUE><VALUE>20120315222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Simple_Properties)
    TestStandardRttiSerialization(PAL_T("MySimplePropertiesClass"), PAL_T("<CLASS NAME=\"MySimplePropertiesClass\" DERIVATION=\"\"><PROPERTY NAME=\"booleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>true</VALUE></PROPERTY><PROPERTY NAME=\"stringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE></PROPERTY><PROPERTY NAME=\"char16Prop\" TYPE=\"char16\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>16</VALUE></PROPERTY><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>1</VALUE></PROPERTY><PROPERTY NAME=\"sint8Prop\" TYPE=\"sint8\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>-1</VALUE></PROPERTY><PROPERTY NAME=\"uint16Prop\" TYPE=\"uint16\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>2</VALUE></PROPERTY><PROPERTY NAME=\"sint16Prop\" TYPE=\"sint16\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>-2</VALUE></PROPERTY><PROPERTY NAME=\"uint32Prop\" TYPE=\"uint32\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>3</VALUE></PROPERTY><PROPERTY NAME=\"sint32Prop\" TYPE=\"sint32\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>-3</VALUE></PROPERTY><PROPERTY NAME=\"uint64Prop\" TYPE=\"uint64\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>4</VALUE></PROPERTY><PROPERTY NAME=\"sint64Prop\" TYPE=\"sint64\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>-4</VALUE></PROPERTY><PROPERTY NAME=\"real32Prop\" TYPE=\"real32\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>1.1000000e+00</VALUE></PROPERTY><PROPERTY NAME=\"real64Prop\" TYPE=\"real64\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>-2.2000000000000002e+00</VALUE></PROPERTY><PROPERTY NAME=\"datetimeProp\" TYPE=\"datetime\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>20110314222412.000000+008</VALUE></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Embedded_Properties)
    TestStandardRttiSerialization(PAL_T("MyEmbeddedPropertiesClass"), PAL_T("<CLASS NAME=\"MyEmbeddedPropertiesClass\" DERIVATION=\"\"><PROPERTY NAME=\"v_embeddedObject\" TYPE=\"string\" CLASSORIGIN=\"MyEmbeddedPropertiesClass\"><QUALIFIER NAME=\"EmbeddedObject\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"v_embeddedInstance\" TYPE=\"string\" CLASSORIGIN=\"MyEmbeddedPropertiesClass\"><QUALIFIER NAME=\"EmbeddedInstance\" TYPE=\"string\"><VALUE>MySimplePropertiesClass</VALUE></QUALIFIER></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Reference_Property_Method)
    TestStandardRttiSerialization(PAL_T("MyReferenceClass"), PAL_T("<CLASS NAME=\"MyReferenceClass\" DERIVATION=\"\"><PROPERTY.REFERENCE NAME=\"refProp\" REFERENCECLASS=\"MyEmbeddedPropertiesClass\" CLASSORIGIN=\"MyReferenceClass\"></PROPERTY.REFERENCE><METHOD NAME=\"GetReferenceValue\" TYPE=\"uint32\" CLASSORIGIN=\"MyReferenceClass\"><PARAMETER.REFERENCE NAME=\"ReferenceVal\" REFERENCECLASS=\"MyEmbeddedPropertiesClass\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER.REFERENCE></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Simple_Properties_Derived)
    TestStandardRttiSerialization(PAL_T("MySimplePropertiesDerivedClass"), PAL_T("<CLASS NAME=\"MySimplePropertiesDerivedClass\" SUPERCLASS=\"MySimplePropertiesClass\" DERIVATION=\"MySimplePropertiesClass\"><PROPERTY NAME=\"booleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>false</VALUE></PROPERTY><PROPERTY NAME=\"stringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>goodbye&amp;&apos;&gt;&lt;&quot;\\/</VALUE></PROPERTY><PROPERTY NAME=\"char16Prop\" TYPE=\"char16\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>16</VALUE></PROPERTY><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>1</VALUE></PROPERTY><PROPERTY NAME=\"sint8Prop\" TYPE=\"sint8\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>-1</VALUE></PROPERTY><PROPERTY NAME=\"uint16Prop\" TYPE=\"uint16\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>2</VALUE></PROPERTY><PROPERTY NAME=\"sint16Prop\" TYPE=\"sint16\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>-2</VALUE></PROPERTY><PROPERTY NAME=\"uint32Prop\" TYPE=\"uint32\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>3</VALUE></PROPERTY><PROPERTY NAME=\"sint32Prop\" TYPE=\"sint32\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>-3</VALUE></PROPERTY><PROPERTY NAME=\"uint64Prop\" TYPE=\"uint64\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>4</VALUE></PROPERTY><PROPERTY NAME=\"sint64Prop\" TYPE=\"sint64\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>-4</VALUE></PROPERTY><PROPERTY NAME=\"real32Prop\" TYPE=\"real32\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>1.1000000e+00</VALUE></PROPERTY><PROPERTY NAME=\"real64Prop\" TYPE=\"real64\" CLASSORIGIN=\"MySimplePropertiesClass\" PROPAGATED=\"true\"><VALUE>-2.2000000000000002e+00</VALUE></PROPERTY><PROPERTY NAME=\"datetimeProp\" TYPE=\"datetime\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>20121130222412.000000+008</VALUE></PROPERTY><PROPERTY NAME=\"anotherBooleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesDerivedClass\"><VALUE>false</VALUE></PROPERTY><PROPERTY NAME=\"anotherStringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesDerivedClass\"><VALUE>mystring&amp;&apos;</VALUE></PROPERTY></CLASS>"), NitsHere());
    TestFullRttiSerialization(PAL_T("MySimplePropertiesDerivedClass"), PAL_T("<CLASS NAME=\"MySimplePropertiesDerivedClass\" SUPERCLASS=\"MySimplePropertiesClass\" DERIVATION=\"MySimplePropertiesClass\"><PROPERTY NAME=\"booleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>false</VALUE></PROPERTY><PROPERTY NAME=\"stringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>goodbye&amp;&apos;&gt;&lt;&quot;\\/</VALUE></PROPERTY><PROPERTY NAME=\"datetimeProp\" TYPE=\"datetime\" CLASSORIGIN=\"MySimplePropertiesClass\"><VALUE>20121130222412.000000+008</VALUE></PROPERTY><PROPERTY NAME=\"anotherBooleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesDerivedClass\"><VALUE>false</VALUE></PROPERTY><PROPERTY NAME=\"anotherStringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesDerivedClass\"><VALUE>mystring&amp;&apos;</VALUE></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Simple_Properties_Simple_Quals)
    TestStandardRttiSerialization(PAL_T("MySimplePropertiesSimpleQualsClass"), PAL_T("<CLASS NAME=\"MySimplePropertiesSimpleQualsClass\" DERIVATION=\"\"><PROPERTY NAME=\"booleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><VALUE>false</VALUE></PROPERTY><PROPERTY NAME=\"stringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE></PROPERTY><PROPERTY NAME=\"char16Prop\" TYPE=\"char16\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>18</VALUE></QUALIFIER><VALUE>16</VALUE></PROPERTY><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER><VALUE>1</VALUE></PROPERTY><PROPERTY NAME=\"sint8Prop\" TYPE=\"sint8\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-55</VALUE></QUALIFIER><VALUE>-1</VALUE></PROPERTY><PROPERTY NAME=\"uint16Prop\" TYPE=\"uint16\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER><VALUE>2</VALUE></PROPERTY><PROPERTY NAME=\"sint16Prop\" TYPE=\"sint16\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER><VALUE>-2</VALUE></PROPERTY><PROPERTY NAME=\"uint32Prop\" TYPE=\"uint32\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER><VALUE>3</VALUE></PROPERTY><PROPERTY NAME=\"sint32Prop\" TYPE=\"sint32\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER><VALUE>-3</VALUE></PROPERTY><PROPERTY NAME=\"uint64Prop\" TYPE=\"uint64\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER><VALUE>4</VALUE></PROPERTY><PROPERTY NAME=\"sint64Prop\" TYPE=\"sint64\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER><VALUE>-4</VALUE></PROPERTY><PROPERTY NAME=\"real32Prop\" TYPE=\"real32\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>1.1000000e+00</VALUE></QUALIFIER><VALUE>1.1000000e+00</VALUE></PROPERTY><PROPERTY NAME=\"real64Prop\" TYPE=\"real64\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER><VALUE>-2.2000000000000002e+00</VALUE></PROPERTY><PROPERTY NAME=\"datetimeProp\" TYPE=\"datetime\" CLASSORIGIN=\"MySimplePropertiesSimpleQualsClass\"><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER><VALUE>20110314222412.000000+008</VALUE></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Simple_Properties_Array_Quals)
	TestStandardRttiSerialization(PAL_T("MySimplePropertiesArrayQualsClass"), PAL_T("<CLASS NAME=\"MySimplePropertiesArrayQualsClass\" DERIVATION=\"\"><PROPERTY NAME=\"booleanProp\" TYPE=\"boolean\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>true</VALUE><VALUE>false</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>true</VALUE></PROPERTY><PROPERTY NAME=\"stringProp\" TYPE=\"string\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>goodbye</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE></PROPERTY><PROPERTY NAME=\"char16Prop\" TYPE=\"char16\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>16</VALUE></PROPERTY><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>1</VALUE></PROPERTY><PROPERTY NAME=\"sint8Prop\" TYPE=\"sint8\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>-1</VALUE></PROPERTY><PROPERTY NAME=\"uint16Prop\" TYPE=\"uint16\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>2</VALUE></PROPERTY><PROPERTY NAME=\"sint16Prop\" TYPE=\"sint16\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>-2</VALUE></PROPERTY><PROPERTY NAME=\"uint32Prop\" TYPE=\"uint32\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>3</VALUE></PROPERTY><PROPERTY NAME=\"sint32Prop\" TYPE=\"sint32\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>-3</VALUE></PROPERTY><PROPERTY NAME=\"uint64Prop\" TYPE=\"uint64\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>4</VALUE></PROPERTY><PROPERTY NAME=\"sint64Prop\" TYPE=\"sint64\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>-4</VALUE></PROPERTY><PROPERTY NAME=\"real32Prop\" TYPE=\"real32\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>1.1000000e+00</VALUE></PROPERTY><PROPERTY NAME=\"real64Prop\" TYPE=\"real64\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>-2.2000000000000002e+00</VALUE></PROPERTY><PROPERTY NAME=\"datetimeProp\" TYPE=\"datetime\" CLASSORIGIN=\"MySimplePropertiesArrayQualsClass\"><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20101114222412.000000+008</VALUE><VALUE>20101231222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER><VALUE>20110101222412.000000+008</VALUE></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Array_Properties)
	TestStandardRttiSerialization(PAL_T("MyArrayPropertiesClass"), PAL_T("<CLASS NAME=\"MyArrayPropertiesClass\" DERIVATION=\"\"><PROPERTY.ARRAY NAME=\"booleanArrayProp\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>true</VALUE><VALUE>false</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"stringArrayProp\" TYPE=\"string\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE><VALUE>&amp;&apos;&gt;&lt;&quot;\\/</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"char16ArrayProp\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>16</VALUE><VALUE>8</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint8ArrayProp\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>12</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint8ArrayProp\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>-99</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint16ArrayProp\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>22</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint16ArrayProp\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>-100</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint32ArrayProp\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>333</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint32ArrayProp\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>-32335</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>123456789</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint64ArrayProp\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>-456789123</VALUE><VALUE>789123456</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real32ArrayProp\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-2.3000000e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real64ArrayProp\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>-2.2000000000000002e+00</VALUE><VALUE>3.3999999999999999e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"datetimeArrayProp\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayPropertiesClass\"><VALUE.ARRAY><VALUE>20110314222412.000000+008</VALUE><VALUE>20131014234412.000000+008</VALUE></VALUE.ARRAY></PROPERTY.ARRAY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Array_Properties_Simple_Quals)
	TestStandardRttiSerialization(PAL_T("MyArrayPropertiesSimpleQualsClass"), PAL_T("<CLASS NAME=\"MyArrayPropertiesSimpleQualsClass\" DERIVATION=\"\"><PROPERTY.ARRAY NAME=\"booleanArrayProp\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>true</VALUE><VALUE>false</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"stringArrayProp\" TYPE=\"string\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE><VALUE>&amp;&apos;&gt;&lt;&quot;\\/</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"char16ArrayProp\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>18</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>16</VALUE><VALUE>8</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint8ArrayProp\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>1</VALUE><VALUE>12</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint8ArrayProp\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-55</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>-99</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint16ArrayProp\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>2</VALUE><VALUE>22</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint16ArrayProp\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>2</VALUE><VALUE>-100</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint32ArrayProp\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>3</VALUE><VALUE>333</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint32ArrayProp\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>3</VALUE><VALUE>-32335</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>4</VALUE><VALUE>123456789</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint64ArrayProp\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>-456789123</VALUE><VALUE>789123456</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real32ArrayProp\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>1.1000000e+00</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-2.3000000e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real64ArrayProp\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>-2.2000000000000002e+00</VALUE><VALUE>3.3999999999999999e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"datetimeArrayProp\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayPropertiesSimpleQualsClass\"><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER><VALUE.ARRAY><VALUE>20110314222412.000000+008</VALUE><VALUE>20131014234412.000000+008</VALUE></VALUE.ARRAY></PROPERTY.ARRAY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Array_Properties_Array_Quals)
	TestStandardRttiSerialization(PAL_T("MyArrayPropertiesArrayQualsClass"), PAL_T("<CLASS NAME=\"MyArrayPropertiesArrayQualsClass\" DERIVATION=\"\"><PROPERTY.ARRAY NAME=\"booleanArrayProp\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>false</VALUE><VALUE>true</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>true</VALUE><VALUE>false</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"stringArrayProp\" TYPE=\"string\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>goodbye</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;\\/</VALUE><VALUE>&amp;&apos;&gt;&lt;&quot;\\/</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"char16ArrayProp\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>16</VALUE><VALUE>8</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint8ArrayProp\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>1</VALUE><VALUE>12</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint8ArrayProp\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>-99</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint16ArrayProp\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>2</VALUE><VALUE>22</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint16ArrayProp\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>2</VALUE><VALUE>-100</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint32ArrayProp\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>3</VALUE><VALUE>333</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint32ArrayProp\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>3</VALUE><VALUE>-32335</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>4</VALUE><VALUE>123456789</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint64ArrayProp\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>-456789123</VALUE><VALUE>789123456</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real32ArrayProp\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-2.3000000e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"real64ArrayProp\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>-2.2000000000000002e+00</VALUE><VALUE>3.3999999999999999e+00</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"datetimeArrayProp\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayPropertiesArrayQualsClass\"><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20101114222412.000000+008</VALUE><VALUE>20101231222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER><VALUE.ARRAY><VALUE>20110314222412.000000+008</VALUE><VALUE>20131014234412.000000+008</VALUE></VALUE.ARRAY></PROPERTY.ARRAY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Foo_Class)
	TestStandardRttiSerialization(PAL_T("MyFooClass"), PAL_T("<CLASS NAME=\"MyFooClass\" DERIVATION=\"\"><PROPERTY NAME=\"sint64Prop\" TYPE=\"sint64\" CLASSORIGIN=\"MyFooClass\"><VALUE>-4</VALUE></PROPERTY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_NoParam_Methods)
	TestStandardRttiSerialization(PAL_T("MyNoParamMethodsClass"), PAL_T("<CLASS NAME=\"MyNoParamMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyNoParamMethodsClass\"></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_NoParam_SimpleQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MyNoParamSimpleQualsMethodsClass"), PAL_T("<CLASS NAME=\"MyNoParamSimpleQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>18</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-55</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>-1.1234000e+00</VALUE></QUALIFIER></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyNoParamSimpleQualsMethodsClass\"><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_NoParam_ArrayQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MyNoParamArrayQualsMethodsClass"), PAL_T("<CLASS NAME=\"MyNoParamArrayQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>false</VALUE><VALUE>true</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>&quot;&lt;&gt;&amp;&apos;,.goodbye</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyNoParamArrayQualsMethodsClass\"><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20101114222412.000000+008</VALUE><VALUE>20101231222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_SimpleParams_Methods)
	TestStandardRttiSerialization(PAL_T("MySimpleParamMethodsClass"), PAL_T("<CLASS NAME=\"MySimpleParamMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanSimpleParamMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"booleanParam\" TYPE=\"boolean\"></PARAMETER></METHOD><METHOD NAME=\"StringSimpleParamMethod\" TYPE=\"string\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"stringParam\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"Char16SimpleParamMethod\" TYPE=\"char16\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"char16Param\" TYPE=\"char16\"></PARAMETER></METHOD><METHOD NAME=\"Uint8SimpleParamMethod\" TYPE=\"uint8\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"uint8Param\" TYPE=\"uint8\"></PARAMETER></METHOD><METHOD NAME=\"Sint8SimpleParamMethod\" TYPE=\"sint8\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"sint8Param\" TYPE=\"sint8\"></PARAMETER></METHOD><METHOD NAME=\"Uint16SimpleParamMethod\" TYPE=\"uint16\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"uint16Param\" TYPE=\"uint16\"></PARAMETER></METHOD><METHOD NAME=\"Sint16SimpleParamMethod\" TYPE=\"sint16\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"sint16Param\" TYPE=\"sint16\"></PARAMETER></METHOD><METHOD NAME=\"Uint32SimpleParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"uint32Param\" TYPE=\"uint32\"></PARAMETER></METHOD><METHOD NAME=\"Sint32SimpleParamMethod\" TYPE=\"sint32\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"sint32Param\" TYPE=\"sint32\"></PARAMETER></METHOD><METHOD NAME=\"Uint64SimpleParamMethod\" TYPE=\"uint64\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"uint64Param\" TYPE=\"uint64\"></PARAMETER></METHOD><METHOD NAME=\"Sint64SimpleParamMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"sint64Param\" TYPE=\"sint64\"></PARAMETER></METHOD><METHOD NAME=\"Real32SimpleParamMethod\" TYPE=\"real32\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"real32Param\" TYPE=\"real32\"></PARAMETER></METHOD><METHOD NAME=\"Real64SimpleParamMethod\" TYPE=\"real64\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"real64Param\" TYPE=\"real64\"></PARAMETER></METHOD><METHOD NAME=\"DatetimeSimpleParamMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MySimpleParamMethodsClass\"><PARAMETER NAME=\"datetimeParam\" TYPE=\"datetime\"></PARAMETER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_ArrayParams_Methods)
	TestStandardRttiSerialization(PAL_T("MyArrayParamMethodsClass"), PAL_T("<CLASS NAME=\"MyArrayParamMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"booleanParam\" TYPE=\"boolean\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"stringParam\" TYPE=\"string\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"char16Param\" TYPE=\"char16\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"uint8Param\" TYPE=\"uint8\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"sint8Param\" TYPE=\"sint8\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"uint16Param\" TYPE=\"uint16\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"sint16Param\" TYPE=\"sint16\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"uint32Param\" TYPE=\"uint32\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"sint32Param\" TYPE=\"sint32\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"uint64Param\" TYPE=\"uint64\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"sint64Param\" TYPE=\"sint64\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"real32Param\" TYPE=\"real32\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"real64Param\" TYPE=\"real64\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayParamMethodsClass\"><PARAMETER.ARRAY NAME=\"datetimeParam\" TYPE=\"datetime\"></PARAMETER.ARRAY></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_ArrayParams_SimpleQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MyArrayParamSimpleQualsMethodsClass"), PAL_T("<CLASS NAME=\"MyArrayParamSimpleQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"booleanParam\" TYPE=\"boolean\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"stringParam\" TYPE=\"string\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"char16Param\" TYPE=\"char16\"><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>18</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint8Param\" TYPE=\"uint8\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint8Param\" TYPE=\"sint8\"><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-55</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint16Param\" TYPE=\"uint16\"><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint16Param\" TYPE=\"sint16\"><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint32Param\" TYPE=\"uint32\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint32Param\" TYPE=\"sint32\"><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint64Param\" TYPE=\"uint64\"><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint64Param\" TYPE=\"sint64\"><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"real32Param\" TYPE=\"real32\"><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>-1.1234000e+00</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"real64Param\" TYPE=\"real64\"><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayParamSimpleQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"datetimeParam\" TYPE=\"datetime\"><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER></PARAMETER.ARRAY></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_ArrayParams_ArrayQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MyArrayParamArrayQualsMethodsClass"), PAL_T("<CLASS NAME=\"MyArrayParamArrayQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"booleanParam\" TYPE=\"boolean\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>false</VALUE><VALUE>true</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"stringParam\" TYPE=\"string\"><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>&quot;&lt;&gt;&amp;&apos;,.goodbye</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"char16Param\" TYPE=\"char16\"><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint8Param\" TYPE=\"uint8\"><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint8Param\" TYPE=\"sint8\"><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint16Param\" TYPE=\"uint16\"><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint16Param\" TYPE=\"sint16\"><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint32Param\" TYPE=\"uint32\"><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint32Param\" TYPE=\"sint32\"><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"uint64Param\" TYPE=\"uint64\"><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"sint64Param\" TYPE=\"sint64\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"real32Param\" TYPE=\"real32\"><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"real64Param\" TYPE=\"real64\"><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MyArrayParamArrayQualsMethodsClass\"><PARAMETER.ARRAY NAME=\"datetimeParam\" TYPE=\"datetime\"><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20101114222412.000000+008</VALUE><VALUE>20101231222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER.ARRAY></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_SimpleParams_SimpleQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MySimpleParamSimpleQualsMethodsClass"), PAL_T("<CLASS NAME=\"MySimpleParamSimpleQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"booleanParam\" TYPE=\"boolean\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"stringParam\" TYPE=\"string\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"char16Param\" TYPE=\"char16\"><QUALIFIER NAME=\"Char16Qual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE>18</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"uint8Param\" TYPE=\"uint8\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"sint8Param\" TYPE=\"sint8\"><QUALIFIER NAME=\"Sint8Qual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE>-55</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"uint16Param\" TYPE=\"uint16\"><QUALIFIER NAME=\"Uint16Qual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE>20</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"sint16Param\" TYPE=\"sint16\"><QUALIFIER NAME=\"Sint16Qual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE>-30</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"uint32Param\" TYPE=\"uint32\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>1234</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"sint32Param\" TYPE=\"sint32\"><QUALIFIER NAME=\"Sint32Qual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE>-1234</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"uint64Param\" TYPE=\"uint64\"><QUALIFIER NAME=\"Uint64Qual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE>5678</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"sint64Param\" TYPE=\"sint64\"><QUALIFIER NAME=\"Sint64Qual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE>-9999</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"real32Param\" TYPE=\"real32\"><QUALIFIER NAME=\"Real32Qual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE>-1.1234000e+00</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"real64Param\" TYPE=\"real64\"><QUALIFIER NAME=\"Real64Qual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE>2.2000000000000002e+00</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MySimpleParamSimpleQualsMethodsClass\"><PARAMETER NAME=\"datetimeParam\" TYPE=\"datetime\"><QUALIFIER NAME=\"DatetimeQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE>20110314222412.000000+008</VALUE></QUALIFIER></PARAMETER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_SimpleParams_ArrayQuals_Methods)
	TestStandardRttiSerialization(PAL_T("MySimpleParamArrayQualsMethodsClass"), PAL_T("<CLASS NAME=\"MySimpleParamArrayQualsMethodsClass\" DERIVATION=\"\"><METHOD NAME=\"BooleanMethod\" TYPE=\"boolean\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"booleanParam\" TYPE=\"boolean\"><QUALIFIER NAME=\"BooleanArrayQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>false</VALUE><VALUE>true</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"StringMethod\" TYPE=\"string\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"stringParam\" TYPE=\"string\"><QUALIFIER NAME=\"StringArrayQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE><VALUE>&quot;&lt;&gt;&amp;&apos;,.goodbye</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Char16Method\" TYPE=\"char16\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"char16Param\" TYPE=\"char16\"><QUALIFIER NAME=\"Char16ArrayQual\" TYPE=\"char16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>273</VALUE><VALUE>16</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint8Method\" TYPE=\"uint8\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"uint8Param\" TYPE=\"uint8\"><QUALIFIER NAME=\"Uint8ArrayQual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>10</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint8Method\" TYPE=\"sint8\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"sint8Param\" TYPE=\"sint8\"><QUALIFIER NAME=\"Sint8ArrayQual\" TYPE=\"sint8\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-1</VALUE><VALUE>1</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint16Method\" TYPE=\"uint16\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"uint16Param\" TYPE=\"uint16\"><QUALIFIER NAME=\"Uint16ArrayQual\" TYPE=\"uint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2</VALUE><VALUE>20</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint16Method\" TYPE=\"sint16\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"sint16Param\" TYPE=\"sint16\"><QUALIFIER NAME=\"Sint16ArrayQual\" TYPE=\"sint16\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-2</VALUE><VALUE>2</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint32Method\" TYPE=\"uint32\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"uint32Param\" TYPE=\"uint32\"><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>3</VALUE><VALUE>30</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint32Method\" TYPE=\"sint32\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"sint32Param\" TYPE=\"sint32\"><QUALIFIER NAME=\"Sint32ArrayQual\" TYPE=\"sint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-3</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Uint64Method\" TYPE=\"uint64\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"uint64Param\" TYPE=\"uint64\"><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Sint64Method\" TYPE=\"sint64\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"sint64Param\" TYPE=\"sint64\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Real32Method\" TYPE=\"real32\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"real32Param\" TYPE=\"real32\"><QUALIFIER NAME=\"Real32ArrayQual\" TYPE=\"real32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1.1000000e+00</VALUE><VALUE>-1.1000000e+00</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"Real64Method\" TYPE=\"real64\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"real64Param\" TYPE=\"real64\"><QUALIFIER NAME=\"Real64ArrayQual\" TYPE=\"real64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>2.2000000000000002e+00</VALUE><VALUE>-2.2000000000000002e+00</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"DatetimeMethod\" TYPE=\"datetime\" CLASSORIGIN=\"MySimpleParamArrayQualsMethodsClass\"><PARAMETER NAME=\"datetimeParam\" TYPE=\"datetime\"><QUALIFIER NAME=\"DatetimeArrayQual\" TYPE=\"datetime\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>20101114222412.000000+008</VALUE><VALUE>20101231222412.000000+008</VALUE></VALUE.ARRAY></QUALIFIER></PARAMETER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Various_Array_Lengths)
	TestStandardRttiSerialization(PAL_T("MyVariousArrayLengthClass"), PAL_T("<CLASS NAME=\"MyVariousArrayLengthClass\" DERIVATION=\"\"><PROPERTY NAME=\"uninitializedValue\" TYPE=\"real32\" CLASSORIGIN=\"MyVariousArrayLengthClass\"></PROPERTY><PROPERTY.ARRAY NAME=\"booleanUninitializedArray\" TYPE=\"boolean\" CLASSORIGIN=\"MyVariousArrayLengthClass\"></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"nullArray\" TYPE=\"uint16\" CLASSORIGIN=\"MyVariousArrayLengthClass\"></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"uint32Array\" TYPE=\"uint32\" CLASSORIGIN=\"MyVariousArrayLengthClass\"><VALUE.ARRAY><VALUE>10</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"sint32Array\" TYPE=\"sint32\" ARRAYSIZE=\"2\" CLASSORIGIN=\"MyVariousArrayLengthClass\"><VALUE.ARRAY><VALUE>9999</VALUE><VALUE>-9999</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"MethodWithArrayParam\" TYPE=\"uint32\" CLASSORIGIN=\"MyVariousArrayLengthClass\"><PARAMETER.ARRAY NAME=\"sint64ArrayParam\" TYPE=\"sint64\"></PARAMETER.ARRAY></METHOD><METHOD NAME=\"MethodWithFixedSizeArrayParam\" TYPE=\"uint32\" CLASSORIGIN=\"MyVariousArrayLengthClass\"><PARAMETER.ARRAY NAME=\"sint64ArrayParam\" TYPE=\"sint64\" ARRAYSIZE=\"5\"></PARAMETER.ARRAY></METHOD></CLASS>"), NitsHere());
NitsEndTest

/*
#define FULL_RTTI_SERIALIZATION_FLAGS (MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN | \
		MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY | \
		MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS)

#define STANDARD_RTTI_SERIALIZATION_FLAGS (FULL_RTTI_SERIALIZATION_FLAGS | \
						MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS)
*/

NitsTest(Class_IncludeInheritedElements_Option)
	TestStandardRttiSerialization(PAL_T("MyOptionTestClass"), PAL_T("<CLASS NAME=\"MyOptionTestClass\" DERIVATION=\"\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>5</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-999</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>6</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>~!@#$%^&amp;*()-_=+&apos;&quot;;:.&gt;,&lt;/?welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD></CLASS>"), NitsHere());
	TestStandardRttiSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\" DERIVATION=\"MyOptionTestClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>9</VALUE><VALUE>10</VALUE><VALUE>11</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>10</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-111</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>5</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>~!@#$%^&amp;*()-_=+&apos;&quot;;:.&gt;,&lt;/?welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere());
	TestFullRttiSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\" DERIVATION=\"MyOptionTestClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>9</VALUE><VALUE>10</VALUE><VALUE>11</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>10</VALUE></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-111</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>5</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Skip_IncludeQualifiers_Option)
	TestSerialization(PAL_T("MyOptionTestClass"), PAL_T("<CLASS NAME=\"MyOptionTestClass\" DERIVATION=\"\"><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>5</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" CLASSORIGIN=\"MyOptionTestClass\"></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"></PROPERTY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"></PARAMETER></METHOD></CLASS>"), NitsHere(),
			MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);
	TestSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\" DERIVATION=\"MyOptionTestClass\"><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>10</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere(),
			MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);
NitsEndTest

NitsTest(Class_Skip_IncludeClassOrigin_Option)
	TestSerialization(PAL_T("MyOptionTestClass"), PAL_T("<CLASS NAME=\"MyOptionTestClass\" DERIVATION=\"\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\"><VALUE>5</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-999</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>6</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>~!@#$%^&amp;*()-_=+&apos;&quot;;:.&gt;,&lt;/?welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD></CLASS>"), NitsHere(),
			MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);

	TestSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\" DERIVATION=\"MyOptionTestClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>9</VALUE><VALUE>10</VALUE><VALUE>11</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\"><VALUE>10</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" PROPAGATED=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" PROPAGATED=\"true\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-111</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>5</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" PROPAGATED=\"true\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" PROPAGATED=\"true\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>~!@#$%^&amp;*()-_=+&apos;&quot;;:.&gt;,&lt;/?welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere(),
			MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITANCE_HIERARCHY |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);
NitsEndTest

NitsTest(Class_Skip_IncludeInheritanceHierarchy_Option)

	TestSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\"><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>hello&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>4</VALUE><VALUE>40</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-4</VALUE><VALUE>4</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint32ArrayQual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>9</VALUE><VALUE>10</VALUE><VALUE>11</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestClass\"><VALUE>10</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>9</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\"><QUALIFIER NAME=\"Sint64ArrayQual\" TYPE=\"sint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>-111</VALUE><VALUE>-45</VALUE><VALUE>0</VALUE><VALUE>5</VALUE></VALUE.ARRAY></QUALIFIER></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\" CLASSORIGIN=\"MyOptionTestClass\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"BooleanQual\" TYPE=\"boolean\" TRANSLATABLE=\"true\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE></VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestClass\" PROPAGATED=\"true\"><QUALIFIER NAME=\"StringQual\" TYPE=\"string\" TRANSLATABLE=\"true\"><VALUE>~!@#$%^&amp;*()-_=+&apos;&quot;;:.&gt;,&lt;/?welcome\\&amp;&apos;&gt;&lt;&quot;</VALUE></QUALIFIER><QUALIFIER NAME=\"Uint64ArrayQual\" TYPE=\"uint64\" TRANSLATABLE=\"true\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></QUALIFIER><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"In\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"><QUALIFIER NAME=\"Out\" TYPE=\"boolean\" OVERRIDABLE=\"false\"><VALUE>true</VALUE></QUALIFIER></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyOptionTestDerivedClass\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere(),
			MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS |
			MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN |
			MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);

	TestSerialization(PAL_T("MyEmptySecondDerivedClass"), PAL_T("<CLASS NAME=\"MyEmptySecondDerivedClass\" SUPERCLASS=\"MyEmptyDerivedClass\"></CLASS>"),
						NitsHere(),
						MI_SERIALIZER_FLAGS_INCLUDE_QUALIFIERS |
						MI_SERIALIZER_FLAGS_INCLUDE_CLASS_ORIGIN |
						MI_SERIALIZER_FLAGS_INCLUDE_INHERITED_ELEMENTS);
NitsEndTest

NitsTest(Class_Skip_All_GetClassOptions)
	TestSerialization(PAL_T("MyOptionTestClass"), PAL_T("<CLASS NAME=\"MyOptionTestClass\"><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\"><VALUE>5</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProp\" TYPE=\"uint64\" ARRAYSIZE=\"3\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><PROPERTY NAME=\"sint8PropWithSimpleQual\" TYPE=\"sint8\"></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\"></PROPERTY><METHOD NAME=\"Uint32EmptyParamMethod\" TYPE=\"uint32\"></METHOD><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"></PARAMETER></METHOD><METHOD NAME=\"MultiQualMethod\" TYPE=\"uint32\"><PARAMETER NAME=\"inputParam\" TYPE=\"uint64\"></PARAMETER><PARAMETER NAME=\"outputParam\" TYPE=\"uint64\"></PARAMETER></METHOD></CLASS>"), NitsHere(), 0);
	TestSerialization(PAL_T("MyOptionTestDerivedClass"), PAL_T("<CLASS NAME=\"MyOptionTestDerivedClass\" SUPERCLASS=\"MyOptionTestClass\"><PROPERTY NAME=\"uint8Prop\" TYPE=\"uint8\"><VALUE>10</VALUE></PROPERTY><PROPERTY NAME=\"uint32PropWithArrayQual\" TYPE=\"uint32\"></PROPERTY><PROPERTY NAME=\"uint8Property\" TYPE=\"uint8\"><VALUE>7</VALUE></PROPERTY><PROPERTY.ARRAY NAME=\"uint64ArrayProperty\" TYPE=\"uint64\" ARRAYSIZE=\"5\"><VALUE.ARRAY><VALUE>1</VALUE><VALUE>2</VALUE><VALUE>3</VALUE><VALUE>4</VALUE><VALUE>5</VALUE></VALUE.ARRAY></PROPERTY.ARRAY><METHOD NAME=\"Sint64SimpleParamsMethod\" TYPE=\"sint64\"><PARAMETER NAME=\"param1\" TYPE=\"uint16\"></PARAMETER><PARAMETER NAME=\"param2\" TYPE=\"sint16\"></PARAMETER><PARAMETER NAME=\"param3\" TYPE=\"string\"></PARAMETER></METHOD><METHOD NAME=\"MyMethod\" TYPE=\"uint32\"><PARAMETER NAME=\"input\" TYPE=\"uint32\"></PARAMETER></METHOD></CLASS>"), NitsHere(), 0);
NitsEndTest

// Note: Every time you add a new class in schema.mof and regenerate the provider
// please update the schema.c for this class MyClassForTestingAddedEmbeddedQualifier
// to remove all qualifiers from the propertyDecls; this test is specifically testing
// fabrication of qualifiers by wsman serializer.
NitsTest(Class_Embedded_Qualifiers_Not_Explicitly_Specified_In_Schema)
    TestStandardRttiSerialization(PAL_T("MyClassForTestingAddedEmbeddedQualifier"), PAL_T("<CLASS NAME=\"MyClassForTestingAddedEmbeddedQualifier\" DERIVATION=\"\"><PROPERTY NAME=\"v_embeddedObject\" TYPE=\"string\" CLASSORIGIN=\"MyClassForTestingAddedEmbeddedQualifier\"><QUALIFIER NAME=\"EmbeddedObject\" TYPE=\"boolean\"><VALUE>true</VALUE></QUALIFIER></PROPERTY><PROPERTY NAME=\"v_embeddedInstance\" TYPE=\"string\" CLASSORIGIN=\"MyClassForTestingAddedEmbeddedQualifier\"><QUALIFIER NAME=\"EmbeddedInstance\" TYPE=\"string\"><VALUE>MySimplePropertiesClass</VALUE></QUALIFIER></PROPERTY><PROPERTY.ARRAY NAME=\"a_embeddedObject\" TYPE=\"string\" CLASSORIGIN=\"MyClassForTestingAddedEmbeddedQualifier\"><QUALIFIER NAME=\"EmbeddedObject\" TYPE=\"boolean\"><VALUE>true</VALUE></QUALIFIER></PROPERTY.ARRAY><PROPERTY.ARRAY NAME=\"a_embeddedInstance\" TYPE=\"string\" CLASSORIGIN=\"MyClassForTestingAddedEmbeddedQualifier\"><QUALIFIER NAME=\"EmbeddedInstance\" TYPE=\"string\"><VALUE>MySimplePropertiesClass</VALUE></QUALIFIER></PROPERTY.ARRAY></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_RestrictedQuals_OnBaseElements)
	TestStandardRttiSerialization(PAL_T("MyClassRestrictedQualsOnBaseElements"), PAL_T("<CLASS NAME=\"MyClassRestrictedQualsOnBaseElements\" DERIVATION=\"\"><QUALIFIER NAME=\"Deprecated\" TYPE=\"string\" TOSUBCLASS=\"false\"><VALUE.ARRAY><VALUE>No Value</VALUE></VALUE.ARRAY></QUALIFIER><PROPERTY NAME=\"myProp\" TYPE=\"uint32\" CLASSORIGIN=\"MyClassRestrictedQualsOnBaseElements\"><QUALIFIER NAME=\"Deprecated\" TYPE=\"string\" TOSUBCLASS=\"false\"><VALUE.ARRAY><VALUE>No Value</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER></PROPERTY><METHOD NAME=\"myMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyClassRestrictedQualsOnBaseElements\"><QUALIFIER NAME=\"Deprecated\" TYPE=\"string\" TOSUBCLASS=\"false\"><VALUE.ARRAY><VALUE>My value</VALUE></VALUE.ARRAY></QUALIFIER><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>11</VALUE></QUALIFIER></METHOD></CLASS>"), NitsHere());
NitsEndTest

NitsTest(Class_Derived_From_RestrictedQuals_OnBaseElements)
    TestStandardRttiSerialization(PAL_T("MyDerivedClassOfRestrictedQualsOnBaseElements"), PAL_T("<CLASS NAME=\"MyDerivedClassOfRestrictedQualsOnBaseElements\" SUPERCLASS=\"MyClassRestrictedQualsOnBaseElements\" DERIVATION=\"MyClassRestrictedQualsOnBaseElements\"><PROPERTY NAME=\"myProp\" TYPE=\"uint32\" CLASSORIGIN=\"MyClassRestrictedQualsOnBaseElements\" PROPAGATED=\"true\"><QUALIFIER NAME=\"Uint8Qual\" TYPE=\"uint8\" TRANSLATABLE=\"true\"><VALUE>10</VALUE></QUALIFIER></PROPERTY><METHOD NAME=\"myMethod\" TYPE=\"uint32\" CLASSORIGIN=\"MyClassRestrictedQualsOnBaseElements\" PROPAGATED=\"true\"><QUALIFIER NAME=\"Uint32Qual\" TYPE=\"uint32\" TRANSLATABLE=\"true\"><VALUE>11</VALUE></QUALIFIER></METHOD></CLASS>"), NitsHere());
NitsEndTest
//NitsTest()
	//TestStandardRttiSerialization(PAL_T(""), PAL_T(""), NitsHere());
//NitsEndTest


ViewCVS 0.9.2