| /*********************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 1997-2014, International Business Machines Corporation |
| * and others. All Rights Reserved. |
| ***********************************************************************/ |
| |
| /** |
| * CollationAPITest is a third level test class. This test performs API |
| * related tests for the Collation framework. |
| */ |
| |
| #ifndef _APICOLL |
| #define _APICOLL |
| |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_COLLATION |
| |
| #include "unicode/tblcoll.h" |
| #include "tscoll.h" |
| |
| class CollationAPITest: public IntlTestCollator { |
| public: |
| void runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par = NULL */); |
| void doAssert(UBool condition, const char *message); |
| |
| /** |
| * This tests the properties of a collator object. |
| * - constructor/destructor |
| * - factory method createInstance |
| * - compare and getCollationKey |
| * - get/set decomposition mode and comparison level |
| * - displayable name in the desired locale |
| */ |
| void TestProperty(/* char* par */); |
| |
| /** |
| * This tests the RuleBasedCollator |
| * - constructor/destructor |
| * - getRules |
| */ |
| void TestRuleBasedColl(/* char* par */); |
| |
| /** |
| * This tests the RuleBasedCollator |
| * - getRules |
| */ |
| void TestRules(/* char* par */); |
| |
| /** |
| * Tests decomposition setting |
| */ |
| void TestDecomposition(); |
| |
| /** |
| * SafeClone test |
| */ |
| void TestSafeClone(); |
| |
| /** |
| * This tests the properties of a rule based collator object. |
| * - constructor/destructor |
| * - == and != operators |
| * - clone and copy |
| * - collation rules access |
| */ |
| void TestOperators(/* char* par */); |
| |
| /** |
| * This tests the duplication of a collator object. |
| */ |
| void TestDuplicate(/* char* par */); |
| |
| /** |
| * This tests the comparison convenience methods of a collator object. |
| * - greater than |
| * - greater than or equal to |
| * - equal to |
| */ |
| void TestCompare(/* char* par */); |
| |
| /** |
| * This tests the hashCode method of a collator object. |
| */ |
| void TestHashCode(/* char* par */); |
| |
| /** |
| * This tests the collation key related APIs. |
| * - constructor/destructor |
| * - Collator::getCollationKey |
| * - == and != operators |
| * - comparison between collation keys |
| * - creating collation key with a byte array and vice versa |
| */ |
| void TestCollationKey(/* char* par */); |
| |
| /** |
| * This tests the CollationElementIterator related APIs. |
| * - creation of a CollationElementIterator object |
| * - == and != operators |
| * - iterating forward |
| * - reseting the iterator index |
| * - requesting the order properties(primary, secondary or tertiary) |
| */ |
| void TestElemIter(/* char* par */); |
| |
| /** |
| * This tests the list the all available locales. |
| */ |
| void TestGetAll(/* char* par */); |
| |
| /** |
| * This tests the sort keys generated by collator |
| */ |
| void TestSortKey(); |
| void TestSortKeyOverflow(); |
| |
| /** |
| * This tests getMaxExpansion |
| */ |
| void TestMaxExpansion(); |
| |
| /** |
| * Tests the retrieval of names given a locale |
| */ |
| void TestDisplayName(); |
| |
| /** |
| * Tests the collator attributes |
| */ |
| void TestAttribute(); |
| |
| /** |
| * Tests the setters and getters of variable top |
| */ |
| void TestVariableTopSetting(); |
| void TestMaxVariable(); |
| |
| /** |
| * Tests GetLocale for a Collator |
| */ |
| void TestGetLocale(); |
| |
| /** |
| * Tests bounds API |
| */ |
| void TestBounds(); |
| |
| /** |
| * Tests getTailoredSet API |
| */ |
| void TestGetTailoredSet(); |
| |
| /** |
| * Tests the subclassability |
| */ |
| void TestSubclass(); |
| |
| /** |
| * Tests the dynamic and static ids of collation classes |
| */ |
| void TestUClassID(); |
| |
| /** |
| * Test NULL |
| */ |
| void TestNULLCharTailoring(); |
| |
| void TestClone(); |
| void TestCloneBinary(); |
| void TestIterNumeric(); |
| void TestBadKeywords(); |
| |
| private: |
| // If this is too small for the test data, just increase it. |
| // Just don't make it too large, otherwise the executable will get too big |
| enum EToken_Len { MAX_TOKEN_LEN = 16 }; |
| |
| void dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status); |
| |
| }; |
| |
| #endif /* #if !UCONFIG_NO_COLLATION */ |
| |
| #endif |