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.sheet;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import java.util.Random;
27cdf0e10cSrcweir import java.util.StringTokenizer;
28cdf0e10cSrcweir 
29cdf0e10cSrcweir import lib.MultiMethodTest;
30cdf0e10cSrcweir 
31cdf0e10cSrcweir import com.sun.star.sheet.NamedRangeFlag;
32cdf0e10cSrcweir import com.sun.star.sheet.XNamedRange;
33cdf0e10cSrcweir import com.sun.star.table.CellAddress;
34cdf0e10cSrcweir 
35cdf0e10cSrcweir /**
36cdf0e10cSrcweir * Testing <code>com.sun.star.sheet.XNamedRange</code>
37cdf0e10cSrcweir * interface methods :
38cdf0e10cSrcweir * <ul>
39cdf0e10cSrcweir *  <li><code> getContent()</code></li>
40cdf0e10cSrcweir *  <li><code> setContent()</code></li>
41cdf0e10cSrcweir *  <li><code> getReferencePosition()</code></li>
42cdf0e10cSrcweir *  <li><code> setReferencePosition()</code></li>
43cdf0e10cSrcweir *  <li><code> getType()</code></li>
44cdf0e10cSrcweir *  <li><code> setType()</code></li>
45cdf0e10cSrcweir * </ul> <p>
46cdf0e10cSrcweir * After test completion object environment has to be recreated.
47cdf0e10cSrcweir * @see com.sun.star.sheet.XNamedRange
48cdf0e10cSrcweir */
49cdf0e10cSrcweir public class _XNamedRange extends MultiMethodTest {
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     public XNamedRange oObj = null;
52cdf0e10cSrcweir     String sContent = "";
53cdf0e10cSrcweir     int type = 0;
54cdf0e10cSrcweir     CellAddress CA = null;
55cdf0e10cSrcweir 
56cdf0e10cSrcweir     /**
57cdf0e10cSrcweir     * Test calls the method and compares returned value to value that was set
58cdf0e10cSrcweir     * by method <code>setContent()</code>. <p>
59cdf0e10cSrcweir     * Has <b> OK </b> status if values are equal. <p>
60cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
61cdf0e10cSrcweir     * <ul>
62cdf0e10cSrcweir     *  <li> <code> setContent() </code> : to have current content </li>
63cdf0e10cSrcweir     * </ul>
64cdf0e10cSrcweir     */
_getContent()65cdf0e10cSrcweir     public void _getContent() {
66cdf0e10cSrcweir         requiredMethod("setContent()");
67cdf0e10cSrcweir         String content = oObj.getContent();
68cdf0e10cSrcweir         log.println("Returned content is \"" + content + "\"");
69cdf0e10cSrcweir         boolean bResult = content.equals(sContent);
70cdf0e10cSrcweir         tRes.tested("getContent()", bResult);
71cdf0e10cSrcweir     }
72cdf0e10cSrcweir 
73cdf0e10cSrcweir     /**
74cdf0e10cSrcweir     * Test creates and stores random content and calls the method. <p>
75cdf0e10cSrcweir     * Has <b> OK </b> status if the method successfully returns. <p>
76cdf0e10cSrcweir     */
_setContent()77cdf0e10cSrcweir     public void _setContent() {
78cdf0e10cSrcweir         sContent = getRandomContent("A1;A4:C5;=B2");
79cdf0e10cSrcweir         log.println("Set content to \"" + sContent + "\"");
80cdf0e10cSrcweir         oObj.setContent(sContent);
81cdf0e10cSrcweir 
82cdf0e10cSrcweir         tRes.tested("setContent()", true);
83cdf0e10cSrcweir     }
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     /**
86cdf0e10cSrcweir     * Test calls the method and compares returned value to value that was set
87cdf0e10cSrcweir     * by method <code>setType()</code>. <p>
88cdf0e10cSrcweir     * Has <b> OK </b> status if values are equal. <p>
89cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
90cdf0e10cSrcweir     * <ul>
91cdf0e10cSrcweir     *  <li> <code> setType() </code> : to have current type </li>
92cdf0e10cSrcweir     * </ul>
93cdf0e10cSrcweir     */
_getType()94cdf0e10cSrcweir     public void _getType() {
95cdf0e10cSrcweir         requiredMethod("setType()");
96cdf0e10cSrcweir 
97cdf0e10cSrcweir         int rtype = oObj.getType();
98cdf0e10cSrcweir         log.println("Returned type is " + rtype);
99cdf0e10cSrcweir 
100cdf0e10cSrcweir         tRes.tested("getType()", type == rtype);
101cdf0e10cSrcweir     }
102cdf0e10cSrcweir 
103cdf0e10cSrcweir     /**
104cdf0e10cSrcweir     * Test sets random type and stores it. <p>
105cdf0e10cSrcweir     * Has <b> OK </b> status if the method successfully returns. <p>
106cdf0e10cSrcweir     */
_setType()107cdf0e10cSrcweir     public void _setType() {
108cdf0e10cSrcweir         /*
109cdf0e10cSrcweir          * The type must be 0 or a combination of the NamedRangeFlag
110cdf0e10cSrcweir          * constants and controls if the named range is listed in
111cdf0e10cSrcweir          * dialogs prompting for special ranges
112cdf0e10cSrcweir          *
113cdf0e10cSrcweir          * NamedRangeFlag:    COLUMN_HEADER
114cdf0e10cSrcweir          *                  FILTER_CRITERIA
115cdf0e10cSrcweir          *                  PRINT_AREA
116cdf0e10cSrcweir          *                  ROW_HEADER
117cdf0e10cSrcweir          *
118cdf0e10cSrcweir          */
119cdf0e10cSrcweir         boolean bResult = true;
120cdf0e10cSrcweir         int types[] = { 0,
121cdf0e10cSrcweir                         NamedRangeFlag.COLUMN_HEADER,
122cdf0e10cSrcweir                         NamedRangeFlag.FILTER_CRITERIA,
123cdf0e10cSrcweir                         NamedRangeFlag.PRINT_AREA,
124cdf0e10cSrcweir                         NamedRangeFlag.ROW_HEADER
125cdf0e10cSrcweir                       };
126cdf0e10cSrcweir 
127cdf0e10cSrcweir         Random rnd = new Random();
128cdf0e10cSrcweir         type = types[rnd.nextInt(5)];
129cdf0e10cSrcweir 
130cdf0e10cSrcweir         oObj.setType(type);
131cdf0e10cSrcweir         log.println("The type was set to " + type);
132cdf0e10cSrcweir 
133cdf0e10cSrcweir         tRes.tested("setType()", bResult);
134cdf0e10cSrcweir     }
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     /**
137cdf0e10cSrcweir     * Test calls the method and compares returned value to value that was set
138cdf0e10cSrcweir     * by method <code>setReferencePosition()</code>. <p>
139cdf0e10cSrcweir     * Has <b> OK </b> status if all fields of values are equal. <p>
140cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
141cdf0e10cSrcweir     * <ul>
142cdf0e10cSrcweir     *  <li> <code> setReferencePosition() </code> : to have current reference
143cdf0e10cSrcweir     *  position </li>
144cdf0e10cSrcweir     * </ul>
145cdf0e10cSrcweir     */
_getReferencePosition()146cdf0e10cSrcweir     public void _getReferencePosition() {
147cdf0e10cSrcweir         requiredMethod("setReferencePosition()");
148cdf0e10cSrcweir 
149cdf0e10cSrcweir         CellAddress rCA = oObj.getReferencePosition();
150cdf0e10cSrcweir         log.println("getReferencePosition returned (" +
151cdf0e10cSrcweir             rCA.Sheet + ", " +
152cdf0e10cSrcweir             rCA.Column + ", " + rCA.Row + ")" );
153cdf0e10cSrcweir 
154cdf0e10cSrcweir         boolean bResult = rCA.Sheet == CA.Sheet;
155cdf0e10cSrcweir         bResult &= rCA.Column == CA.Column;
156cdf0e10cSrcweir         bResult &= rCA.Row == CA.Row;
157cdf0e10cSrcweir 
158cdf0e10cSrcweir         tRes.tested("getReferencePosition()", bResult);
159cdf0e10cSrcweir     }
160cdf0e10cSrcweir 
161cdf0e10cSrcweir     /**
162cdf0e10cSrcweir     * Test creates and stores cell address and calls the method. <p>
163cdf0e10cSrcweir     * Has <b> OK </b> status if the method successfully returns. <p>
164cdf0e10cSrcweir     */
_setReferencePosition()165cdf0e10cSrcweir     public void _setReferencePosition() {
166cdf0e10cSrcweir         CA = new CellAddress((short)0, 2, 3);
167cdf0e10cSrcweir         oObj.setReferencePosition(CA);
168cdf0e10cSrcweir         log.println("ReferencePosition was set to (" +
169cdf0e10cSrcweir             CA.Sheet + ", " +
170cdf0e10cSrcweir             CA.Column + ", " + CA.Row + ")");
171cdf0e10cSrcweir 
172cdf0e10cSrcweir         tRes.tested("setReferencePosition()", true);
173cdf0e10cSrcweir     }
174cdf0e10cSrcweir 
175cdf0e10cSrcweir 
176cdf0e10cSrcweir     /**
177cdf0e10cSrcweir     * Method make string of random content.
178cdf0e10cSrcweir     * @return string of random content
179cdf0e10cSrcweir     */
getRandomContent(String str)180cdf0e10cSrcweir     String getRandomContent(String str) {
181cdf0e10cSrcweir 
182cdf0e10cSrcweir         String gRS = "none";
183cdf0e10cSrcweir         Random rnd = new Random();
184cdf0e10cSrcweir 
185cdf0e10cSrcweir         StringTokenizer ST = new StringTokenizer(str, ";");
186cdf0e10cSrcweir         int nr = rnd.nextInt(ST.countTokens());
187cdf0e10cSrcweir         if (nr < 1) nr++;
188cdf0e10cSrcweir 
189cdf0e10cSrcweir         for (int i = 1; i < nr + 1; i++)
190cdf0e10cSrcweir             gRS = ST.nextToken();
191cdf0e10cSrcweir 
192cdf0e10cSrcweir         return gRS;
193cdf0e10cSrcweir 
194cdf0e10cSrcweir     }
195cdf0e10cSrcweir 
196cdf0e10cSrcweir     /**
197cdf0e10cSrcweir     * Forces object environment recreation.
198cdf0e10cSrcweir     */
after()199cdf0e10cSrcweir     protected void after() {
200cdf0e10cSrcweir         disposeEnvironment();
201cdf0e10cSrcweir     }
202cdf0e10cSrcweir 
203cdf0e10cSrcweir }
204cdf0e10cSrcweir 
205cdf0e10cSrcweir 
206