'************************************************************************* ' ' 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. ' '************************************************************************* '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global cXResultSetFirstRecord as String ' Global cXResultSetLastRecord as String ' Global cXResultSetRecord1 as String ' Global cXResultSetRecord2 as String ' Global cXResultSet2BeforeLastRecord as String '************************************************************************* Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.sdbc.XResultSet '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Out.Log("ReCreating Object, to be shure that it is in initial state.") Test.StartMethod("beforeFirst()") Test.StartMethod("isBeforeFirst()") Test.StartMethod("isFirst()") Test.StartMethod("first()") Test.StartMethod("next()") Test.StartMethod("afterLast()") Test.StartMethod("isAfterLast()") Test.StartMethod("isLast()") Test.StartMethod("last()") Test.StartMethod("previous()") Test.StartMethod("getRow()") Dim bBeforeFirst As Boolean Dim bIsBeforeFirst As Boolean Dim bIsBeforeFirstLoop As Boolean Dim bIsFirst As Boolean Dim bFirst As Boolean Dim bNext As Boolean Dim bAfterLast As Boolean Dim bIsAfterLast As Boolean Dim bIsAfterLastLoop As Boolean Dim bIsLast As Boolean Dim bLast As Boolean Dim bPrevious As Boolean Dim bGetRow As Boolean Dim bLoopError as Boolean bLoopError = false bBeforeFirst = true bIsBeforeFirst = true bIsFirst = true bFirst = true bNext = true bAfterLast = true bIsAfterLast = true bIsLast = true bLast = true bPrevious = true bGetRow = true oObj.beforeFirst() Out.Log("Initially the cursor should be before first record.") Out.Log("getRow(): expected : 0, actual: " + oObj.getRow()) if (oObj.getRow() = 0) then Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() end if Out.Log("Go to not first record...") oObj.next oObj.next Out.Log("isBeforeFirst(): expected: 'false', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND NOT oObj.isBeforeFirst() Out.Log("Go to before first record...") oObj.beforeFirst() Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bBeforeFirst = bBeforeFirst AND oObj.isBeforeFirst() bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() Out.Log("Go to previous position") oObj.previous() Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() bPrevious = bPrevious AND oObj.isBeforeFirst() Out.Log("Go to first record...") oObj.first() Out.Log("isBeforeFirst(): expected: 'false', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND NOT oObj.isBeforeFirst() Out.Log("isFirst(): expected: 'true', actual '" + oObj.isFirst() + "'") bIsFirst = bIsFirst AND oObj.isFirst() Out.Log("getRow(): expected : 1, actual: " + oObj.getRow()) bIsFirst = bIsFirst AND oObj.getRow() = 1 Out.Log("RowDsc should contain " + cXResultSetFirstRecord) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bFirst = bFirst AND inStr(1, oObj.getString(1), cXResultSetFirstRecord) Out.Log("Go to previous position") oObj.previous() Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() bPrevious = bPrevious AND oObj.isBeforeFirst() Out.Log("isFirst(): expected: 'false', actual '" + oObj.isFirst() + "'") bIsFirst = bIsFirst AND NOT oObj.isFirst() Out.Log("Go to beforeFirst()") oObj.beforeFirst() Out.Log("Iterate through all records form first to last") Dim n As Integer n = 0 bLoopError = false bIsAfterLastLoop = oObj.isAfterLast() while (n < 1000 AND NOT bIsAfterLastLoop) oObj.next() n = n + 1 bIsAfterLastLoop = oObj.isAfterLast() if bLoopError then bLoopError = false n = 1000 end if wend Out.Log("IsAfterLast(): expected: 'true', actual '" + oObj.IsAfterLast() + "'") bIsAfterLast = bIsAfterLast AND oObj.isAfterLast() Out.Log("IsLast(): expected: 'false', actual '" + oObj.IsLast() + "'") bIsLast = bIsLast AND NOT oObj.isLast() Out.Log("Amount of records is " + n) Out.Log("Trying to go to next record") oObj.next() Out.Log("IsAfterLast(): expected: 'true', actual '" + oObj.IsAfterLast() + "'") bIsAfterLast = bIsAfterLast AND oObj.isAfterLast() Out.Log("Go to previous position.") oObj.previous() Out.Log("IsLast(): expected: 'true', actual '" + oObj.IsLast() + "'") bIsLast = bIsLast AND oObj.isLast() Out.Log("RowDsc should contain " + cXResultSetLastRecord) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bIsLast = bIsLast AND inStr(1, oObj.getString(1), cXResultSetLastRecord) Out.Log("Iterate through all records form last to first") bLoopError = false bIsBeforeFirstLoop = oObj.isBeforeFirst() while (n > 0 AND NOT bIsBeforeFirstLoop) oObj.previous() n = n - 1 bIsBeforeFirstLoop = oObj.isBeforeFirst() if bLoopError then bLoopError = false n = 0 end if wend Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() Out.Log("Trying to go to previous record") oObj.previous() Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() Test.MethodTested("beforeFirst()", bBeforeFirst) Test.MethodTested("isBeforeFirst()", bIsBeforeFirst) Test.MethodTested("isFirst()", bIsFirst) Test.MethodTested("first()", bFirst) Test.MethodTested("next()", bNext) Test.MethodTested("afterLast()", bAfterLast) Test.MethodTested("isAfterLast()", bIsAfterLast) Test.MethodTested("isLast()", bIsLast) Test.MethodTested("last()", bLast) Test.MethodTested("previous()", bPrevious) Test.MethodTested("getRow()", bGetRow) Test.StartMethod("absolute()") bOK = true Out.Log("Go to second record") oObj.absolute(2) Out.Log("RowDsc should contain " + cXResultSetRecord2) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord2) Out.Log("Go to record -1") oObj.absolute(-1) Out.Log("RowDsc is '" + oObj.getString(1) + "'") Out.Log("IsLast(): expected: 'true', actual '" + oObj.IsLast() + "'") bOK = bOK AND oObj.isLast() Out.Log("Go to record -2") oObj.absolute(-2) Out.Log("IsLast(): expected: 'false', actual '" + oObj.IsLast() + "'") bOK = bOK AND NOT oObj.isLast() Out.Log("RowDsc should contain " + cXResultSet2BeforeLastRecord) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bOK = bOK AND inStr(1, oObj.getString(1), cXResultSet2BeforeLastRecord) Test.MethodTested("absolute()", bOK) Test.StartMethod("relative()") bOK = true Out.Log("Go to before first record") oObj.beforeFirst() on error goto RelativeErrHndl oObj.relative(1) Out.Log("Exception expected!") bOK = false goto ContRelative RelativeErrHndl: Out.Log("Expected exception.") ContRelative: On Error Goto NewErrHndl Out.Log("Go to first record and relative(1)") oObj.next() oObj.relative(1) Out.Log("RowDsc should contain " + cXResultSetRecord2) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord2) Out.Log("Go to relative(-1)") oObj.relative(-1) Out.Log("RowDsc should contain " + cXResultSetRecord1) Out.Log("RowDsc is '" + oObj.getString(1) + "'") bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord1) Out.Log("RowDsc is '" + oObj.getString(1) + "'") Test.MethodTested("relative()", bOK) Test.StartMethod("refreshRow()") bOK = true oObj.refreshRow() Test.MethodTested("refreshRow()", bOK) Test.StartMethod("rowUpdated()") bOK = true Out.Log("rowUpdated() is " + oObj.rowUpdated()) bOK = bOK AND NOT oObj.rowUpdated() Test.MethodTested("rowUpdated()", bOK) Test.StartMethod("rowInserted()") bOK = true Out.Log("rowInserted() is " + oObj.rowInserted()) bOK = bOK AND NOT oObj.rowInserted() Test.MethodTested("rowInserted()", bOK) Test.StartMethod("rowDeleted()") bOK = true Out.Log("rowDeleted() is " + oObj.rowDeleted()) bOK = bOK AND NOT oObj.rowDeleted() Test.MethodTested("rowDeleted()", bOK) Test.StartMethod("getStatement()") bOK = true oStatement = oObj.getStatement() bOK = bOK AND NOT isNULL(oStatement) Test.MethodTested("getStatement()", bOK) Exit Sub NewErrHndl: ErrHndl: Test.Exception() bOK = false bLoopError = true resume next End Sub