1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="io_XInputStream" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9'
10' Copyright 2000, 2010 Oracle and/or its affiliates.
11'
12' OpenOffice.org - a multi-platform office productivity suite
13'
14' This file is part of OpenOffice.org.
15'
16' OpenOffice.org is free software: you can redistribute it and/or modify
17' it under the terms of the GNU Lesser General Public License version 3
18' only, as published by the Free Software Foundation.
19'
20' OpenOffice.org is distributed in the hope that it will be useful,
21' but WITHOUT ANY WARRANTY; without even the implied warranty of
22' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23' GNU Lesser General Public License version 3 for more details
24' (a copy is included in the LICENSE file that accompanied this code).
25'
26' You should have received a copy of the GNU Lesser General Public License
27' version 3 along with OpenOffice.org.  If not, see
28' <http://www.openoffice.org/license.html>
29' for a copy of the LGPLv3 License.
30'
31'*************************************************************************
32'*************************************************************************
33
34
35
36
37
38Sub RunTest()
39
40'*************************************************************************
41' INTERFACE:
42' com.sun.star.io.XInputStream
43'*************************************************************************
44On Error Goto ErrHndl
45    Dim bOK As Boolean
46    Dim Bytes(10) As Integer
47    Dim rBytes(10) As Integer
48    Dim oOutputStream As Object
49    Dim i As Integer
50    Dim nRead As Integer
51
52    Out.Log("First writeBytes()...")
53    bOK = true
54
55    for i = 0 to ubound(Bytes())
56        Bytes(i) = i
57    next i
58
59    oOutputStream = getOutStream()
60    oOutputStream.writeBytes(Bytes())
61
62    if (cObjectName &lt;&gt; "stm.Pipe") then ResetStreams()
63
64    Test.StartMethod("readBytes()")
65    bOK = true
66    nRead = oObj.readBytes(Bytes(), 5)
67    bOK = bOK AND nRead = 5
68    for i = 0 to 4
69        Out.Log("Expected " &amp; i &amp; ", actual is " &amp; int(Bytes(i)))
70        bOK = bOK AND Bytes(i) = i
71    next i
72    Test.MethodTested("readBytes()", bOK)
73
74    Test.StartMethod("skipBytes()")
75    bOK = true
76    oObj.skipBytes(2)
77    nRead = oObj.readBytes(Bytes(), 2)
78    Out.Log("Expected " &amp; 7 &amp; ", actual is " &amp; int(Bytes(0)))
79    bOK = bOK AND Bytes(0) = 7
80    Test.MethodTested("skipBytes()", bOK)
81
82    Test.StartMethod("available()")
83    bOK = true
84    iAvail = oObj.available()
85    Out.Log("bytes available without blocking: " &amp; iAvail)
86    bOK = bOK AND iAvail &gt;= 0
87    Test.MethodTested("available()", bOK)
88
89    Test.StartMethod("readSomeBytes()")
90    bOK = true
91    nRead = oObj.readSomeBytes(Bytes(), 10)
92    Out.Log("Can read " &amp; nRead &amp; " bytes.")
93    for i = 0 to ubound(Bytes())
94        Out.Log(int(Bytes(i)))
95    next i
96    bOK = bOK AND ubound(Bytes()) = 1
97    bOK = bOK AND nRead = 2
98    bOK = bOK AND Bytes(0) = 9
99    bOK = bOK AND Bytes(1) = 10
100    Test.MethodTested("readSomeBytes()", bOK)
101
102    Test.StartMethod("closeInput()")
103    bOK = true
104    Out.Log("This method is called in main module.")
105    Test.MethodTested("closeInput()", bOK)
106
107    ResetStreams()
108
109Exit Sub
110ErrHndl:
111    Test.Exception()
112    bOK = false
113    resume next
114End Sub
115</script:module>
116