xref: /AOO41X/main/smoketestdoc/data/Test_DB.xml (revision 81dfce65c14fb34544724446693d0cd7cf041c45)
1<?xml version="1.0" encoding="UTF-8"?>
2<!--***********************************************************
3 *
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements.  See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership.  The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License.  You may obtain a copy of the License at
11 *
12 *   http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied.  See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 *
21 ***********************************************************-->
22
23
24<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
25<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM  *****  Database Test  *****
26
27const cMessageDatabaseService = &quot;Database Service&quot;
28const cMessageDatabaseOpen = &quot;Open Database&quot;
29const cMessageDatabaseInsert = &quot;Insert record into Database&quot;
30const cMessageDatabaseDelete = &quot;Delete record from Database&quot;
31const cMessageDatabaseSeek = &quot;Read other record from Database&quot;
32const cMessageDatabaseClose = &quot;Close Database&quot;
33
34Sub TestDB
35
36    Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object
37    Dim sDBName as String, sTable as String, sCurrentMessage as String
38    Dim nRowCount as Integer
39    Dim bResult as Boolean
40    Const sTestString = &quot;Automatical Test&quot;
41
42    On Local Error GoTo DBERROR
43
44    gCurrentTestCase = cLogfileFailed
45    LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
46
47    gCurrentTestCase = cDBService
48    sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoDatabaseContext
49
50    oDBContext = CreateUnoService(cUnoDatabaseContext)
51    sDBName=oDBContext.ElementNames(0) &apos;Names of Databases
52
53    gCurrentTestCase = cDBOpen
54    sCurrentMessage = cMessageDatabaseOpen
55
56    oDataSource = oDBContext.GetByName(sDBName)
57    sTable=oDataSource.Tables.ElementNames(0)
58    oDBConnection = oDBContext.GetByName(sDBName).GetConnection(&quot;&quot;,&quot;&quot;)
59
60    LogTestResult( &quot;Database &quot;+ cMessageDatabaseOpen, not IsNull (oDBConnection) )
61    if (IsNull(oDBConnection)) then
62    Close #LocalTestLog%
63        LocalTestLog = 0
64        Exit Sub
65    End If
66
67    &apos; Database is open now
68
69    gCurrentTestCase = cDBService
70    sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoRowSet
71    oRowSet = createUnoService(cUnoRowSet)
72
73    if (IsNull(oRowSet)) then
74        LogTestResult( &quot;Database &quot;+ cMessageDatabaseService + &quot; &quot; + cUnoRowSet, not IsNull (oRowSet) )
75        Exit Sub
76    else
77        LogTestResult( &quot;Database &quot;+ cMessageDatabaseService, TRUE )
78    End If
79
80    gCurrentTestCase = cDBInsert
81    sCurrentMessage = cMessageDatabaseInsert
82
83    oRowSet.ActiveConnection = oDBConnection
84
85    oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
86    oRowSet.Command = &quot;SELECT * FROM &quot; + sTable
87    oRowSet.execute()
88
89    oRowSet.moveToInsertRow
90    oRowSet.updateString(5, sTestString)
91
92    oRowSet.insertRow()
93    nRowCount=oRowSet.RowCount
94
95    oRowSet.moveToCurrentRow()
96
97    bResult = (oRowSet.getString(5) = sTestString)
98    LogTestResult( &quot;Database &quot;+ cMessageDatabaseInsert, bResult )
99
100    &apos;delete only if insert passed
101
102    if (bResult) Then
103        gCurrentTestCase = cDBDelete
104        sCurrentMessage = cMessageDatabaseDelete
105        oRowSet.deleteRow()
106        bResult = (nRowCount - oRowSet.RowCount = 0)
107        if ( bResult ) Then
108            oRowSet.next()
109            bResult = (nRowCount - oRowSet.RowCount = 1)
110        End If
111        LogTestResult( &quot;Database &quot;+ cMessageDatabaseDelete, bResult )
112    End If
113
114    &apos; read other record
115
116    gCurrentTestCase = cDBSeek
117    sCurrentMessage = cMessageDatabaseSeek
118    oRowSet.first()
119    bResult = not (oRowSet.getString(5) = sTestString)
120    LogTestResult( &quot;Database &quot;+ cMessageDatabaseSeek, bResult )
121
122    gCurrentTestCase = cDBClose
123    sCurrentMessage = cMessageDatabaseClose
124    oDBConnection.Dispose()
125    LogTestResult( &quot;Database &quot;+ cMessageDatabaseClose, True )
126
127    Print #LocalTestLog, &quot;---&quot;
128    Close #LocalTestLog%
129    LocalTestLog = 0
130    Exit Sub &apos; Without error
131
132    DBERROR:
133    If ( gCurrentTestCase = cLogfileFailed ) then
134        LogTestResult( &quot; &quot;, False )
135        Exit Sub
136    else
137        LogTestResult( &quot;Database &quot;+ sCurrentMessage, FALSE )
138        Close #LocalTestLog%
139        LocalTestLog = 0
140    End If
141    Exit Sub &apos; With error
142End Sub
143</script:module>
144