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