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