1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?>
2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="io_XActiveDataSink" script:language="StarBasic">
4cdf0e10cSrcweir
5cdf0e10cSrcweir
6cdf0e10cSrcweir'*************************************************************************
7cdf0e10cSrcweir'
8*3e6afcd2SAndrew Rist'  Licensed to the Apache Software Foundation (ASF) under one
9*3e6afcd2SAndrew Rist'  or more contributor license agreements.  See the NOTICE file
10*3e6afcd2SAndrew Rist'  distributed with this work for additional information
11*3e6afcd2SAndrew Rist'  regarding copyright ownership.  The ASF licenses this file
12*3e6afcd2SAndrew Rist'  to you under the Apache License, Version 2.0 (the
13*3e6afcd2SAndrew Rist'  "License"); you may not use this file except in compliance
14*3e6afcd2SAndrew Rist'  with the License.  You may obtain a copy of the License at
15*3e6afcd2SAndrew Rist'
16*3e6afcd2SAndrew Rist'    http://www.apache.org/licenses/LICENSE-2.0
17*3e6afcd2SAndrew Rist'
18*3e6afcd2SAndrew Rist'  Unless required by applicable law or agreed to in writing,
19*3e6afcd2SAndrew Rist'  software distributed under the License is distributed on an
20*3e6afcd2SAndrew Rist'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21*3e6afcd2SAndrew Rist'  KIND, either express or implied.  See the License for the
22*3e6afcd2SAndrew Rist'  specific language governing permissions and limitations
23*3e6afcd2SAndrew Rist'  under the License.
24cdf0e10cSrcweir'
25cdf0e10cSrcweir'*************************************************************************
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir
29*3e6afcd2SAndrew Rist
30*3e6afcd2SAndrew Rist
31cdf0e10cSrcweir' Be sure that all variables are dimensioned:
32cdf0e10cSrcweiroption explicit
33cdf0e10cSrcweir
34cdf0e10cSrcweir
35cdf0e10cSrcweir
36cdf0e10cSrcweirSub RunTest()
37cdf0e10cSrcweir
38cdf0e10cSrcweir'*************************************************************************
39cdf0e10cSrcweir' INTERFACE:
40cdf0e10cSrcweir' com.sun.star.io.XActiveDataSink
41cdf0e10cSrcweir'*************************************************************************
42cdf0e10cSrcweirOn Error Goto ErrHndl
43cdf0e10cSrcweir    Dim bOK As Boolean
44cdf0e10cSrcweir    Dim oIS As Object, oPipe As Object, oGetPipe As Object
45cdf0e10cSrcweir    Dim aData As Variant, aGetData As Variant
46cdf0e10cSrcweir    Dim bytesRead As Variant
47cdf0e10cSrcweir
48cdf0e10cSrcweir    ResetStreams()
49cdf0e10cSrcweir    Test.StartMethod("getInputStream()")
50cdf0e10cSrcweir    bOK = true
51cdf0e10cSrcweir    oIS = oObj.getInputStream()
52cdf0e10cSrcweir    bOK = bOK AND hasUnoInterfaces(oIS, "com.sun.star.io.XInputStream")
53cdf0e10cSrcweir    Test.MethodTested("getInputStream()", bOK)
54cdf0e10cSrcweir
55cdf0e10cSrcweir    Test.StartMethod("setInputStream()")
56cdf0e10cSrcweir    bOK = true
57cdf0e10cSrcweir    oPipe = createUnoService("com.sun.star.io.Pipe")
58cdf0e10cSrcweir    aData = Array(23, 65, 32, 119)
59cdf0e10cSrcweir    oPipe.writeBytes(aData)
60cdf0e10cSrcweir    oObj.setInputStream(oPipe)
61cdf0e10cSrcweir    oGetPipe = oObj.getInputStream()
62cdf0e10cSrcweir    aGetData = dimArray(ubound(aData())
63cdf0e10cSrcweir    bytesRead = oGetPipe.readBytes(aGetData(), ubound(aData()) + 1)
64cdf0e10cSrcweir    Out.Log("Reading bytes: " + bytesRead)
65cdf0e10cSrcweir
66cdf0e10cSrcweir    bOK = bOK AND cmpArrays(aData, aGetData)
67cdf0e10cSrcweir
68cdf0e10cSrcweir    Out.Log("Setting old input stream ...")
69cdf0e10cSrcweir    oObj.setInputStream(oIS)
70cdf0e10cSrcweir
71cdf0e10cSrcweir    Test.MethodTested("setInputStream()", bOK)
72cdf0e10cSrcweirExit Sub
73cdf0e10cSrcweirErrHndl:
74cdf0e10cSrcweir    Test.Exception()
75cdf0e10cSrcweir    bOK = false
76cdf0e10cSrcweir    resume next
77cdf0e10cSrcweirEnd Sub
78cdf0e10cSrcweir
79cdf0e10cSrcweirFunction cmpArrays(arr1 As Variant, arr2 As Variant) As Boolean
80cdf0e10cSrcweirOn Error Goto ErrHndl
81cdf0e10cSrcweir    Dim bRet As Boolean
82cdf0e10cSrcweir    Dim i As Integer
83cdf0e10cSrcweir
84cdf0e10cSrcweir    bRet = true
85cdf0e10cSrcweir    if (isNull(arr1) OR isNull(arr2)) then
86cdf0e10cSrcweir        bRet = false
87cdf0e10cSrcweir        Out.Log("One of arrays is null")
88cdf0e10cSrcweir    else
89cdf0e10cSrcweir        if (ubound(arr1()) &lt;&gt; ubound(arr2())) then
90cdf0e10cSrcweir            Out.Log("UBOUND of 1st array is " + ubound(arr1()) + _
91cdf0e10cSrcweir                "UBOUND of 2nd array is " + ubound(arr2()))
92cdf0e10cSrcweir            bRet = false
93cdf0e10cSrcweir        else
94cdf0e10cSrcweir            for i = 0 to ubound(arr1())
95cdf0e10cSrcweir                Out.Log("(" + i + "): " + arr1(i) + "-" + arr2(i))
96cdf0e10cSrcweir                bRet = bRet AND (arr1(i) = arr2(i))
97cdf0e10cSrcweir            next i
98cdf0e10cSrcweir        end if
99cdf0e10cSrcweir    end if
100cdf0e10cSrcweir
101cdf0e10cSrcweir    cmpArrays() = bRet
102cdf0e10cSrcweirexit Function
103cdf0e10cSrcweirErrHndl:
104cdf0e10cSrcweir    Test.Exception()
105cdf0e10cSrcweir    cmpArrays() = false
106cdf0e10cSrcweirEnd Function
107cdf0e10cSrcweir</script:module>
108