1*dab0a4eaSDamjan Jovanovic /**************************************************************
2*dab0a4eaSDamjan Jovanovic  *
3*dab0a4eaSDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*dab0a4eaSDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*dab0a4eaSDamjan Jovanovic  * distributed with this work for additional information
6*dab0a4eaSDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*dab0a4eaSDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*dab0a4eaSDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*dab0a4eaSDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*dab0a4eaSDamjan Jovanovic  *
11*dab0a4eaSDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*dab0a4eaSDamjan Jovanovic  *
13*dab0a4eaSDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*dab0a4eaSDamjan Jovanovic  * software distributed under the License is distributed on an
15*dab0a4eaSDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*dab0a4eaSDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*dab0a4eaSDamjan Jovanovic  * specific language governing permissions and limitations
18*dab0a4eaSDamjan Jovanovic  * under the License.
19*dab0a4eaSDamjan Jovanovic  *
20*dab0a4eaSDamjan Jovanovic  *************************************************************/
21*dab0a4eaSDamjan Jovanovic 
22*dab0a4eaSDamjan Jovanovic 
23*dab0a4eaSDamjan Jovanovic 
24*dab0a4eaSDamjan Jovanovic package complex.numberformatter;
25*dab0a4eaSDamjan Jovanovic 
26*dab0a4eaSDamjan Jovanovic import com.sun.star.lang.XMultiServiceFactory;
27*dab0a4eaSDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
28*dab0a4eaSDamjan Jovanovic import com.sun.star.util.XNumberFormatsSupplier;
29*dab0a4eaSDamjan Jovanovic import com.sun.star.util.XNumberFormatter;
30*dab0a4eaSDamjan Jovanovic 
31*dab0a4eaSDamjan Jovanovic import org.junit.After;
32*dab0a4eaSDamjan Jovanovic import org.junit.AfterClass;
33*dab0a4eaSDamjan Jovanovic import org.junit.Before;
34*dab0a4eaSDamjan Jovanovic import org.junit.BeforeClass;
35*dab0a4eaSDamjan Jovanovic import org.junit.Test;
36*dab0a4eaSDamjan Jovanovic import org.openoffice.test.OfficeConnection;
37*dab0a4eaSDamjan Jovanovic import static org.junit.Assert.*;
38*dab0a4eaSDamjan Jovanovic 
39*dab0a4eaSDamjan Jovanovic public class NumberFormatterUnitTest {
40*dab0a4eaSDamjan Jovanovic     private XMultiServiceFactory m_xMSF = null;
41*dab0a4eaSDamjan Jovanovic 
before()42*dab0a4eaSDamjan Jovanovic     @Before public void before() {
43*dab0a4eaSDamjan Jovanovic         try {
44*dab0a4eaSDamjan Jovanovic             m_xMSF = getMSF();
45*dab0a4eaSDamjan Jovanovic         } catch (Exception e) {
46*dab0a4eaSDamjan Jovanovic             fail ("Cannot create service factory!");
47*dab0a4eaSDamjan Jovanovic         }
48*dab0a4eaSDamjan Jovanovic         if (m_xMSF == null) {
49*dab0a4eaSDamjan Jovanovic             fail ("Cannot create service factory!");
50*dab0a4eaSDamjan Jovanovic         }
51*dab0a4eaSDamjan Jovanovic     }
52*dab0a4eaSDamjan Jovanovic 
after()53*dab0a4eaSDamjan Jovanovic     @After public void after() {
54*dab0a4eaSDamjan Jovanovic         m_xMSF = null;
55*dab0a4eaSDamjan Jovanovic     }
56*dab0a4eaSDamjan Jovanovic 
57*dab0a4eaSDamjan Jovanovic     @Test
testDollarDotNumberFormat()58*dab0a4eaSDamjan Jovanovic     public void testDollarDotNumberFormat() throws Exception
59*dab0a4eaSDamjan Jovanovic     {
60*dab0a4eaSDamjan Jovanovic         Object numberFormatterService = m_xMSF.createInstance( "com.sun.star.util.NumberFormatter" );
61*dab0a4eaSDamjan Jovanovic         XNumberFormatter numberFormatter = UnoRuntime.queryInterface( XNumberFormatter.class, numberFormatterService );
62*dab0a4eaSDamjan Jovanovic         Object numberFormatsSupplierService = m_xMSF.createInstance( "com.sun.star.util.NumberFormatsSupplier" );
63*dab0a4eaSDamjan Jovanovic         XNumberFormatsSupplier numberFormatsSupplier = UnoRuntime.queryInterface( XNumberFormatsSupplier.class, numberFormatsSupplierService );
64*dab0a4eaSDamjan Jovanovic         numberFormatter.attachNumberFormatsSupplier( numberFormatsSupplier );
65*dab0a4eaSDamjan Jovanovic 
66*dab0a4eaSDamjan Jovanovic         // Bug 82687 - Text entry or CSV import treats $.nn as text
67*dab0a4eaSDamjan Jovanovic         double number = numberFormatter.convertStringToNumber(0, "$.1");
68*dab0a4eaSDamjan Jovanovic         assertEquals(0.1, number, 0.00001);
69*dab0a4eaSDamjan Jovanovic     }
70*dab0a4eaSDamjan Jovanovic 
getMSF()71*dab0a4eaSDamjan Jovanovic     private XMultiServiceFactory getMSF()
72*dab0a4eaSDamjan Jovanovic     {
73*dab0a4eaSDamjan Jovanovic         final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
74*dab0a4eaSDamjan Jovanovic         return xMSF1;
75*dab0a4eaSDamjan Jovanovic     }
76*dab0a4eaSDamjan Jovanovic 
77*dab0a4eaSDamjan Jovanovic     // setup and close connections
setUpConnection()78*dab0a4eaSDamjan Jovanovic     @BeforeClass public static void setUpConnection() throws Exception {
79*dab0a4eaSDamjan Jovanovic         System.out.println("setUpConnection()");
80*dab0a4eaSDamjan Jovanovic         connection.setUp();
81*dab0a4eaSDamjan Jovanovic     }
82*dab0a4eaSDamjan Jovanovic 
tearDownConnection()83*dab0a4eaSDamjan Jovanovic     @AfterClass public static void tearDownConnection()
84*dab0a4eaSDamjan Jovanovic         throws InterruptedException, com.sun.star.uno.Exception
85*dab0a4eaSDamjan Jovanovic     {
86*dab0a4eaSDamjan Jovanovic         System.out.println("tearDownConnection()");
87*dab0a4eaSDamjan Jovanovic         connection.tearDown();
88*dab0a4eaSDamjan Jovanovic     }
89*dab0a4eaSDamjan Jovanovic 
90*dab0a4eaSDamjan Jovanovic     private static final OfficeConnection connection = new OfficeConnection();
91*dab0a4eaSDamjan Jovanovic 
92*dab0a4eaSDamjan Jovanovic }
93