| <?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="io_XDataInputStream" script:language="StarBasic"> |
| |
| |
| '************************************************************************* |
| ' |
| ' 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. |
| ' |
| '************************************************************************* |
| |
| |
| |
| |
| |
| |
| |
| Sub RunTest() |
| |
| '************************************************************************* |
| ' INTERFACE: |
| ' com.sun.star.io.XDataInputStream |
| '************************************************************************* |
| On Error Goto ErrHndl |
| Dim bOK As Boolean |
| Dim DataTypes(10) As String |
| Dim Data(10) As Variant |
| Dim oTypeConvertor As Object |
| |
| bOK = true |
| |
| oTypeConvertor = createUnoService("com.sun.star.script.Converter") |
| |
| DataTypes(0) = "byte" |
| Data(0) = 65 |
| DataTypes(1) = "boolean" |
| Data(1) = true |
| DataTypes(2) = "double" |
| Data(2) = 10.567 |
| DataTypes(3) = "long" |
| Data(3) = 12345678 |
| DataTypes(4) = "char" |
| Data(4) = oTypeConvertor.convertToSimpleType(89, com.sun.star.uno.TypeClass.CHAR) |
| DataTypes(5) = "short" |
| Data(5) = 233 |
| DataTypes(6) = "UTF" |
| Data(6) = "UTF String" |
| DataTypes(7) = "float" |
| Data(7) = -233.15 |
| DataTypes(8) = "Hyper" |
| Data(8) = 98765432123456 |
| |
| Out.Log("Writing data first... ") |
| |
| oOutStream = getOutStream() |
| |
| for i = 0 to ubound(Data()) |
| select case DataTypes(i) |
| case "boolean" |
| oOutStream.writeBoolean(Data(i)) |
| case "byte" |
| oOutStream.writeByte(Data(i)) |
| case "char" |
| oOutStream.writeChar(Data(i)) |
| case "short" |
| oOutStream.writeShort(Data(i)) |
| case "long" |
| oOutStream.writeLong(Data(i)) |
| case "Hyper" |
| oOutStream.writeHyper(Data(i)) |
| case "float" |
| oOutStream.writeFloat(Data(i)) |
| case "double" |
| oOutStream.writeDouble(Data(i)) |
| case "UTF" |
| oOutStream.writeUTF(Data(i)) |
| end select |
| next i |
| |
| Out.Log("then reading and comparering... ") |
| |
| ResetStreams() |
| |
| for i = 0 to ubound(Data()) |
| select case DataTypes(i) |
| case "boolean" |
| Dim bVar As Boolean |
| bVar = oObj.readBoolean() |
| Out.Log("Expected boolean '" & Data(i) & "', actual is '" & bVar & "'") |
| bOK = bOK AND Data(i) = bVar |
| Test.MethodTested("readBoolean()", bOK) |
| case "byte" |
| Dim iByteVar As Integer |
| iByteVar = oObj.readByte() |
| Out.Log("Expected byte '" & int(Data(i)) & "', actual is '" & int(iByteVar) & "'") |
| bOK = bOK AND Data(i) = iByteVar |
| Test.MethodTested("readByte()", bOK) |
| case "char" |
| Dim cCharVar As Integer |
| cCharVar = oObj.readChar() |
| Out.Log("Expected char '" & chr(Data(i)) & "', actual is '" & chr(cCharVar) & "'") |
| bOK = bOK AND Data(i) = cCharVar |
| Test.MethodTested("readChar()", bOK) |
| case "short" |
| Dim iShortVar As Integer |
| iShortVar = oObj.readShort() |
| Out.Log("Expected short '" & int(Data(i)) & "', actual is '" & int(iShortVar) & "'") |
| bOK = bOK AND Data(i) = iShortVar |
| Test.MethodTested("readShort()", bOK) |
| case "long" |
| Dim iLongVar As Long |
| iLongVar = oObj.readLong() |
| Out.Log("Expected long '" & Data(i) & "', actual is '" & iLongVar & "'") |
| bOK = bOK AND Data(i) = iLongVar |
| Test.MethodTested("readLong()", bOK) |
| case "Hyper" |
| Dim iHyperVar As Variant |
| iHyperVar = oObj.readHyper() |
| Out.Log("Expected hyper '" & Data(i) & "', actual is '" & iHyperVar & "'") |
| bOK = bOK AND Data(i) = iHyperVar |
| Test.MethodTested("readHyper()", bOK) |
| case "float" |
| Dim dFloatVar As Double |
| dFloatVar = oObj.readFloat() |
| Out.Log("Expected float '" & Data(i) & "', actual is '" & dFloatVar & "'") |
| bOK = bOK AND (abs(Data(i) - dFloatVar) < 0.00001) |
| Test.MethodTested("readFloat()", bOK) |
| case "double" |
| Dim dDoubleVar As Double |
| dDoubleVar = oObj.readDouble() |
| Out.Log("Expected double '" & Data(i) & "', actual is '" & dDoubleVar & "'") |
| bOK = bOK AND Data(i) = dDoubleVar |
| Test.MethodTested("readDouble()", bOK) |
| case "UTF" |
| Dim cUTFVar As String |
| cUTFVar = oObj.readUTF() |
| Out.Log("Expected UTF '" & Data(i) & "', actual is '" & cUTFVar & "'") |
| bOK = bOK AND Data(i) = cUTFVar |
| Test.MethodTested("readUTF()", bOK) |
| end select |
| next i |
| |
| ResetStreams() |
| Exit Sub |
| ErrHndl: |
| Test.Exception() |
| bOK = false |
| resume next |
| End Sub |
| </script:module> |