1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10*ef39d40dSAndrew Rist * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*ef39d40dSAndrew Rist * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19*ef39d40dSAndrew Rist * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package ifc.chart; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import com.sun.star.chart.ChartDataChangeEvent; 26cdf0e10cSrcweir import com.sun.star.chart.XChartData; 27cdf0e10cSrcweir import com.sun.star.chart.XChartDataArray; 28cdf0e10cSrcweir import com.sun.star.chart.XChartDataChangeEventListener; 29cdf0e10cSrcweir import com.sun.star.lang.EventObject; 30cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 31cdf0e10cSrcweir 32cdf0e10cSrcweir import lib.MultiMethodTest; 33cdf0e10cSrcweir 34cdf0e10cSrcweir 35cdf0e10cSrcweir /** 36cdf0e10cSrcweir * Testing <code>com.sun.star.chart.XChartData</code> 37cdf0e10cSrcweir * interface methods : 38cdf0e10cSrcweir * <ul> 39cdf0e10cSrcweir * <li><code> addChartDataChangeEventListener()</code></li> 40cdf0e10cSrcweir * <li><code> removeChartDataChangeEventListener()</code></li> 41cdf0e10cSrcweir * <li><code> getNotANumber()</code></li> 42cdf0e10cSrcweir * <li><code> isNotANumber()</code></li> 43cdf0e10cSrcweir * </ul> <p> 44cdf0e10cSrcweir * @see com.sun.star.chart.XChartData 45cdf0e10cSrcweir */ 46cdf0e10cSrcweir public class _XChartData extends MultiMethodTest { 47cdf0e10cSrcweir public XChartData oObj = null; 48cdf0e10cSrcweir boolean result = true; 49cdf0e10cSrcweir double nan = 0; 50cdf0e10cSrcweir XChartDataArray dataArray = null; 51cdf0e10cSrcweir boolean[] dataChanged = new boolean[2]; 52cdf0e10cSrcweir XChartDataChangeEventListener listener1 = new MyEventListener(); 53cdf0e10cSrcweir XChartDataChangeEventListener listener2 = new MyEventListener2(); 54cdf0e10cSrcweir 55cdf0e10cSrcweir /** 56cdf0e10cSrcweir * Test calls the method adding two listeners and then changes data. <p> 57cdf0e10cSrcweir * Has <b> OK </b> status if after data were changed 58cdf0e10cSrcweir * listeners were called. <p> 59cdf0e10cSrcweir */ _addChartDataChangeEventListener()60cdf0e10cSrcweir public void _addChartDataChangeEventListener() { 61cdf0e10cSrcweir dataChanged[0] = false; 62cdf0e10cSrcweir dataChanged[1] = false; 63cdf0e10cSrcweir 64cdf0e10cSrcweir oObj.addChartDataChangeEventListener(listener1); 65cdf0e10cSrcweir oObj.addChartDataChangeEventListener(listener2); 66cdf0e10cSrcweir 67cdf0e10cSrcweir dataArray = (XChartDataArray) UnoRuntime.queryInterface( 68cdf0e10cSrcweir XChartDataArray.class, oObj); 69cdf0e10cSrcweir 70cdf0e10cSrcweir double[][] data = dataArray.getData(); 71cdf0e10cSrcweir data[0][0] += 0.1; 72cdf0e10cSrcweir dataArray.setData(data); 73cdf0e10cSrcweir 74cdf0e10cSrcweir if (!dataChanged[0]) { 75cdf0e10cSrcweir log.println("ChartDataChangeEventListener1 " + 76cdf0e10cSrcweir "isn't called after changing data"); 77cdf0e10cSrcweir } 78cdf0e10cSrcweir 79cdf0e10cSrcweir if (!dataChanged[1]) { 80cdf0e10cSrcweir log.println("ChartDataChangeEventListener2 " + 81cdf0e10cSrcweir "isn't called after changing data"); 82cdf0e10cSrcweir } 83cdf0e10cSrcweir 84cdf0e10cSrcweir tRes.tested("addChartDataChangeEventListener()", 85cdf0e10cSrcweir dataChanged[0] && dataChanged[1]); 86cdf0e10cSrcweir } 87cdf0e10cSrcweir 88cdf0e10cSrcweir /** 89cdf0e10cSrcweir * Test calls the method for one listener, changes data, 90cdf0e10cSrcweir * calls the method for other listener and again changes data. <p> 91cdf0e10cSrcweir * Has <b> OK </b> status if listener is not called after removing. <p> 92cdf0e10cSrcweir * The following method tests are to be completed successfully before : 93cdf0e10cSrcweir * <ul> 94cdf0e10cSrcweir * <li> <code>addChartDataChangeEventListener</code> : to have listeners 95cdf0e10cSrcweir * that must be removed by the method </li> 96cdf0e10cSrcweir * </ul> 97cdf0e10cSrcweir */ _removeChartDataChangeEventListener()98cdf0e10cSrcweir public void _removeChartDataChangeEventListener() { 99cdf0e10cSrcweir requiredMethod("addChartDataChangeEventListener()"); 100cdf0e10cSrcweir 101cdf0e10cSrcweir dataChanged[0] = false; 102cdf0e10cSrcweir dataChanged[1] = false; 103cdf0e10cSrcweir 104cdf0e10cSrcweir oObj.removeChartDataChangeEventListener(listener1); 105cdf0e10cSrcweir dataArray = (XChartDataArray) UnoRuntime.queryInterface( 106cdf0e10cSrcweir XChartDataArray.class, oObj); 107cdf0e10cSrcweir 108cdf0e10cSrcweir double[][] data = dataArray.getData(); 109cdf0e10cSrcweir data[0][0] += 0.1; 110cdf0e10cSrcweir dataArray.setData(data); 111cdf0e10cSrcweir oObj.removeChartDataChangeEventListener(listener2); 112cdf0e10cSrcweir 113cdf0e10cSrcweir if (dataChanged[0]) { 114cdf0e10cSrcweir log.println("ChartDataChangeEventListener1 is " + 115cdf0e10cSrcweir "called after removing listener"); 116cdf0e10cSrcweir } 117cdf0e10cSrcweir 118cdf0e10cSrcweir tRes.tested("removeChartDataChangeEventListener()", 119cdf0e10cSrcweir ((!dataChanged[0]) && (dataChanged[1]))); 120cdf0e10cSrcweir } 121cdf0e10cSrcweir 122cdf0e10cSrcweir /** 123cdf0e10cSrcweir * Test calls the method and checks returned value. <p> 124cdf0e10cSrcweir * Has <b> OK </b> status if the return value isn't equal to 1. <p> 125cdf0e10cSrcweir */ _getNotANumber()126cdf0e10cSrcweir public void _getNotANumber() { 127cdf0e10cSrcweir result = true; 128cdf0e10cSrcweir 129cdf0e10cSrcweir nan = oObj.getNotANumber(); 130cdf0e10cSrcweir log.println("Current NotANumber is " + nan); 131cdf0e10cSrcweir result = nan != 1; 132cdf0e10cSrcweir 133cdf0e10cSrcweir tRes.tested("getNotANumber()", result); 134cdf0e10cSrcweir } 135cdf0e10cSrcweir 136cdf0e10cSrcweir /** 137cdf0e10cSrcweir * Test calls the method with NAN value and with non NAN value. <p> 138cdf0e10cSrcweir * Has <b> OK </b> status if the method returns true for NAN value and 139cdf0e10cSrcweir * returns false for other value<p> 140cdf0e10cSrcweir * The following method tests are to be completed successfully before : 141cdf0e10cSrcweir * <ul> 142cdf0e10cSrcweir * <li> <code>getNotANumber</code> : to have the current NAN value </li> 143cdf0e10cSrcweir * </ul> 144cdf0e10cSrcweir */ _isNotANumber()145cdf0e10cSrcweir public void _isNotANumber() { 146cdf0e10cSrcweir requiredMethod("getNotANumber()"); 147cdf0e10cSrcweir result = true; 148cdf0e10cSrcweir 149cdf0e10cSrcweir result = (oObj.isNotANumber(nan) && !oObj.isNotANumber(nan + 1)); 150cdf0e10cSrcweir 151cdf0e10cSrcweir tRes.tested("isNotANumber()", result); 152cdf0e10cSrcweir } 153cdf0e10cSrcweir 154cdf0e10cSrcweir /** 155cdf0e10cSrcweir * Forces environment recreation. 156cdf0e10cSrcweir */ after()157cdf0e10cSrcweir protected void after() { 158cdf0e10cSrcweir disposeEnvironment(); 159cdf0e10cSrcweir } 160cdf0e10cSrcweir 161cdf0e10cSrcweir class MyEventListener implements XChartDataChangeEventListener { disposing(EventObject oEvent)162cdf0e10cSrcweir public void disposing(EventObject oEvent) { 163cdf0e10cSrcweir System.out.println("Listener1 disposed"); 164cdf0e10cSrcweir } 165cdf0e10cSrcweir chartDataChanged(ChartDataChangeEvent ev)166cdf0e10cSrcweir public void chartDataChanged(ChartDataChangeEvent ev) { 167cdf0e10cSrcweir dataChanged[0] = true; 168cdf0e10cSrcweir } 169cdf0e10cSrcweir } 170cdf0e10cSrcweir 171cdf0e10cSrcweir class MyEventListener2 implements XChartDataChangeEventListener { disposing(EventObject oEvent)172cdf0e10cSrcweir public void disposing(EventObject oEvent) { 173cdf0e10cSrcweir System.out.println("Listener2 disposed"); 174cdf0e10cSrcweir } 175cdf0e10cSrcweir chartDataChanged(ChartDataChangeEvent ev)176cdf0e10cSrcweir public void chartDataChanged(ChartDataChangeEvent ev) { 177cdf0e10cSrcweir dataChanged[1] = true; 178cdf0e10cSrcweir } 179cdf0e10cSrcweir } 180cdf0e10cSrcweir }