Home | History | Annotate | Download | only in intltest
      1 /***********************************************************************
      2  * COPYRIGHT:
      3  * Copyright (c) 1997-2011, 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     void TestSortKeyOverflow();
    117 
    118     /**
    119      * This tests getMaxExpansion
    120      */
    121     void TestMaxExpansion();
    122 
    123     /**
    124     * Tests the retrieval of names given a locale
    125     */
    126     void TestDisplayName();
    127 
    128     /**
    129     * Tests the collator attributes
    130     */
    131     void TestAttribute();
    132 
    133     /**
    134     * Tests the setters and getters of variable top
    135     */
    136     void TestVariableTopSetting();
    137 
    138     /**
    139     * Tests GetLocale for a Collator
    140     */
    141     void TestGetLocale();
    142 
    143     /**
    144     * Tests bounds API
    145     */
    146     void TestBounds();
    147 
    148     /**
    149     * Tests getTailoredSet API
    150     */
    151     void TestGetTailoredSet();
    152 
    153     /**
    154     * Tests the subclassability
    155     */
    156     void TestSubclass();
    157 
    158     /**
    159     * Tests the dynamic and static ids of collation classes
    160     */
    161     void TestUClassID();
    162 
    163     /**
    164     * Test NULL
    165     */
    166     void TestNULLCharTailoring();
    167 
    168     void TestClone();
    169 private:
    170     // If this is too small for the test data, just increase it.
    171     // Just don't make it too large, otherwise the executable will get too big
    172     enum EToken_Len { MAX_TOKEN_LEN = 16 };
    173 
    174     void dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status);
    175 
    176 };
    177 
    178 #endif /* #if !UCONFIG_NO_COLLATION */
    179 
    180 #endif
    181