• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /********************************************************************
2  * COPYRIGHT:
3  * Copyright (c) 1997-2010, International Business Machines Corporation and
4  * others. All Rights Reserved.
5  ********************************************************************/
6 #ifndef _TESTMESSAGEFORMAT
7 #define _TESTMESSAGEFORMAT
8 
9 #include "unicode/utypes.h"
10 
11 #if !UCONFIG_NO_FORMATTING
12 
13 #include "unicode/unistr.h"
14 #include "unicode/fmtable.h"
15 #include "unicode/msgfmt.h"
16 #include "intltest.h"
17 
18 /**
19  * TestMessageFormat tests MessageFormat, and also a few unctions in ChoiceFormat
20  */
21 class TestMessageFormat: public IntlTest {
22 public:
23     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
24 
25     /**
26      * regression test for a specific bug regarding ChoiceFormat boundaries
27      **/
28     void testBug1(void);
29     /**
30      * regression test for a specific bug regarding MessageFormat using ChoiceFormat
31      **/
32     void testBug2(void);
33     /**
34      * regression test for a specific bug involving NumberFormat and Locales
35      **/
36     void testBug3(void);
37     /**
38      * test MessageFormat with various given patterns
39      **/
40     void PatternTest(void);
41     /**
42      * test MesageFormat formatting functionality in a simple example
43      **/
44     void sample(void);
45 
46     /**
47     * tests the static MessageFormat::format method
48      **/
49     void testStaticFormat(/* char* par */);
50     /**
51      * tests MesageFormat functionality with a simple format
52      **/
53     void testSimpleFormat(/* char* par */);
54     /**
55      * tests MesageFormat functionality with a format including a ChoiceFormat
56      **/
57     void testMsgFormatChoice(/* char* par */);
58     /**
59      * tests MesageFormat functionality with a PluralFormat.
60      **/
61     void testMsgFormatPlural(/* char* par */);
62 
63     /**
64      * tests MessageFormat functionality with a SelectFormat.
65      **/
66     void testMsgFormatSelect(/* char* par */);
67 
68     /**
69      * Internal method to format a MessageFormat object with passed args
70      **/
71     void internalFormat(MessageFormat* msgFmt ,
72         Formattable* args , int32_t numOfArgs ,
73         UnicodeString expected ,char* errMsg);
74 
75     /**
76      * Internal method to create a MessageFormat object with passed args
77      **/
78     MessageFormat* internalCreate(
79         UnicodeString pattern ,Locale locale , UErrorCode& err, char* errMsg);
80 
81     /**
82      * Verify that MessageFormat accomodates more than 10 arguments
83      * and more than 10 subformats.
84      */
85     void TestUnlimitedArgsAndSubformats();
86 
87     /**
88      * Test RBNF extensions to MessageFormat.
89      */
90     void TestRBNF();
91 
92     //
93     /**
94      * ------------ API tests ----------
95      * These routines test various API functionality.
96      * In addition to the methods their name suggests,
97      * they often test other methods as well.
98      **/
99     void testCopyConstructor(void);
100     void testCopyConstructor2(void);
101     void testAssignment(void);
102     void testClone(void);
103     void testEquals(void);
104     void testNotEquals(void);
105     void testSetLocale(void);
106     void testFormat(void);
107     void testParse(void);
108     void testAdopt(void);
109     void TestTurkishCasing(void);
110     void testAutoQuoteApostrophe(void);
111 
112     /* Provide better code coverage */
113     void testCoverage(void);
114 
115 private:
116 };
117 
118 #endif /* #if !UCONFIG_NO_FORMATTING */
119 
120 #endif
121