summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/beans/XFastPropertySet/beans_XFastPropertySet.xba
blob: 8961bec8d24cb7a2192e0fc7540d8c619b073032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="beans_XFastPropertySet" script:language="StarBasic">


'*************************************************************************
'
' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
' 
' Copyright 2000, 2010 Oracle and/or its affiliates.
'
' OpenOffice.org - a multi-platform office productivity suite
'
' This file is part of OpenOffice.org.
'
' OpenOffice.org is free software: you can redistribute it and/or modify
' it under the terms of the GNU Lesser General Public License version 3
' only, as published by the Free Software Foundation.
'
' OpenOffice.org is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU Lesser General Public License version 3 for more details
' (a copy is included in the LICENSE file that accompanied this code).
'
' You should have received a copy of the GNU Lesser General Public License
' version 3 along with OpenOffice.org.  If not, see
' <http://www.openoffice.org/license.html>
' for a copy of the LGPLv3 License.
'
'*************************************************************************
'*************************************************************************





Sub RunTest()

'*************************************************************************
' INTERFACE: 
' com.sun.star.beans.XFastPropertySet
'*************************************************************************
On Error Goto ErrHndl

    Dim bOK As Boolean
    Dim oPropertySetInfo As Object
    Dim oProperties As Variant
    Dim nIndex As Long, nHanlde As Long
    Dim nCount As Integer
    Dim vMemVal As Variant, vNewVal As Variant
    Dim bBoolean As Boolean
    Dim nInteger As Integer
    Dim nLong As Long
    Dim nSingle As Single
    Dim nDouble As Double

    oPropertySetInfo = oObj.GetPropertySetInfo()
    oProperties = oPropertySetInfo.Properties
    nCount = uBound(oProperties)

    nIndex = 0
    nMem = nIndex
    'find at first a Boolean Value, if not available a String Property
    While (NOT bFound) AND (nCount &gt;= nIndex)
        If VarType(oObj.getFastPropertyValue(oProperties(nIndex).Handle)) = 11 Then ' it is a Boolean Proerty
            bFound = true
            nMem = nIndex
        else
            If VarType(oObj.getFastPropertyValue(oProperties(nIndex).Handle)) = 8 Then ' it is a String Property
                nMem = nIndex
            end if
        end if
        nIndex = nIndex + 1
    Wend
    nIndex = nMem
    Out.Log("Property selected: '" + oProperties(nIndex).Name + "'")

    'memory the old Value
    vMemVal = oObj.getFastPropertyValue(oProperties(nIndex).Handle)
    ' change the Value
    select case VarType(oObj.getFastPropertyValue(oProperties(nIndex).Handle)
        case 11 'boolean
            bBoolean = NOT oObj.getFastPropertyValue(oProperties(nIndex).Handle)
            vNewVal = bBoolean
        case 2 'integer
            nInteger = oObj.getFastPropertyValue(oProperties(nIndex).Handle) + 1
            vNewVal = nInteger
        case 3 'long
            nLong = oObj.getFastPropertyValue(oProperties(nIndex).Handle) + 1
            vNewVal = nLong
        case 4 'single
            nSingle = oObj.getFastPropertyValue(oProperties(nIndex).Handle) + 1
            vNewVal = nSingle
        case 5 'double
            nDouble = oObj.getFastPropertyValue(oProperties(nIndex).Handle) + 1
            vNewVal = nDouble
        case 8 'string
          vNewVal = oObj.getPropertyValue(oProperties(nIndex).Name) + cIfcShortName
    end select

    nHandle = oProperties(nIndex).Handle

    Test.StartMethod("getFastPropertyValue()")
    bOK = true
    bOK = bOK AND (vMemVal = oObj.getFastPropertyValue(nHandle))
    Test.MethodTested("getFastPropertyValue()", bOK)

    Test.StartMethod("setFastPropertyValue()")
    bOK = true
    oObj.setFastPropertyValue(nHandle, vNewVal)
    bOK = bOK AND (vMemVal &lt;&gt; oObj.getFastPropertyValue(nHandle))
    Test.MethodTested("setFastPropertyValue()", bOK)


Exit Sub
ErrHndl:
    Test.Exception()
    bOK = false
    resume next
End Sub
</script:module>