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.sheet; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import com.sun.star.sheet.XCalculatable; 26cdf0e10cSrcweir import com.sun.star.table.XCell; 27cdf0e10cSrcweir import lib.MultiMethodTest; 28cdf0e10cSrcweir import lib.Status; 29cdf0e10cSrcweir import lib.StatusException; 30cdf0e10cSrcweir 31cdf0e10cSrcweir /** 32cdf0e10cSrcweir * 33cdf0e10cSrcweir */ 34cdf0e10cSrcweir public class _XCalculatable extends MultiMethodTest { 35cdf0e10cSrcweir public XCalculatable oObj = null; 36cdf0e10cSrcweir private boolean bIsAutomaticCalculationEnabled = false; 37cdf0e10cSrcweir private XCell[] xCells = null; 38cdf0e10cSrcweir 39cdf0e10cSrcweir /** 40cdf0e10cSrcweir * Get object relation: four cells with values and formulas. 41cdf0e10cSrcweir * @see mod._sc.ScModelObj 42cdf0e10cSrcweir */ before()43cdf0e10cSrcweir public void before() { 44cdf0e10cSrcweir xCells = (XCell[])tEnv.getObjRelation("XCalculatable.Cells"); 45cdf0e10cSrcweir if (xCells == null || xCells.length != 3) 46cdf0e10cSrcweir throw new StatusException(Status.failed("Couldn't find correct object relation 'XCalculatable.Cells'")); 47cdf0e10cSrcweir 48cdf0e10cSrcweir } 49cdf0e10cSrcweir 50cdf0e10cSrcweir /** 51cdf0e10cSrcweir * Restore begin setting 52cdf0e10cSrcweir */ after()53cdf0e10cSrcweir public void after() { 54cdf0e10cSrcweir // reset to begin value 55cdf0e10cSrcweir oObj.enableAutomaticCalculation(bIsAutomaticCalculationEnabled); 56cdf0e10cSrcweir } 57cdf0e10cSrcweir 58cdf0e10cSrcweir _calculate()59cdf0e10cSrcweir public void _calculate() { 60cdf0e10cSrcweir requiredMethod("isAutomaticCalculationEnabled()"); 61cdf0e10cSrcweir boolean result = true; 62cdf0e10cSrcweir double ergValue1 = xCells[2].getValue(); 63cdf0e10cSrcweir double sourceValue1 = xCells[0].getValue(); 64cdf0e10cSrcweir xCells[0].setValue(sourceValue1 +1); 65cdf0e10cSrcweir double ergValue2 = xCells[2].getValue(); 66cdf0e10cSrcweir result &= ergValue1 == ergValue2; 67cdf0e10cSrcweir oObj.calculate(); 68cdf0e10cSrcweir ergValue2 = xCells[2].getValue(); 69cdf0e10cSrcweir result &= ergValue1 != ergValue2; 70cdf0e10cSrcweir tRes.tested("calculate()", result); 71cdf0e10cSrcweir } 72cdf0e10cSrcweir _calculateAll()73cdf0e10cSrcweir public void _calculateAll() { 74cdf0e10cSrcweir requiredMethod("isAutomaticCalculationEnabled()"); 75cdf0e10cSrcweir boolean result = true; 76cdf0e10cSrcweir double ergValue1 = xCells[2].getValue(); 77cdf0e10cSrcweir double sourceValue1 = xCells[0].getValue(); 78cdf0e10cSrcweir xCells[0].setValue(sourceValue1 +1); 79cdf0e10cSrcweir double ergValue2 = xCells[2].getValue(); 80cdf0e10cSrcweir result &= ergValue1 == ergValue2; 81cdf0e10cSrcweir oObj.calculateAll(); 82cdf0e10cSrcweir ergValue2 = xCells[2].getValue(); 83cdf0e10cSrcweir result &= ergValue1 != ergValue2; 84cdf0e10cSrcweir oObj.calculateAll(); 85cdf0e10cSrcweir tRes.tested("calculateAll()", result); 86cdf0e10cSrcweir } 87cdf0e10cSrcweir _enableAutomaticCalculation()88cdf0e10cSrcweir public void _enableAutomaticCalculation() { 89cdf0e10cSrcweir bIsAutomaticCalculationEnabled = oObj.isAutomaticCalculationEnabled(); 90cdf0e10cSrcweir oObj.enableAutomaticCalculation(!bIsAutomaticCalculationEnabled); 91cdf0e10cSrcweir tRes.tested("enableAutomaticCalculation()", true); 92cdf0e10cSrcweir } 93cdf0e10cSrcweir _isAutomaticCalculationEnabled()94cdf0e10cSrcweir public void _isAutomaticCalculationEnabled() { 95cdf0e10cSrcweir requiredMethod("enableAutomaticCalculation()"); 96cdf0e10cSrcweir boolean result = oObj.isAutomaticCalculationEnabled(); 97cdf0e10cSrcweir oObj.enableAutomaticCalculation(false); 98cdf0e10cSrcweir tRes.tested("isAutomaticCalculationEnabled()", result != bIsAutomaticCalculationEnabled); 99cdf0e10cSrcweir } 100cdf0e10cSrcweir 101cdf0e10cSrcweir } 102