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