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