1ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5ef39d40dSAndrew Rist  * distributed with this work for additional information
6ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10ef39d40dSAndrew Rist  *
11ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12ef39d40dSAndrew Rist  *
13ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18ef39d40dSAndrew Rist  * under the License.
19ef39d40dSAndrew Rist  *
20ef39d40dSAndrew Rist  *************************************************************/
21ef39d40dSAndrew Rist 
22ef39d40dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package ifc.io;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import lib.MultiMethodTest;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir import com.sun.star.io.XActiveDataSink;
29cdf0e10cSrcweir import com.sun.star.io.XInputStream;
30cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
31cdf0e10cSrcweir import com.sun.star.uno.XInterface;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir /**
34cdf0e10cSrcweir * Testing <code>com.sun.star.io.XActiveDataSink</code>
35cdf0e10cSrcweir * interface methods :
36cdf0e10cSrcweir * <ul>
37cdf0e10cSrcweir *  <li><code> setInputStream()</code></li>
38cdf0e10cSrcweir *  <li><code> getInputStream()</code></li>
39cdf0e10cSrcweir * </ul> <p>
40cdf0e10cSrcweir * Test is <b> NOT </b> multithread compilant. <p>
41cdf0e10cSrcweir *
42cdf0e10cSrcweir * This test needs the following object relations :
43cdf0e10cSrcweir * <ul>
44cdf0e10cSrcweir *  <li> <code>'InputStream'</code>
45cdf0e10cSrcweir *  (of type <code>com.sun.star.io.XInputStream</code>):
46cdf0e10cSrcweir *   acceptable input stream which can be set by <code>setInputStream</code> </li>
47cdf0e10cSrcweir * <ul> <p>
48cdf0e10cSrcweir *
49cdf0e10cSrcweir * After test completion object environment has to be recreated.
50cdf0e10cSrcweir * @see com.sun.star.io.XActiveDataSink
51cdf0e10cSrcweir */
52cdf0e10cSrcweir public class _XActiveDataSink extends MultiMethodTest {
53cdf0e10cSrcweir 
54cdf0e10cSrcweir     public XActiveDataSink oObj = null;
55cdf0e10cSrcweir 
56cdf0e10cSrcweir     private XInputStream iStream = null;
57cdf0e10cSrcweir 
58cdf0e10cSrcweir         /**
59cdf0e10cSrcweir         * Take the XInputStream from the environment for setting and getting
60cdf0e10cSrcweir     */
before()61cdf0e10cSrcweir     public void before() {
62cdf0e10cSrcweir             XInterface x = (XInterface)tEnv.getObjRelation("InputStream");
63cdf0e10cSrcweir             iStream = (XInputStream) UnoRuntime.queryInterface
64cdf0e10cSrcweir                     (XInputStream.class, x) ;
65cdf0e10cSrcweir     }
66cdf0e10cSrcweir 
67cdf0e10cSrcweir     /**
68cdf0e10cSrcweir     * Just sets new input stream. <p>
69*bb6af6bcSPedro Giffuni     * Has <b>OK</b> status if no runtime exceptions occurred.
70cdf0e10cSrcweir     */
_setInputStream()71cdf0e10cSrcweir     public void _setInputStream() {
72cdf0e10cSrcweir         oObj.setInputStream(iStream) ;
73cdf0e10cSrcweir 
74cdf0e10cSrcweir         tRes.tested("setInputStream()", true) ;
75cdf0e10cSrcweir     }
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     /**
78cdf0e10cSrcweir     * First retrieves current input stream, then sets to new
79cdf0e10cSrcweir     * input stream (if old was <code>null</code>) or to null.
80cdf0e10cSrcweir     * Then input stream retrieved again and checked to be not
81cdf0e10cSrcweir     * equal to the old one. <p>
82cdf0e10cSrcweir     * Has <b>OK</b> status if old and new streams retrieved are
83cdf0e10cSrcweir     * not equal. <p>
84cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
85cdf0e10cSrcweir     * <ul>
86cdf0e10cSrcweir     *  <li> <code> setInputStream() </code> : to be sure the method
87cdf0e10cSrcweir     *   works without exceptions. </li>
88cdf0e10cSrcweir     * </ul>
89cdf0e10cSrcweir     */
_getInputStream()90cdf0e10cSrcweir     public void _getInputStream() {
91cdf0e10cSrcweir         requiredMethod("setInputStream()") ;
92cdf0e10cSrcweir 
93cdf0e10cSrcweir         Object oldStream = oObj.getInputStream() ;
94cdf0e10cSrcweir         XInputStream newStream = oldStream == null ? iStream : null ;
95cdf0e10cSrcweir 
96cdf0e10cSrcweir         oObj.setInputStream(newStream) ;
97cdf0e10cSrcweir         Object getStream = oObj.getInputStream() ;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir                 tRes.tested("getInputStream()", getStream != oldStream) ;
100cdf0e10cSrcweir     }
101cdf0e10cSrcweir 
after()102cdf0e10cSrcweir     public void after() {
103cdf0e10cSrcweir         this.disposeEnvironment() ;
104cdf0e10cSrcweir     }
105cdf0e10cSrcweir }
106cdf0e10cSrcweir 
107cdf0e10cSrcweir 
108