1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/********************************************************************
4 * COPYRIGHT:
5 * Copyright (c) 2002-2010, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 ********************************************************************/
8
9
10#ifndef _UOBJECTTEST_
11#define _UOBJECTTEST_
12
13#include "intltest.h"
14
15/**
16 * Test uobjtest.h
17 **/
18class UObjectTest : public IntlTest {
19    // IntlTest override
20    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par );
21private:
22    // tests
23    void testIDs();
24    void testUMemory();
25    void TestMFCCompatibility();
26    void TestCompilerRTTI();
27
28    //helper
29
30    /**
31     * @param obj The UObject to be tested
32     * @param className The name of the class being tested
33     * @param factory String version of obj, for exanple   "new UFoo(1,3,4)". NULL if object is abstract.
34     * @param staticID The result of class :: getStaticClassID
35     * @return Returns obj, suitable for deletion
36     */
37    UObject *testClass(UObject *obj,
38               const char *className, const char *factory,
39               UClassID staticID);
40
41    UObject *testClassNoClassID(UObject *obj,
42               const char *className, const char *factory);
43};
44
45#endif
46//eof
47