xref: /trunk/test/testuno/source/api/i18n/XCalendarTest.java (revision de76a5ada4912555267334a137577732392f43a0)
1*de76a5adSDamjan Jovanovic /**************************************************************
2*de76a5adSDamjan Jovanovic  *
3*de76a5adSDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*de76a5adSDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*de76a5adSDamjan Jovanovic  * distributed with this work for additional information
6*de76a5adSDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*de76a5adSDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*de76a5adSDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*de76a5adSDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*de76a5adSDamjan Jovanovic  *
11*de76a5adSDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*de76a5adSDamjan Jovanovic  *
13*de76a5adSDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*de76a5adSDamjan Jovanovic  * software distributed under the License is distributed on an
15*de76a5adSDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*de76a5adSDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*de76a5adSDamjan Jovanovic  * specific language governing permissions and limitations
18*de76a5adSDamjan Jovanovic  * under the License.
19*de76a5adSDamjan Jovanovic  *
20*de76a5adSDamjan Jovanovic  *************************************************************/
21*de76a5adSDamjan Jovanovic 
22*de76a5adSDamjan Jovanovic 
23*de76a5adSDamjan Jovanovic 
24*de76a5adSDamjan Jovanovic package ifc.i18n;
25*de76a5adSDamjan Jovanovic 
26*de76a5adSDamjan Jovanovic import lib.MultiMethodTest;
27*de76a5adSDamjan Jovanovic 
28*de76a5adSDamjan Jovanovic import com.sun.star.i18n.CalendarDisplayIndex;
29*de76a5adSDamjan Jovanovic import com.sun.star.i18n.CalendarFieldIndex;
30*de76a5adSDamjan Jovanovic import com.sun.star.i18n.CalendarItem;
31*de76a5adSDamjan Jovanovic import com.sun.star.i18n.XCalendar;
32*de76a5adSDamjan Jovanovic import com.sun.star.i18n.XLocaleData;
33*de76a5adSDamjan Jovanovic import com.sun.star.lang.Locale;
34*de76a5adSDamjan Jovanovic import com.sun.star.lang.XMultiServiceFactory;
35*de76a5adSDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
36*de76a5adSDamjan Jovanovic 
37*de76a5adSDamjan Jovanovic /**
38*de76a5adSDamjan Jovanovic * Testing <code>com.sun.star.i18n.XCalendar</code>
39*de76a5adSDamjan Jovanovic * interface methods :
40*de76a5adSDamjan Jovanovic * <ul>
41*de76a5adSDamjan Jovanovic *  <li><code> loadDefaultCalendar()</code></li>
42*de76a5adSDamjan Jovanovic *  <li><code> loadCalendar()</code></li>
43*de76a5adSDamjan Jovanovic *  <li><code> getLoadedCalendar()</code></li>
44*de76a5adSDamjan Jovanovic *  <li><code> getAllCalendars()</code></li>
45*de76a5adSDamjan Jovanovic *  <li><code> getUniqueID()</code></li>
46*de76a5adSDamjan Jovanovic *  <li><code> setDateTime()</code></li>
47*de76a5adSDamjan Jovanovic *  <li><code> getDateTime()</code></li>
48*de76a5adSDamjan Jovanovic *  <li><code> setValue()</code></li>
49*de76a5adSDamjan Jovanovic *  <li><code> getValue()</code></li>
50*de76a5adSDamjan Jovanovic *  <li><code> isValid()</code></li>
51*de76a5adSDamjan Jovanovic *  <li><code> addValue()</code></li>
52*de76a5adSDamjan Jovanovic *  <li><code> getFirstDayOfWeek()</code></li>
53*de76a5adSDamjan Jovanovic *  <li><code> setFirstDayOfWeek()</code></li>
54*de76a5adSDamjan Jovanovic *  <li><code> setMinimumNumberOfDaysForFirstWeek()</code></li>
55*de76a5adSDamjan Jovanovic *  <li><code> getMinimumNumberOfDaysForFirstWeek()</code></li>
56*de76a5adSDamjan Jovanovic *  <li><code> getNumberOfMonthsInYear()</code></li>
57*de76a5adSDamjan Jovanovic *  <li><code> getNumberOfDaysInWeek()</code></li>
58*de76a5adSDamjan Jovanovic *  <li><code> getMonths()</code></li>
59*de76a5adSDamjan Jovanovic *  <li><code> getDays()</code></li>
60*de76a5adSDamjan Jovanovic *  <li><code> getDisplayName()</code></li>
61*de76a5adSDamjan Jovanovic * </ul> <p>
62*de76a5adSDamjan Jovanovic * Test is <b> NOT </b> multithread compliant. <p>
63*de76a5adSDamjan Jovanovic * @see com.sun.star.i18n.XCalendar
64*de76a5adSDamjan Jovanovic */
65*de76a5adSDamjan Jovanovic public class _XCalendar extends MultiMethodTest {
66*de76a5adSDamjan Jovanovic     private boolean debug = false;
67*de76a5adSDamjan Jovanovic     public XCalendar oObj = null;
68*de76a5adSDamjan Jovanovic     public String[][] calendars;
69*de76a5adSDamjan Jovanovic     public int[] count;
70*de76a5adSDamjan Jovanovic     public double newDTime = 1000.75;
71*de76a5adSDamjan Jovanovic     public short newValue = 2;
72*de76a5adSDamjan Jovanovic     public short firstDay = 2;
73*de76a5adSDamjan Jovanovic     public short mdfw = 3;
74*de76a5adSDamjan Jovanovic     double aOriginalDTime = 0;
75*de76a5adSDamjan Jovanovic     Locale[] installed_locales;
76*de76a5adSDamjan Jovanovic 
77*de76a5adSDamjan Jovanovic     public void before() {
78*de76a5adSDamjan Jovanovic         XLocaleData locData = null;
79*de76a5adSDamjan Jovanovic         try {
80*de76a5adSDamjan Jovanovic             locData = (XLocaleData) UnoRuntime.queryInterface(
81*de76a5adSDamjan Jovanovic                 XLocaleData.class,
82*de76a5adSDamjan Jovanovic                     ((XMultiServiceFactory)tParam.getMSF()).createInstance(
83*de76a5adSDamjan Jovanovic                     "com.sun.star.i18n.LocaleData"));
84*de76a5adSDamjan Jovanovic         } catch (com.sun.star.uno.Exception e) {
85*de76a5adSDamjan Jovanovic 
86*de76a5adSDamjan Jovanovic         }
87*de76a5adSDamjan Jovanovic         installed_locales = locData.getAllInstalledLocaleNames();
88*de76a5adSDamjan Jovanovic         calendars = new String[installed_locales.length][];
89*de76a5adSDamjan Jovanovic         count = new int[installed_locales.length];
90*de76a5adSDamjan Jovanovic         oObj.loadDefaultCalendar(installed_locales[0]);
91*de76a5adSDamjan Jovanovic         aOriginalDTime = oObj.getDateTime();
92*de76a5adSDamjan Jovanovic 
93*de76a5adSDamjan Jovanovic         debug = tParam.getBool("DebugIsActive");
94*de76a5adSDamjan Jovanovic     }
95*de76a5adSDamjan Jovanovic 
96*de76a5adSDamjan Jovanovic     /**
97*de76a5adSDamjan Jovanovic      * Restore the changed time during the test to the original value of the
98*de76a5adSDamjan Jovanovic      * machine: has to be correct for the following interface tests.
99*de76a5adSDamjan Jovanovic      */
100*de76a5adSDamjan Jovanovic     public void after() {
101*de76a5adSDamjan Jovanovic         oObj.loadDefaultCalendar(installed_locales[0]);
102*de76a5adSDamjan Jovanovic         oObj.setDateTime(aOriginalDTime);
103*de76a5adSDamjan Jovanovic     }
104*de76a5adSDamjan Jovanovic 
105*de76a5adSDamjan Jovanovic     /**
106*de76a5adSDamjan Jovanovic     * Loads default calendar for different locales. <p>
107*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if method loads calendar, that is
108*de76a5adSDamjan Jovanovic     * default for a given locale.
109*de76a5adSDamjan Jovanovic     */
110*de76a5adSDamjan Jovanovic     public void _loadDefaultCalendar() {
111*de76a5adSDamjan Jovanovic         boolean res = true;
112*de76a5adSDamjan Jovanovic 
113*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
114*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
115*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
116*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
117*de76a5adSDamjan Jovanovic             oObj.loadDefaultCalendar(installed_locales[i]);
118*de76a5adSDamjan Jovanovic             if (oObj.getLoadedCalendar().Default) {
119*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
120*de76a5adSDamjan Jovanovic             } else {
121*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
122*de76a5adSDamjan Jovanovic             }
123*de76a5adSDamjan Jovanovic             res &= oObj.getLoadedCalendar().Default;
124*de76a5adSDamjan Jovanovic         }
125*de76a5adSDamjan Jovanovic 
126*de76a5adSDamjan Jovanovic         tRes.tested("loadDefaultCalendar()", res);
127*de76a5adSDamjan Jovanovic     }
128*de76a5adSDamjan Jovanovic 
129*de76a5adSDamjan Jovanovic     /**
130*de76a5adSDamjan Jovanovic     * Tries to obtain calendars for a number of locales. <p>
131*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns more than zero calendars for
132*de76a5adSDamjan Jovanovic     * every locale.
133*de76a5adSDamjan Jovanovic     */
134*de76a5adSDamjan Jovanovic     public void _getAllCalendars() {
135*de76a5adSDamjan Jovanovic         boolean res = true;
136*de76a5adSDamjan Jovanovic 
137*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
138*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
139*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
140*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
141*de76a5adSDamjan Jovanovic             calendars[i] = oObj.getAllCalendars(installed_locales[i]);
142*de76a5adSDamjan Jovanovic             count[i] = calendars[i].length-1;
143*de76a5adSDamjan Jovanovic             if (calendars[i].length > 0) {
144*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
145*de76a5adSDamjan Jovanovic             } else {
146*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
147*de76a5adSDamjan Jovanovic             }
148*de76a5adSDamjan Jovanovic             res &= (calendars[i].length > 0);
149*de76a5adSDamjan Jovanovic         }
150*de76a5adSDamjan Jovanovic         tRes.tested("getAllCalendars()", res);
151*de76a5adSDamjan Jovanovic     }
152*de76a5adSDamjan Jovanovic 
153*de76a5adSDamjan Jovanovic     /**
154*de76a5adSDamjan Jovanovic     * Loads calendars for a number of locales. <p>
155*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if loaded calendar names are equal to gotten
156*de76a5adSDamjan Jovanovic     * calendar names after loading.<p>
157*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
158*de76a5adSDamjan Jovanovic     * <ul>
159*de76a5adSDamjan Jovanovic     *  <li> <code> getAllCalendars() </code> : gets all calendars for a given
160*de76a5adSDamjan Jovanovic     *  locale </li>
161*de76a5adSDamjan Jovanovic     * </ul>
162*de76a5adSDamjan Jovanovic     */
163*de76a5adSDamjan Jovanovic     public void _loadCalendar() {
164*de76a5adSDamjan Jovanovic         boolean res = true;
165*de76a5adSDamjan Jovanovic         requiredMethod("getAllCalendars()");
166*de76a5adSDamjan Jovanovic 
167*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
168*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
169*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
170*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
171*de76a5adSDamjan Jovanovic             oObj.loadCalendar(calendars[i][0], installed_locales[i]);
172*de76a5adSDamjan Jovanovic             if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
173*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
174*de76a5adSDamjan Jovanovic             } else {
175*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
176*de76a5adSDamjan Jovanovic             }
177*de76a5adSDamjan Jovanovic             res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
178*de76a5adSDamjan Jovanovic         }
179*de76a5adSDamjan Jovanovic 
180*de76a5adSDamjan Jovanovic         tRes.tested("loadCalendar()", res);
181*de76a5adSDamjan Jovanovic     }
182*de76a5adSDamjan Jovanovic 
183*de76a5adSDamjan Jovanovic     /**
184*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
185*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if loaded calendar names are equal to gotten
186*de76a5adSDamjan Jovanovic     * calendar names after loading.<p>
187*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
188*de76a5adSDamjan Jovanovic     * <ul>
189*de76a5adSDamjan Jovanovic     *  <li> <code> loadCalendar() </code> : loads calendar using a given name
190*de76a5adSDamjan Jovanovic     *  and locale </li>
191*de76a5adSDamjan Jovanovic     * </ul>
192*de76a5adSDamjan Jovanovic     */
193*de76a5adSDamjan Jovanovic     public void _getLoadedCalendar() {
194*de76a5adSDamjan Jovanovic         boolean res = true;
195*de76a5adSDamjan Jovanovic 
196*de76a5adSDamjan Jovanovic         requiredMethod("loadCalendar()");
197*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
198*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
199*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
200*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
201*de76a5adSDamjan Jovanovic             oObj.loadCalendar(calendars[i][0], installed_locales[i]);
202*de76a5adSDamjan Jovanovic             if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
203*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
204*de76a5adSDamjan Jovanovic             } else {
205*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
206*de76a5adSDamjan Jovanovic             }
207*de76a5adSDamjan Jovanovic             res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
208*de76a5adSDamjan Jovanovic         }
209*de76a5adSDamjan Jovanovic         tRes.tested("getLoadedCalendar()", res);
210*de76a5adSDamjan Jovanovic     }
211*de76a5adSDamjan Jovanovic 
212*de76a5adSDamjan Jovanovic     /**
213*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
214*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value that's equal to a
215*de76a5adSDamjan Jovanovic     * calendar name. <p>
216*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
217*de76a5adSDamjan Jovanovic     * <ul>
218*de76a5adSDamjan Jovanovic     *  <li> <code> loadCalendar() </code> :  loads calendar using a given name
219*de76a5adSDamjan Jovanovic     *  and locale </li>
220*de76a5adSDamjan Jovanovic     * </ul>
221*de76a5adSDamjan Jovanovic     */
222*de76a5adSDamjan Jovanovic     public void _getUniqueID() {
223*de76a5adSDamjan Jovanovic         boolean res = true;
224*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
225*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
226*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
227*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
228*de76a5adSDamjan Jovanovic             oObj.loadCalendar(calendars[i][0], installed_locales[i]);
229*de76a5adSDamjan Jovanovic             String uID = oObj.getUniqueID();
230*de76a5adSDamjan Jovanovic             if (uID.equals(calendars[i][0])) {
231*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
232*de76a5adSDamjan Jovanovic             } else {
233*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
234*de76a5adSDamjan Jovanovic             }
235*de76a5adSDamjan Jovanovic             res &= uID.equals(calendars[i][0]);
236*de76a5adSDamjan Jovanovic         }
237*de76a5adSDamjan Jovanovic 
238*de76a5adSDamjan Jovanovic         tRes.tested("getUniqueID()",res);
239*de76a5adSDamjan Jovanovic     }
240*de76a5adSDamjan Jovanovic 
241*de76a5adSDamjan Jovanovic     /**
242*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
243*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value, that's equal to
244*de76a5adSDamjan Jovanovic     * value set before. <p>
245*de76a5adSDamjan Jovanovic     */
246*de76a5adSDamjan Jovanovic 
247*de76a5adSDamjan Jovanovic     public void _setDateTime() {
248*de76a5adSDamjan Jovanovic         boolean res = true;
249*de76a5adSDamjan Jovanovic 
250*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
251*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
252*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
253*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
254*de76a5adSDamjan Jovanovic             oObj.setDateTime(newDTime);
255*de76a5adSDamjan Jovanovic             double aDTime = oObj.getDateTime();
256*de76a5adSDamjan Jovanovic             if (aDTime == newDTime) {
257*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
258*de76a5adSDamjan Jovanovic             } else {
259*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
260*de76a5adSDamjan Jovanovic             }
261*de76a5adSDamjan Jovanovic             res &= (aDTime == newDTime);
262*de76a5adSDamjan Jovanovic         }
263*de76a5adSDamjan Jovanovic 
264*de76a5adSDamjan Jovanovic         tRes.tested("setDateTime()", res);
265*de76a5adSDamjan Jovanovic     }
266*de76a5adSDamjan Jovanovic 
267*de76a5adSDamjan Jovanovic     /**
268*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
269*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value, that's equal to
270*de76a5adSDamjan Jovanovic     * value set before. <p>
271*de76a5adSDamjan Jovanovic     */
272*de76a5adSDamjan Jovanovic 
273*de76a5adSDamjan Jovanovic     public void _getDateTime() {
274*de76a5adSDamjan Jovanovic         boolean res = true;
275*de76a5adSDamjan Jovanovic 
276*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
277*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
278*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
279*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Country;
280*de76a5adSDamjan Jovanovic             oObj.setDateTime(newDTime);
281*de76a5adSDamjan Jovanovic             double aDTime = oObj.getDateTime();
282*de76a5adSDamjan Jovanovic             if (aDTime == newDTime) {
283*de76a5adSDamjan Jovanovic                 //log.println(lang + " ... OK");
284*de76a5adSDamjan Jovanovic             } else {
285*de76a5adSDamjan Jovanovic                 log.println(lang + " ... FAILED");
286*de76a5adSDamjan Jovanovic             }
287*de76a5adSDamjan Jovanovic             res &= (aDTime == newDTime);
288*de76a5adSDamjan Jovanovic         }
289*de76a5adSDamjan Jovanovic         tRes.tested("getDateTime()", res);
290*de76a5adSDamjan Jovanovic     }
291*de76a5adSDamjan Jovanovic 
292*de76a5adSDamjan Jovanovic     /**
293*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
294*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value, that's equal to
295*de76a5adSDamjan Jovanovic     * value set before. <p>
296*de76a5adSDamjan Jovanovic     */
297*de76a5adSDamjan Jovanovic 
298*de76a5adSDamjan Jovanovic     public void _setValue() {
299*de76a5adSDamjan Jovanovic         boolean res = true;
300*de76a5adSDamjan Jovanovic         for (int i=0; i<installed_locales.length; i++) {
301*de76a5adSDamjan Jovanovic             String error = "";
302*de76a5adSDamjan Jovanovic             String lang = "Language: "+installed_locales[i].Language +
303*de76a5adSDamjan Jovanovic                           ", Country: "+ installed_locales[i].Country +
304*de76a5adSDamjan Jovanovic                           ", Variant: "+ installed_locales[i].Variant +
305*de76a5adSDamjan Jovanovic                           ", Name: "+calendars[i][count[i]];
306*de76a5adSDamjan Jovanovic             String[] names = new String[]{"DAY_OF_MONTH",
307*de76a5adSDamjan Jovanovic                 "HOUR","MINUTE","SECOND","MILLISECOND",
308*de76a5adSDamjan Jovanovic                 "YEAR","MONTH"};
309*de76a5adSDamjan Jovanovic             oObj.loadCalendar(calendars[i][count[i]],installed_locales[i]);
310*de76a5adSDamjan Jovanovic             short[] fields = new short[]{CalendarFieldIndex.DAY_OF_MONTH,
311*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.HOUR,
312*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.MINUTE,
313*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.SECOND,
314*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.MILLISECOND,
315*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.YEAR,
316*de76a5adSDamjan Jovanovic                                          CalendarFieldIndex.MONTH
317*de76a5adSDamjan Jovanovic             };
318*de76a5adSDamjan Jovanovic             for (int k=0; k<fields.length;k++) {
319*de76a5adSDamjan Jovanovic 
320*de76a5adSDamjan Jovanovic                 oObj.setDateTime(0.0);
321*de76a5adSDamjan Jovanovic 
322*de76a5adSDamjan Jovanovic                 // save the current values for debug purposes
323*de76a5adSDamjan Jovanovic                 short[] oldValues = new short[fields.length];
324*de76a5adSDamjan Jovanovic                 for (int n=0; n < oldValues.length; n++){
325*de76a5adSDamjan Jovanovic                     oldValues[n] = oObj.getValue(fields[n]);
326*de76a5adSDamjan Jovanovic                 }
327*de76a5adSDamjan Jovanovic 
328*de76a5adSDamjan Jovanovic                 short set = oObj.getValue(fields[k]);
329*de76a5adSDamjan Jovanovic                 if (fields[k] == CalendarFieldIndex.MONTH) set = newValue;
330*de76a5adSDamjan Jovanovic                 oObj.setValue(fields[k],set);
331*de76a5adSDamjan Jovanovic                 short get = oObj.getValue(fields[k]);
332*de76a5adSDamjan Jovanovic                 if (get != set) {
333*de76a5adSDamjan Jovanovic                     if (debug)
334*de76a5adSDamjan Jovanovic                         log.println("ERROR occur: tried to set " + names[k] + " to value " + set);
335*de76a5adSDamjan Jovanovic                         log.println("list of values BEFORE set " + names[k] + " to value " + set + ":");
336*de76a5adSDamjan Jovanovic                         for (int n=0; n < oldValues.length; n++){
337*de76a5adSDamjan Jovanovic                             log.println(names[n] + ":" + oldValues[n]);
338*de76a5adSDamjan Jovanovic                         }
339*de76a5adSDamjan Jovanovic                         log.println("list of values AFTER set " + names[k] + " to value " + set + ":");
340*de76a5adSDamjan Jovanovic                         for (int n=0; n < fields.length;n++){
341*de76a5adSDamjan Jovanovic                             log.println(names[n] + ":" + oObj.getValue(fields[n]));
342*de76a5adSDamjan Jovanovic                         }
343*de76a5adSDamjan Jovanovic 
344*de76a5adSDamjan Jovanovic                     error += "failed for "+names[k]+" expected "+
345*de76a5adSDamjan Jovanovic                                 set+" gained "+get+" ; \n";
346*de76a5adSDamjan Jovanovic                 }
347*de76a5adSDamjan Jovanovic             }
348*de76a5adSDamjan Jovanovic             if (error.equals("")) {
349*de76a5adSDamjan Jovanovic                 log.println(lang + " ... OK");
350*de76a5adSDamjan Jovanovic             } else {
351*de76a5adSDamjan Jovanovic                 log.println("*** "+lang + " ... FAILED ***");
352*de76a5adSDamjan Jovanovic                 log.println(error);
353*de76a5adSDamjan Jovanovic             }
354*de76a5adSDamjan Jovanovic             res &= (error.equals(""));
355*de76a5adSDamjan Jovanovic         }
356*de76a5adSDamjan Jovanovic 
357*de76a5adSDamjan Jovanovic         tRes.tested("setValue()", res);
358*de76a5adSDamjan Jovanovic     }
359*de76a5adSDamjan Jovanovic 
360*de76a5adSDamjan Jovanovic     /**
361*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
362*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value, that's equal to
363*de76a5adSDamjan Jovanovic     * value set before. <p>
364*de76a5adSDamjan Jovanovic     */
365*de76a5adSDamjan Jovanovic 
366*de76a5adSDamjan Jovanovic     public void _getValue() {
367*de76a5adSDamjan Jovanovic         boolean res = true;
368*de76a5adSDamjan Jovanovic 
369*de76a5adSDamjan Jovanovic         requiredMethod("setValue()");
370*de76a5adSDamjan Jovanovic         short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
371*de76a5adSDamjan Jovanovic         res &= (aValue == newValue);
372*de76a5adSDamjan Jovanovic         if (!res){
373*de76a5adSDamjan Jovanovic             log.println("the returned value is not the expected value:");
374*de76a5adSDamjan Jovanovic             log.println("expexted: " + newValue + "  returned value: " + aValue);
375*de76a5adSDamjan Jovanovic         }
376*de76a5adSDamjan Jovanovic         tRes.tested("getValue()", res);
377*de76a5adSDamjan Jovanovic     }
378*de76a5adSDamjan Jovanovic 
379*de76a5adSDamjan Jovanovic     /**
380*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
381*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if value, added by the method is greater than
382*de76a5adSDamjan Jovanovic     * previously defined "newValue".
383*de76a5adSDamjan Jovanovic     * <p>
384*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
385*de76a5adSDamjan Jovanovic     * <ul>
386*de76a5adSDamjan Jovanovic     *  <li> <code> getValue() </code> : gets the value of a field </li>
387*de76a5adSDamjan Jovanovic     * </ul>
388*de76a5adSDamjan Jovanovic     */
389*de76a5adSDamjan Jovanovic     public void _addValue() {
390*de76a5adSDamjan Jovanovic         boolean res = true;
391*de76a5adSDamjan Jovanovic 
392*de76a5adSDamjan Jovanovic         requiredMethod("getValue()");
393*de76a5adSDamjan Jovanovic         oObj.addValue(CalendarFieldIndex.MONTH, 1);
394*de76a5adSDamjan Jovanovic         short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
395*de76a5adSDamjan Jovanovic         res &= (aValue > newValue);
396*de76a5adSDamjan Jovanovic         if (!res){
397*de76a5adSDamjan Jovanovic             log.println("the returned value is not the expected value:");
398*de76a5adSDamjan Jovanovic             log.println("expexted: " + newValue + "  returned value: " + aValue);
399*de76a5adSDamjan Jovanovic         }
400*de76a5adSDamjan Jovanovic         tRes.tested("addValue()", res);
401*de76a5adSDamjan Jovanovic     }
402*de76a5adSDamjan Jovanovic 
403*de76a5adSDamjan Jovanovic     /**
404*de76a5adSDamjan Jovanovic     * Test calls the method. <p>
405*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method successfully returns
406*de76a5adSDamjan Jovanovic     * and no exceptions were thrown.
407*de76a5adSDamjan Jovanovic     */
408*de76a5adSDamjan Jovanovic     public void _setFirstDayOfWeek() {
409*de76a5adSDamjan Jovanovic         boolean res = true;
410*de76a5adSDamjan Jovanovic 
411*de76a5adSDamjan Jovanovic         oObj.setFirstDayOfWeek(firstDay);
412*de76a5adSDamjan Jovanovic         res &= true;
413*de76a5adSDamjan Jovanovic         tRes.tested("setFirstDayOfWeek()", res);
414*de76a5adSDamjan Jovanovic     }
415*de76a5adSDamjan Jovanovic 
416*de76a5adSDamjan Jovanovic     /**
417*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
418*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value that is equal to
419*de76a5adSDamjan Jovanovic     * value set before. <p>
420*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
421*de76a5adSDamjan Jovanovic     * <ul>
422*de76a5adSDamjan Jovanovic     *  <li> <code> setFirstDayOfWeek() </code> : set the first day of a
423*de76a5adSDamjan Jovanovic     *  week</li>
424*de76a5adSDamjan Jovanovic     * </ul>
425*de76a5adSDamjan Jovanovic     */
426*de76a5adSDamjan Jovanovic     public void _getFirstDayOfWeek() {
427*de76a5adSDamjan Jovanovic         boolean res = true;
428*de76a5adSDamjan Jovanovic 
429*de76a5adSDamjan Jovanovic         requiredMethod("setFirstDayOfWeek()");
430*de76a5adSDamjan Jovanovic         short aFirstDayOfWeek = oObj.getFirstDayOfWeek();
431*de76a5adSDamjan Jovanovic         res &= (aFirstDayOfWeek == firstDay);
432*de76a5adSDamjan Jovanovic         tRes.tested("getFirstDayOfWeek()", res);
433*de76a5adSDamjan Jovanovic     }
434*de76a5adSDamjan Jovanovic 
435*de76a5adSDamjan Jovanovic     /**
436*de76a5adSDamjan Jovanovic     * Test calls the method. <p>
437*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method successfully returns
438*de76a5adSDamjan Jovanovic     * and no exceptions were thrown.
439*de76a5adSDamjan Jovanovic     */
440*de76a5adSDamjan Jovanovic     public void _setMinimumNumberOfDaysForFirstWeek() {
441*de76a5adSDamjan Jovanovic         boolean res = true;
442*de76a5adSDamjan Jovanovic 
443*de76a5adSDamjan Jovanovic         oObj.setMinimumNumberOfDaysForFirstWeek(mdfw);
444*de76a5adSDamjan Jovanovic         res &= true;
445*de76a5adSDamjan Jovanovic         tRes.tested("setMinimumNumberOfDaysForFirstWeek()", res);
446*de76a5adSDamjan Jovanovic     }
447*de76a5adSDamjan Jovanovic 
448*de76a5adSDamjan Jovanovic     /**
449*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
450*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns value that is equal to
451*de76a5adSDamjan Jovanovic     * value set before. <p>
452*de76a5adSDamjan Jovanovic     * The following method tests are to be completed successfully before :
453*de76a5adSDamjan Jovanovic     * <ul>
454*de76a5adSDamjan Jovanovic     *  <li> <code> setMinimumNumberOfDaysForFirstWeek() </code> : sets how
455*de76a5adSDamjan Jovanovic     *  many days of a week must reside in the first week of a year</li>
456*de76a5adSDamjan Jovanovic     * </ul>
457*de76a5adSDamjan Jovanovic     */
458*de76a5adSDamjan Jovanovic     public void _getMinimumNumberOfDaysForFirstWeek() {
459*de76a5adSDamjan Jovanovic         boolean res = true;
460*de76a5adSDamjan Jovanovic 
461*de76a5adSDamjan Jovanovic         requiredMethod("setMinimumNumberOfDaysForFirstWeek()");
462*de76a5adSDamjan Jovanovic         short aShort = oObj.getMinimumNumberOfDaysForFirstWeek();
463*de76a5adSDamjan Jovanovic         res &= (aShort == mdfw);
464*de76a5adSDamjan Jovanovic         tRes.tested("getMinimumNumberOfDaysForFirstWeek()", res);
465*de76a5adSDamjan Jovanovic     }
466*de76a5adSDamjan Jovanovic 
467*de76a5adSDamjan Jovanovic     /**
468*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
469*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns 12.
470*de76a5adSDamjan Jovanovic     */
471*de76a5adSDamjan Jovanovic     public void _getNumberOfMonthsInYear() {
472*de76a5adSDamjan Jovanovic         boolean res = true;
473*de76a5adSDamjan Jovanovic         short aShort = oObj.getNumberOfMonthsInYear();
474*de76a5adSDamjan Jovanovic 
475*de76a5adSDamjan Jovanovic         res &= (aShort == (short) 12);
476*de76a5adSDamjan Jovanovic         tRes.tested("getNumberOfMonthsInYear()", res);
477*de76a5adSDamjan Jovanovic     }
478*de76a5adSDamjan Jovanovic 
479*de76a5adSDamjan Jovanovic     /**
480*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
481*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns 7.
482*de76a5adSDamjan Jovanovic     */
483*de76a5adSDamjan Jovanovic     public void _getNumberOfDaysInWeek() {
484*de76a5adSDamjan Jovanovic         boolean res = true;
485*de76a5adSDamjan Jovanovic         short aShort = oObj.getNumberOfDaysInWeek();
486*de76a5adSDamjan Jovanovic 
487*de76a5adSDamjan Jovanovic         res &= (aShort == (short) 7);
488*de76a5adSDamjan Jovanovic         tRes.tested("getNumberOfDaysInWeek()", res);
489*de76a5adSDamjan Jovanovic     }
490*de76a5adSDamjan Jovanovic 
491*de76a5adSDamjan Jovanovic     /**
492*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
493*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if length of array, returned by the method is 12.
494*de76a5adSDamjan Jovanovic     */
495*de76a5adSDamjan Jovanovic     public void _getMonths() {
496*de76a5adSDamjan Jovanovic         boolean res = true;
497*de76a5adSDamjan Jovanovic         CalendarItem[] months = oObj.getMonths();
498*de76a5adSDamjan Jovanovic 
499*de76a5adSDamjan Jovanovic         res &= (months.length == 12);
500*de76a5adSDamjan Jovanovic         tRes.tested("getMonths()", res);
501*de76a5adSDamjan Jovanovic     }
502*de76a5adSDamjan Jovanovic 
503*de76a5adSDamjan Jovanovic     /**
504*de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
505*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if length of array, returned by the method is 7.
506*de76a5adSDamjan Jovanovic     */
507*de76a5adSDamjan Jovanovic     public void _getDays() {
508*de76a5adSDamjan Jovanovic         boolean res = true;
509*de76a5adSDamjan Jovanovic         CalendarItem[] Days = oObj.getDays();
510*de76a5adSDamjan Jovanovic 
511*de76a5adSDamjan Jovanovic         res &= (Days.length == 7);
512*de76a5adSDamjan Jovanovic         tRes.tested("getDays()", res);
513*de76a5adSDamjan Jovanovic     }
514*de76a5adSDamjan Jovanovic 
515*de76a5adSDamjan Jovanovic     /**
516*de76a5adSDamjan Jovanovic     * After loading calendar, test calls the method, then result is checked.<p>
517*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if length of string, returned by the method is 3.
518*de76a5adSDamjan Jovanovic     */
519*de76a5adSDamjan Jovanovic     public void _getDisplayName() {
520*de76a5adSDamjan Jovanovic         boolean res = true;
521*de76a5adSDamjan Jovanovic 
522*de76a5adSDamjan Jovanovic         oObj.loadCalendar(calendars[0][0],installed_locales[0]);
523*de76a5adSDamjan Jovanovic         String DisplayName = oObj.getDisplayName(CalendarDisplayIndex.MONTH,
524*de76a5adSDamjan Jovanovic             newValue, (short) 0);
525*de76a5adSDamjan Jovanovic         res &= (DisplayName.length() == 3);
526*de76a5adSDamjan Jovanovic         tRes.tested("getDisplayName()", res);
527*de76a5adSDamjan Jovanovic     }
528*de76a5adSDamjan Jovanovic 
529*de76a5adSDamjan Jovanovic 
530*de76a5adSDamjan Jovanovic     /**
531*de76a5adSDamjan Jovanovic     * The test sets obviously wrong value, then calls a method. After that the
532*de76a5adSDamjan Jovanovic     * test sets correct value, and again calls a method. <p>
533*de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns true when valid month is
534*de76a5adSDamjan Jovanovic     * set, and if the method returns false when set month is not valid.
535*de76a5adSDamjan Jovanovic     */
536*de76a5adSDamjan Jovanovic     public void _isValid() {
537*de76a5adSDamjan Jovanovic         boolean res = true;
538*de76a5adSDamjan Jovanovic 
539*de76a5adSDamjan Jovanovic         oObj.loadDefaultCalendar(installed_locales[0]);
540*de76a5adSDamjan Jovanovic         oObj.setValue(CalendarFieldIndex.MONTH, (short) 37);
541*de76a5adSDamjan Jovanovic         res &= !oObj.isValid();
542*de76a5adSDamjan Jovanovic         oObj.setValue(CalendarFieldIndex.MONTH, (short) 10);
543*de76a5adSDamjan Jovanovic         res &= oObj.isValid();
544*de76a5adSDamjan Jovanovic 
545*de76a5adSDamjan Jovanovic         tRes.tested("isValid()", res);
546*de76a5adSDamjan Jovanovic     }
547*de76a5adSDamjan Jovanovic 
548*de76a5adSDamjan Jovanovic     /**
549*de76a5adSDamjan Jovanovic     * Method returns locale for a given language and country.
550*de76a5adSDamjan Jovanovic     * @param localeIndex index of needed locale.
551*de76a5adSDamjan Jovanovic     */
552*de76a5adSDamjan Jovanovic /*    public Locale getLocale(int localeIndex) {
553*de76a5adSDamjan Jovanovic         return new Locale(languages[localeIndex], countries[localeIndex], "");
554*de76a5adSDamjan Jovanovic     }*/
555*de76a5adSDamjan Jovanovic 
556*de76a5adSDamjan Jovanovic }
557