blob: 7d364033649314fdc65cb881a916a927db005b26 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package ifc.sheet;
import java.util.Random;
import java.util.StringTokenizer;
import lib.MultiMethodTest;
import com.sun.star.sheet.NamedRangeFlag;
import com.sun.star.sheet.XNamedRange;
import com.sun.star.table.CellAddress;
/**
* Testing <code>com.sun.star.sheet.XNamedRange</code>
* interface methods :
* <ul>
* <li><code> getContent()</code></li>
* <li><code> setContent()</code></li>
* <li><code> getReferencePosition()</code></li>
* <li><code> setReferencePosition()</code></li>
* <li><code> getType()</code></li>
* <li><code> setType()</code></li>
* </ul> <p>
* After test completion object environment has to be recreated.
* @see com.sun.star.sheet.XNamedRange
*/
public class _XNamedRange extends MultiMethodTest {
public XNamedRange oObj = null;
String sContent = "";
int type = 0;
CellAddress CA = null;
/**
* Test calls the method and compares returned value to value that was set
* by method <code>setContent()</code>. <p>
* Has <b> OK </b> status if values are equal. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> setContent() </code> : to have current content </li>
* </ul>
*/
public void _getContent() {
requiredMethod("setContent()");
String content = oObj.getContent();
log.println("Returned content is \"" + content + "\"");
boolean bResult = content.equals(sContent);
tRes.tested("getContent()", bResult);
}
/**
* Test creates and stores random content and calls the method. <p>
* Has <b> OK </b> status if the method successfully returns. <p>
*/
public void _setContent() {
sContent = getRandomContent("A1;A4:C5;=B2");
log.println("Set content to \"" + sContent + "\"");
oObj.setContent(sContent);
tRes.tested("setContent()", true);
}
/**
* Test calls the method and compares returned value to value that was set
* by method <code>setType()</code>. <p>
* Has <b> OK </b> status if values are equal. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> setType() </code> : to have current type </li>
* </ul>
*/
public void _getType() {
requiredMethod("setType()");
int rtype = oObj.getType();
log.println("Returned type is " + rtype);
tRes.tested("getType()", type == rtype);
}
/**
* Test sets random type and stores it. <p>
* Has <b> OK </b> status if the method successfully returns. <p>
*/
public void _setType() {
/*
* The type must be 0 or a combination of the NamedRangeFlag
* constants and controls if the named range is listed in
* dialogs prompting for special ranges
*
* NamedRangeFlag: COLUMN_HEADER
* FILTER_CRITERIA
* PRINT_AREA
* ROW_HEADER
*
*/
boolean bResult = true;
int types[] = { 0,
NamedRangeFlag.COLUMN_HEADER,
NamedRangeFlag.FILTER_CRITERIA,
NamedRangeFlag.PRINT_AREA,
NamedRangeFlag.ROW_HEADER
};
Random rnd = new Random();
type = types[rnd.nextInt(5)];
oObj.setType(type);
log.println("The type was set to " + type);
tRes.tested("setType()", bResult);
}
/**
* Test calls the method and compares returned value to value that was set
* by method <code>setReferencePosition()</code>. <p>
* Has <b> OK </b> status if all fields of values are equal. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> setReferencePosition() </code> : to have current reference
* position </li>
* </ul>
*/
public void _getReferencePosition() {
requiredMethod("setReferencePosition()");
CellAddress rCA = oObj.getReferencePosition();
log.println("getReferencePosition returned (" +
rCA.Sheet + ", " +
rCA.Column + ", " + rCA.Row + ")" );
boolean bResult = rCA.Sheet == CA.Sheet;
bResult &= rCA.Column == CA.Column;
bResult &= rCA.Row == CA.Row;
tRes.tested("getReferencePosition()", bResult);
}
/**
* Test creates and stores cell address and calls the method. <p>
* Has <b> OK </b> status if the method successfully returns. <p>
*/
public void _setReferencePosition() {
CA = new CellAddress((short)0, 2, 3);
oObj.setReferencePosition(CA);
log.println("ReferencePosition was set to (" +
CA.Sheet + ", " +
CA.Column + ", " + CA.Row + ")");
tRes.tested("setReferencePosition()", true);
}
/**
* Method make string of random content.
* @return string of random content
*/
String getRandomContent(String str) {
String gRS = "none";
Random rnd = new Random();
StringTokenizer ST = new StringTokenizer(str, ";");
int nr = rnd.nextInt(ST.countTokens());
if (nr < 1) nr++;
for (int i = 1; i < nr + 1; i++)
gRS = ST.nextToken();
return gRS;
}
/**
* Forces object environment recreation.
*/
protected void after() {
disposeEnvironment();
}
}