1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski package ifc.i18n;
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import lib.MultiMethodTest;
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski import com.sun.star.i18n.KNumberFormatType;
29*b1cdbd2cSJim Jagielski import com.sun.star.i18n.KNumberFormatUsage;
30*b1cdbd2cSJim Jagielski import com.sun.star.i18n.NumberFormatCode;
31*b1cdbd2cSJim Jagielski import com.sun.star.i18n.NumberFormatIndex;
32*b1cdbd2cSJim Jagielski import com.sun.star.i18n.XNumberFormatCode;
33*b1cdbd2cSJim Jagielski import com.sun.star.lang.Locale;
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski /**
36*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.i18n.XNumberFormatCode</code>
37*b1cdbd2cSJim Jagielski * interface methods:
38*b1cdbd2cSJim Jagielski * <ul>
39*b1cdbd2cSJim Jagielski *  <li><code> getDefault() </code></li>
40*b1cdbd2cSJim Jagielski *  <li><code> getFormatCode() </code></li>
41*b1cdbd2cSJim Jagielski *  <li><code> getAllFormatCode() </code></li>
42*b1cdbd2cSJim Jagielski *  <li><code> getAllFormatCodes() </code></li>
43*b1cdbd2cSJim Jagielski * </ul><p>
44*b1cdbd2cSJim Jagielski * Test is <b> NOT </b> multithread compilant. <p>
45*b1cdbd2cSJim Jagielski * @see com.sun.star.i18n.XNumberFormatCode
46*b1cdbd2cSJim Jagielski */
47*b1cdbd2cSJim Jagielski public class _XNumberFormatCode extends MultiMethodTest {
48*b1cdbd2cSJim Jagielski     public XNumberFormatCode oObj = null;
49*b1cdbd2cSJim Jagielski     public String[] languages = new String[]
50*b1cdbd2cSJim Jagielski         {"de","en","es","fr","ko","ko","zh"};
51*b1cdbd2cSJim Jagielski     public String[] countries = new String[]
52*b1cdbd2cSJim Jagielski         {"DE","US","ES","FR","KR","KR","CN"};
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski     /**
55*b1cdbd2cSJim Jagielski     * Test calls the method twice with two different format types as
56*b1cdbd2cSJim Jagielski     * parameters for each locale. Result is checked after every call.<p>
57*b1cdbd2cSJim Jagielski     * Has <b> OK </b> status if both times returned structure's field 'Code'
58*b1cdbd2cSJim Jagielski     * does not equal to empty string.
59*b1cdbd2cSJim Jagielski     */
_getDefault()60*b1cdbd2cSJim Jagielski     public void _getDefault() {
61*b1cdbd2cSJim Jagielski         boolean res = true;
62*b1cdbd2cSJim Jagielski         NumberFormatCode nfc = null;
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski         for (int i=0;i<7;i++) {
65*b1cdbd2cSJim Jagielski             nfc = oObj.getDefault(KNumberFormatType.SHORT,
66*b1cdbd2cSJim Jagielski                 KNumberFormatUsage.DATE, getLocale(i));
67*b1cdbd2cSJim Jagielski             String str = nfc.Code;
68*b1cdbd2cSJim Jagielski             if (str.equals("")) {
69*b1cdbd2cSJim Jagielski                 log.println("'NumberFormat.code.equals(\"\") = true' for"
70*b1cdbd2cSJim Jagielski                     + " language: " + languages[i]);
71*b1cdbd2cSJim Jagielski                 log.println("Usage: oObj.getDefault(KNumberFormatType.SHORT,"
72*b1cdbd2cSJim Jagielski                     + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
73*b1cdbd2cSJim Jagielski                     + "," + countries[i] + ",\"\");");
74*b1cdbd2cSJim Jagielski             }
75*b1cdbd2cSJim Jagielski             res &= !str.equals("");
76*b1cdbd2cSJim Jagielski 
77*b1cdbd2cSJim Jagielski             nfc = oObj.getDefault(KNumberFormatType.LONG,
78*b1cdbd2cSJim Jagielski                 KNumberFormatUsage.DATE,getLocale(i));
79*b1cdbd2cSJim Jagielski             str = nfc.Code;
80*b1cdbd2cSJim Jagielski             if (str.equals("")) {
81*b1cdbd2cSJim Jagielski                 log.println("'NumberFormat.code.equals(\"\") = true' for "
82*b1cdbd2cSJim Jagielski                     + "language: " + languages[i]);
83*b1cdbd2cSJim Jagielski                 log.println("Usage: oObj.getDefault(KNumberFormatType.LONG,"
84*b1cdbd2cSJim Jagielski                     + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
85*b1cdbd2cSJim Jagielski                     + "," + countries[i] + ",\"\");");
86*b1cdbd2cSJim Jagielski             }
87*b1cdbd2cSJim Jagielski             res &= ( ! str.equals("") );
88*b1cdbd2cSJim Jagielski         }
89*b1cdbd2cSJim Jagielski         tRes.tested("getDefault()", res);
90*b1cdbd2cSJim Jagielski     }
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski     /**
93*b1cdbd2cSJim Jagielski     * Test calls the method twice for each locale with two different arguments.
94*b1cdbd2cSJim Jagielski     * After every call result is checked.<p>
95*b1cdbd2cSJim Jagielski     * Has <b> OK </b> status if both times returned structure's field 'Code'
96*b1cdbd2cSJim Jagielski     * does not equal to a empty string.
97*b1cdbd2cSJim Jagielski     */
_getFormatCode()98*b1cdbd2cSJim Jagielski     public void _getFormatCode() {
99*b1cdbd2cSJim Jagielski         boolean res = true;
100*b1cdbd2cSJim Jagielski         NumberFormatCode nfc = null;
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski         for (int i=0;i<7;i++) {
103*b1cdbd2cSJim Jagielski             nfc = oObj.getFormatCode
104*b1cdbd2cSJim Jagielski                 (NumberFormatIndex.DATE_SYSTEM_SHORT,getLocale(i));
105*b1cdbd2cSJim Jagielski             res &= ( ! nfc.Code.equals("") );
106*b1cdbd2cSJim Jagielski             nfc = oObj.getFormatCode
107*b1cdbd2cSJim Jagielski                 (NumberFormatIndex.DATE_SYSTEM_LONG,getLocale(i));
108*b1cdbd2cSJim Jagielski             res &= ( ! nfc.Code.equals("") );
109*b1cdbd2cSJim Jagielski         }
110*b1cdbd2cSJim Jagielski         tRes.tested("getFormatCode()", res);
111*b1cdbd2cSJim Jagielski     }
112*b1cdbd2cSJim Jagielski 
113*b1cdbd2cSJim Jagielski     /**
114*b1cdbd2cSJim Jagielski     * Test calls the method twice with two different arguments for each locale.
115*b1cdbd2cSJim Jagielski     * After every call result is checked.<p>
116*b1cdbd2cSJim Jagielski     * Has <b> OK </b> status if both times returned array's length does not
117*b1cdbd2cSJim Jagielski     * equal to zero.
118*b1cdbd2cSJim Jagielski     */
_getAllFormatCode()119*b1cdbd2cSJim Jagielski     public void _getAllFormatCode() {
120*b1cdbd2cSJim Jagielski         boolean res = true;
121*b1cdbd2cSJim Jagielski         NumberFormatCode[] nfc = null;
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski         for (int i=0;i<7;i++) {
124*b1cdbd2cSJim Jagielski             nfc = oObj.getAllFormatCode(KNumberFormatUsage.DATE, getLocale(i));
125*b1cdbd2cSJim Jagielski             res &= ( nfc.length != 0 );
126*b1cdbd2cSJim Jagielski             nfc = oObj.getAllFormatCode(KNumberFormatUsage.TIME, getLocale(i));
127*b1cdbd2cSJim Jagielski             res &= ( nfc.length != 0 );
128*b1cdbd2cSJim Jagielski         }
129*b1cdbd2cSJim Jagielski         tRes.tested("getAllFormatCode()", res);
130*b1cdbd2cSJim Jagielski     }
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski     /**
133*b1cdbd2cSJim Jagielski     * Test calls the method for each locale. <p>
134*b1cdbd2cSJim Jagielski     * Has <b> OK </b> status if returned array's length does not equal to zero.
135*b1cdbd2cSJim Jagielski     */
_getAllFormatCodes()136*b1cdbd2cSJim Jagielski     public void _getAllFormatCodes() {
137*b1cdbd2cSJim Jagielski         boolean res = true;
138*b1cdbd2cSJim Jagielski         NumberFormatCode[] nfc = null;
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski         for (int i=0;i<7;i++) {
141*b1cdbd2cSJim Jagielski             nfc = oObj.getAllFormatCodes(getLocale(i));
142*b1cdbd2cSJim Jagielski             res &= ( nfc.length != 0 );
143*b1cdbd2cSJim Jagielski         }
144*b1cdbd2cSJim Jagielski         tRes.tested("getAllFormatCodes()", res);
145*b1cdbd2cSJim Jagielski     }
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski     /**
148*b1cdbd2cSJim Jagielski     * Method returns locale for a given language and country.
149*b1cdbd2cSJim Jagielski     * @param k index of needed locale.
150*b1cdbd2cSJim Jagielski     * @return Locale by the index from arrays defined above
151*b1cdbd2cSJim Jagielski     */
getLocale(int k)152*b1cdbd2cSJim Jagielski     public Locale getLocale(int k) {
153*b1cdbd2cSJim Jagielski         return new Locale(languages[k], countries[k], "");
154*b1cdbd2cSJim Jagielski     }
155*b1cdbd2cSJim Jagielski 
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski 
158*b1cdbd2cSJim Jagielski } // end XNumberFormatCode
159*b1cdbd2cSJim Jagielski 
160