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