protected synchronized TestEnvironment createTestEnvironment(TestParameters Param,
PrintWriter log) {
XInterface oObj = null;
TestEnvironment tEnv = null;
XSpreadsheet oSheet = null;
XCellRange testRange = null;
// creation of testobject here
// first we write what we are intend to do to log file
log.println("Creating a test environment");
XSpreadsheets oSpreadsheets = ((XSpreadsheetDocument) UnoRuntime.queryInterface(
XSpreadsheetDocument.class,
xSheetDoc)).getSheets();
try {
oSheet = (XSpreadsheet) AnyConverter.toObject(
new Type(XSpreadsheet.class),
oSpreadsheets.getByName(
oSpreadsheets.getElementNames()[0]));
testRange = oSheet.getCellRangeByName("$A$1:$D$4");
XSheetCellRange testSheetRange = (XSheetCellRange) UnoRuntime.queryInterface(
XSheetCellRange.class,
testRange);
oObj = oSheet.createCursorByRange(testSheetRange);
oSheet.getCellByPosition(1, 1).setValue(1);
oSheet.getCellByPosition(4, 5).setValue(1);
oSheet.getCellByPosition(3, 2).setFormula("xTextDoc");
oSheet.getCellByPosition(3, 3).setFormula("xTextDoc");
} catch (com.sun.star.lang.WrappedTargetException e) {
log.println("Exception occured while creating test object:");
e.printStackTrace(log);
throw new StatusException("Couldn't create test object", e);
} catch (com.sun.star.container.NoSuchElementException e) {
log.println("Exception occured while creating test object:");
e.printStackTrace(log);
throw new StatusException("Couldn't create test object", e);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
log.println("Exception occured while creating test object:");
e.printStackTrace(log);
throw new StatusException("Couldn't create test object", e);
} catch (com.sun.star.lang.IllegalArgumentException e) {
log.println("Exception occured while creating test object:");
e.printStackTrace(log);
throw new StatusException("Couldn't create test object", e);
}
log.println("Test object successfully created.");
tEnv = new TestEnvironment(oObj);
tEnv.addObjRelation("CRDESC",
"Column and RowDescriptions can't be changed for this Object");
tEnv.addObjRelation("SHEET", oSheet);
// add expected results for the XCellRangesQuery interface test
String[]expectedResults = new String[7];
expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B1";
expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B2";
expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B3 ... Sheet1.C1 ... Sheet1.D1";
expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A2;Sheet1.C2";
expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
tEnv.addObjRelation("NewData",
new Object[][]
{
{ "", "", "", "" },
{ "", "2", "3", "4" },
{ "", "2", "3", "4" },
{ "", "2", "3", "4" }
});
XPropertySet PropSet = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, oObj);
tEnv.addObjRelation("PropSet", PropSet);
//Adding relation for util.XSortable
final PrintWriter finalLog = log;
final XCellRange oTable = testRange;
tEnv.addObjRelation("SORTCHECKER",
new ifc.util._XSortable.XSortChecker() {
PrintWriter out = finalLog;
public void setPrintWriter(PrintWriter log) {
out = log;
}
public void prepareToSort() {
try {
oTable.getCellByPosition(0, 0).setValue(4);
oTable.getCellByPosition(0, 1).setFormula("b");
oTable.getCellByPosition(0, 2).setValue(3);
oTable.getCellByPosition(0, 3).setValue(23);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
out.println("Exception while checking sort");
}
}
public boolean checkSort(boolean isSortNumbering,
boolean isSortAscending) {
out.println("Sort checking...");
boolean res = false;
String[] value = new String[4];
for (int i = 0; i < 4; i++) {
try {
XCell cell = oTable.getCellByPosition(0, i);
value[i] = cell.getFormula();
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
out.println("Exception while checking sort");
}
}