1/********************************************************************
2 * Copyright (c) 1997-2013 International Business Machines
3 * Corporation and others. All Rights Reserved.
4 ********************************************************************/
5/********************************************************************************
6*
7* File CAPITEST.H
8*
9* Modification History:
10*        Name                     Description
11*     Madhu Katragadda            Converted to C
12*     Brian Rower                 Added TestOpenVsOpenRules
13*********************************************************************************
14*//* C API TEST For COLLATOR */
15
16#ifndef _CCOLLAPITST
17#define _CCOLLAPITST
18
19#include "unicode/utypes.h"
20
21#if !UCONFIG_NO_COLLATION
22
23#include "cintltst.h"
24#include "callcoll.h"
25#define MAX_TOKEN_LEN 16
26
27
28    /**
29     * error reporting utility method
30     **/
31
32    static void doAssert(int condition, const char *message);
33    /**
34     * Collator Class Properties
35     * ctor, dtor, createInstance, compare, getStrength/setStrength
36     * getDecomposition/setDecomposition, getDisplayName
37     */
38    void TestProperty(void);
39    /**
40     * Test RuleBasedCollator and getRules
41     **/
42    void TestRuleBasedColl(void);
43
44    /**
45     * Test compare
46     **/
47    void TestCompare(void);
48    /**
49     * Test hashCode functionality
50     **/
51    void TestHashCode(void);
52    /**
53     * Tests the constructor and numerous other methods for CollationKey
54     **/
55   void TestSortKey(void);
56    /**
57     * test the CollationElementIterator methods
58     **/
59   void TestElemIter(void);
60    /**
61     * Test ucol_getAvailable and ucol_countAvailable()
62     **/
63    void TestGetAll(void);
64    /**
65     * Test ucol_GetDefaultRules ()
66    void TestGetDefaultRules(void);
67     **/
68
69    void TestDecomposition(void);
70    /**
71     * Test ucol_safeClone ()
72     **/
73    void TestSafeClone(void);
74
75    /**
76     * Test ucol_cloneBinary(), ucol_openBinary()
77     **/
78    void TestCloneBinary(void);
79
80    /**
81     * Test ucol_open() vs. ucol_openRules()
82     **/
83    void TestOpenVsOpenRules(void);
84
85    /**
86     * Test getting bounds for a sortkey
87     */
88    void TestBounds(void);
89
90    /**
91     * Test ucol_getLocale function
92     */
93    void TestGetLocale(void);
94
95    /**
96     * Test buffer overrun while having smaller buffer for sortkey (j1865)
97     */
98    void TestSortKeyBufferOverrun(void);
99    /**
100     * Test getting and setting of attributes
101     */
102    void TestGetSetAttr(void);
103    /**
104     * Test getTailoredSet
105     */
106    void TestGetTailoredSet(void);
107
108    /**
109     * Test mergeSortKeys
110     */
111    void TestMergeSortKeys(void);
112
113    /**
114     * test short string and collator identifier functions
115     */
116    static void TestShortString(void);
117
118    /**
119     * test getContractions and getUnsafeSet
120     */
121    static void TestGetContractionsAndUnsafes(void);
122
123    /**
124     * Test funny stuff with open binary
125     */
126    static void TestOpenBinary(void);
127
128    /**
129     * Test getKeywordValuesForLocale API
130     */
131    static void TestGetKeywordValuesForLocale(void);
132
133    /**
134     * test strcoll with null arg
135     */
136    static void TestStrcollNull(void);
137
138#endif /* #if !UCONFIG_NO_COLLATION */
139
140#endif
141