• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /***********************************************************************
2  * COPYRIGHT:
3  * Copyright (c) 1997-2006, International Business Machines Corporation
4  * and others. All Rights Reserved.
5  ***********************************************************************/
6 
7 /**
8  * CollationAPITest is a third level test class. This test performs API
9  * related tests for the Collation framework.
10  */
11 
12 #ifndef _APICOLL
13 #define _APICOLL
14 
15 #include "unicode/utypes.h"
16 
17 #if !UCONFIG_NO_COLLATION
18 
19 #include "unicode/tblcoll.h"
20 #include "tscoll.h"
21 
22 class CollationAPITest: public IntlTestCollator {
23 public:
24     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par = NULL */);
25     void doAssert(UBool condition, const char *message);
26 
27     /**
28      * This tests the properties of a collator object.
29      * - constructor/destructor
30      * - factory method createInstance
31      * - compare and getCollationKey
32      * - get/set decomposition mode and comparison level
33      * - displayable name in the desired locale
34      */
35     void TestProperty(/* char* par */);
36 
37     /**
38     * This tests the RuleBasedCollator
39     * - constructor/destructor
40     * - getRules
41     */
42     void TestRuleBasedColl(/* char* par */);
43 
44     /**
45     * This tests the RuleBasedCollator
46     * - getRules
47     */
48     void TestRules(/* char* par */);
49 
50     /**
51     * Tests decomposition setting
52     */
53     void TestDecomposition();
54 
55     /**
56     * SafeClone test
57     */
58     void TestSafeClone();
59 
60     /**
61      * This tests the properties of a rule based collator object.
62      * - constructor/destructor
63      * - == and != operators
64      * - clone and copy
65      * - collation rules access
66      */
67     void TestOperators(/* char* par */);
68 
69     /**
70      * This tests the duplication of a collator object.
71      */
72     void TestDuplicate(/* char* par */);
73 
74     /**
75      * This tests the comparison convenience methods of a collator object.
76      * - greater than
77      * - greater than or equal to
78      * - equal to
79      */
80     void TestCompare(/* char* par */);
81 
82     /**
83      * This tests the hashCode method of a collator object.
84      */
85     void TestHashCode(/* char* par */);
86 
87     /**
88      * This tests the collation key related APIs.
89      * - constructor/destructor
90      * - Collator::getCollationKey
91      * - == and != operators
92      * - comparison between collation keys
93      * - creating collation key with a byte array and vice versa
94      */
95     void TestCollationKey(/* char* par */);
96 
97     /**
98      * This tests the CollationElementIterator related APIs.
99      * - creation of a CollationElementIterator object
100      * - == and != operators
101      * - iterating forward
102      * - reseting the iterator index
103      * - requesting the order properties(primary, secondary or tertiary)
104      */
105     void TestElemIter(/* char* par */);
106 
107     /**
108      * This tests the list the all available locales.
109      */
110     void TestGetAll(/* char* par */);
111 
112     /**
113      * This tests the sort keys generated by collator
114      */
115     void TestSortKey();
116 
117     /**
118      * This tests getMaxExpansion
119      */
120     void TestMaxExpansion();
121 
122     /**
123     * Tests the retrieval of names given a locale
124     */
125     void TestDisplayName();
126 
127     /**
128     * Tests the collator attributes
129     */
130     void TestAttribute();
131 
132     /**
133     * Tests the setters and getters of variable top
134     */
135     void TestVariableTopSetting();
136 
137     /**
138     * Tests GetLocale for a Collator
139     */
140     void TestGetLocale();
141 
142     /**
143     * Tests bounds API
144     */
145     void TestBounds();
146 
147     /**
148     * Tests getTailoredSet API
149     */
150     void TestGetTailoredSet();
151 
152     /**
153     * Tests the subclassability
154     */
155     void TestSubclass();
156 
157     /**
158     * Tests the dynamic and static ids of collation classes
159     */
160     void TestUClassID();
161 
162     /**
163     * Test NULL
164     */
165     void TestNULLCharTailoring();
166 
167     void TestClone();
168 private:
169     // If this is too small for the test data, just increase it.
170     // Just don't make it too large, otherwise the executable will get too big
171     enum EToken_Len { MAX_TOKEN_LEN = 16 };
172 
173     void dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status);
174 
175 };
176 
177 #endif /* #if !UCONFIG_NO_COLLATION */
178 
179 #endif
180