update credits
[LibreOffice.git] / smoketest / data / Basic / Standard / Test_DB.xml
blob4572f3d337e994736aa84daf36a626a9df491283
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  -->
19 <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
20 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM  *****  Database Test  *****
22 const cMessageDatabaseService = &quot;Database Service&quot;
23 const cMessageDatabaseOpen = &quot;Open Database&quot;
24 const cMessageDatabaseInsert = &quot;Insert record into Database&quot;
25 const cMessageDatabaseDelete = &quot;Delete record from Database&quot;
26 const cMessageDatabaseSeek = &quot;Read other record from Database&quot;
27 const cMessageDatabaseClose = &quot;Close Database&quot;
29 Sub TestDB
31     Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object
32     Dim sDBName as String, sTable as String, sCurrentMessage as String
33     Dim nRowCount as Integer
34     Dim bResult as Boolean
35     Const sTestString = &quot;Automatical Test&quot;
37     On Local Error GoTo DBERROR
39     gCurrentTestCase = cLogfileFailed
40     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
42     gCurrentTestCase = cDBService
43     sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoDatabaseContext
45     oDBContext = CreateUnoService(cUnoDatabaseContext)
46     sDBName=&quot;Bibliography&quot; &apos;Names of Databases
48     gCurrentTestCase = cDBOpen
49     sCurrentMessage = cMessageDatabaseOpen
51     oDataSource = oDBContext.GetByName(sDBName)
52     sTable=oDataSource.Tables.ElementNames(0)
53     oDBConnection = oDBContext.GetByName(sDBName).GetConnection(&quot;&quot;,&quot;&quot;)
55     LogTestResult( &quot;Database &quot;+ cMessageDatabaseOpen, not IsNull (oDBConnection) )
56     if (IsNull(oDBConnection)) then
57        Close #LocalTestLog%
58         LocalTestLog = 0
59         Exit Sub
60     End If
62     &apos; Database is open now
64     gCurrentTestCase = cDBService
65     sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoRowSet
66     oRowSet = createUnoService(cUnoRowSet)
68     if (IsNull(oRowSet)) then
69         LogTestResult( &quot;Database &quot;+ cMessageDatabaseService + &quot; &quot; + cUnoRowSet, not IsNull (oRowSet) )
70         Exit Sub
71     else
72         LogTestResult( &quot;Database &quot;+ cMessageDatabaseService, TRUE )
73     End If
75     gCurrentTestCase = cDBInsert
76     sCurrentMessage = cMessageDatabaseInsert
78     oRowSet.ActiveConnection = oDBConnection
80     oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
81     oRowSet.Command = &quot;SELECT * FROM &quot; + sTable
82     oRowSet.execute()
84     oRowSet.moveToInsertRow
85     oRowSet.updateString(5, sTestString)
87     oRowSet.insertRow()
88     nRowCount=oRowSet.RowCount
90     oRowSet.moveToCurrentRow()
92     bResult = (oRowSet.getString(5) = sTestString)
93     LogTestResult( &quot;Database &quot;+ cMessageDatabaseInsert, bResult )
95     &apos;delete only if insert passed
97     if (bResult) Then
98         gCurrentTestCase = cDBDelete
99         sCurrentMessage = cMessageDatabaseDelete
100         oRowSet.deleteRow()
101         bResult = (nRowCount - oRowSet.RowCount = 0)
102         if ( bResult ) Then
103             oRowSet.next()
104             bResult = (nRowCount - oRowSet.RowCount = 1)
105         End If
106         LogTestResult( &quot;Database &quot;+ cMessageDatabaseDelete, bResult )
107     End If
109     &apos; read other record
111     gCurrentTestCase = cDBSeek
112     sCurrentMessage = cMessageDatabaseSeek
113     oRowSet.first()
114     bResult = not (oRowSet.getString(5) = sTestString)
115     LogTestResult( &quot;Database &quot;+ cMessageDatabaseSeek, bResult )
117     gCurrentTestCase = cDBClose
118     sCurrentMessage = cMessageDatabaseClose
119     oDBConnection.Dispose()
120     LogTestResult( &quot;Database &quot;+ cMessageDatabaseClose, True )
122     Print #LocalTestLog, &quot;---&quot;
123     Close #LocalTestLog%
124     LocalTestLog = 0
125     Exit Sub &apos; Without error
127     DBERROR:
128     If ( gCurrentTestCase = cLogfileFailed ) then
129         LogTestResult( &quot; &quot;, False )
130         Exit Sub
131     else
132         LogTestResult( &quot;Database &quot;+ sCurrentMessage, FALSE )
133         Close #LocalTestLog%
134         LocalTestLog = 0
135     End If
136     Exit Sub &apos; With error
137 End Sub
138 </script:module>