1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 package ifc.io;
25 
26 import lib.MultiMethodTest;
27 
28 import com.sun.star.io.XMarkableStream;
29 
30 /**
31 * Testing <code>com.sun.star.io.XMarkableStream</code>
32 * interface methods:
33 * <ul>
34 *   <li><code>createMark()</code></li>
35 *   <li><code>deleteMark()</code></li>
36 *   <li><code>jumpToFurthest()</code></li>
37 *   <li><code>jumpToMark()</code></li>
38 *   <li><code>offsetToMark()</code></li>
39 * </ul> <p>
40 * @see com.sun.star.io.XMarkableStream
41 */
42 public class _XMarkableStream extends MultiMethodTest {
43 
44     public XMarkableStream oObj = null;
45     private int mark = -1 ;
46 
47     /**
48     * Test creates mark and stores it. <p>
49     * Has <b> OK </b> status if no exceptions were thrown
50     * and returned isn't less than zero. <p>
51     */
52     public void _createMark() {
53         boolean res;
54         try {
55             mark = oObj.createMark() ;
56             res = mark >= 0;
57         } catch (com.sun.star.io.IOException e) {
58             log.println("Couldn't create mark");
59             e.printStackTrace(log);
60             res = false;
61         }
62 
63         tRes.tested("createMark()", res);
64     }
65 
66     /**
67     * Test deletes the mark that was created by method <code>createMark()
68     * </code>.<p>
69     * Has <b> OK </b> status if the method successfully returns
70     * and no exceptions were thrown. <p>
71     * The following method tests are to be completed successfully before :
72     * <ul>
73     *  <li> <code> createMark() </code> : to have mark </li>
74     * </ul>
75     * The following method tests are to be executed before :
76     * <ul>
77     *  <li> <code> jumpToFurthest() </code></li>
78     *  <li> <code> jumpToMark() </code></li>
79     *  <li> <code> offsetToMark() </code></li>
80     * </ul>
81     */
82     public void _deleteMark() {
83         requiredMethod("createMark()") ;
84 
85         executeMethod("jumpToFurthest()") ;
86         executeMethod("jumpToMark()") ;
87         executeMethod("offsetToMark()") ;
88 
89         boolean res;
90         try {
91             oObj.deleteMark(mark);
92             res = true;
93         } catch(com.sun.star.io.IOException e) {
94             log.println("Couldn't delete mark");
95             e.printStackTrace(log);
96             res = false;
97         } catch(com.sun.star.lang.IllegalArgumentException e) {
98             log.println("Couldn't delete mark");
99             e.printStackTrace(log);
100             res = false;
101         }
102 
103         tRes.tested("deleteMark()", res) ;
104     }
105 
106     /**
107     * Test calls the method. <p>
108     * Has <b> OK </b> status if the method successfully returns
109     * and no exceptions were thrown. <p>
110     * The following method tests are to be completed successfully before :
111     * <ul>
112     *  <li> <code> createMark() </code></li>
113     * </ul>
114     */
115     public void _jumpToFurthest() {
116         requiredMethod("createMark()") ;
117 
118         boolean res;
119         try {
120             oObj.jumpToFurthest() ;
121             res = true;
122         } catch (com.sun.star.io.IOException e) {
123             log.println("Couldn't jump to furthest");
124             e.printStackTrace(log);
125             res = false;
126         }
127 
128         tRes.tested("jumpToFurthest()", res) ;
129     }
130 
131     /**
132     * Test jumps to mark that was created by method <code>createMark()</code>.
133     * <p>Has <b> OK </b> status if the method successfully returns
134     * and no exceptions were thrown. <p>
135     * The following method tests are to be completed successfully before :
136     * <ul>
137     *  <li> <code> jumpToFurthest() </code> : for the right order of tests
138     *  excecution </li>
139     * </ul>
140     */
141     public void _jumpToMark() {
142         requiredMethod("jumpToFurthest()") ;
143         boolean res;
144 
145         try {
146             oObj.jumpToMark(mark) ;
147             res = true;
148         } catch(com.sun.star.lang.IllegalArgumentException e) {
149             log.println("Couldn't jump to mark");
150             e.printStackTrace(log);
151             res = false;
152         } catch(com.sun.star.io.IOException e) {
153             log.println("Couldn't jump to mark");
154             e.printStackTrace(log);
155             res = false;
156         }
157 
158         tRes.tested("jumpToMark()", res) ;
159     }
160 
161     /**
162     * Test obtains offset to mark that was created by
163     * method <code>createMark()</code> and checks returned value.<p>
164     * Has <b> OK </b> status if returned value is equal to zero
165     * and no exceptions were thrown. <p>
166     * The following method tests are to be completed successfully before :
167     * <ul>
168     *  <li> <code> jumpToMark() </code> : to have current position at
169     *  the mark position </li>
170     * </ul>
171     */
172     public void _offsetToMark() {
173 
174         requiredMethod("jumpToMark()") ;
175 
176         boolean res;
177         try {
178             int offset = oObj.offsetToMark(mark);
179             res = offset == 0;
180         } catch(com.sun.star.lang.IllegalArgumentException e) {
181             log.println("Couldn't get offser to mark");
182             e.printStackTrace(log);
183             res = false;
184         } catch(com.sun.star.io.IOException e) {
185             log.println("Couldn't get offser to mark");
186             e.printStackTrace(log);
187             res = false;
188         }
189 
190         tRes.tested("offsetToMark()", res);
191     }
192 }
193 
194