Home | History | Annotate | Download | only in intltest
      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