• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2007 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.util;
18 
19 import junit.framework.TestCase;
20 
21 import java.util.Calendar;
22 import android.test.suitebuilder.annotation.SmallTest;
23 
24 /**
25  * Unit tests for {@link DayOfMonthCursor}.
26  */
27 public class DayOfMonthCursorTest extends TestCase {
28 
29     @SmallTest
testMonthRows()30     public void testMonthRows() {
31         DayOfMonthCursor mc = new DayOfMonthCursor(2007,
32                 Calendar.SEPTEMBER, 11, Calendar.SUNDAY);
33 
34         assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
35                 mc.getDigitsForRow(0));
36         assertArraysEqual(new int[]{2, 3, 4, 5, 6, 7, 8},
37                 mc.getDigitsForRow(1));
38         assertArraysEqual(new int[]{30, 1, 2, 3, 4, 5, 6},
39                 mc.getDigitsForRow(5));
40     }
41 
42     @SmallTest
testMoveLeft()43     public void testMoveLeft() {
44         DayOfMonthCursor mc = new DayOfMonthCursor(2007,
45                 Calendar.SEPTEMBER, 3, Calendar.SUNDAY);
46 
47         assertEquals(Calendar.SEPTEMBER, mc.getMonth());
48         assertEquals(3, mc.getSelectedDayOfMonth());
49         assertEquals(1, mc.getSelectedRow());
50         assertEquals(1, mc.getSelectedColumn());
51 
52         // move left, still same row
53         assertFalse(mc.left());
54         assertEquals(2, mc.getSelectedDayOfMonth());
55         assertEquals(1, mc.getSelectedRow());
56         assertEquals(0, mc.getSelectedColumn());
57 
58         // wrap over to previous column, same month
59         assertFalse(mc.left());
60         assertEquals(1, mc.getSelectedDayOfMonth());
61         assertEquals(0, mc.getSelectedRow());
62         assertEquals(6, mc.getSelectedColumn());
63 
64         // wrap to previous month
65         assertTrue(mc.left());
66         assertEquals(Calendar.AUGUST, mc.getMonth());
67         assertEquals(31, mc.getSelectedDayOfMonth());
68         assertEquals(4, mc.getSelectedRow());
69         assertEquals(5, mc.getSelectedColumn());
70     }
71 
72     @SmallTest
testMoveRight()73     public void testMoveRight() {
74         DayOfMonthCursor mc = new DayOfMonthCursor(2007,
75                 Calendar.SEPTEMBER, 28, Calendar.SUNDAY);
76 
77         assertEquals(Calendar.SEPTEMBER, mc.getMonth());
78         assertEquals(28, mc.getSelectedDayOfMonth());
79         assertEquals(4, mc.getSelectedRow());
80         assertEquals(5, mc.getSelectedColumn());
81 
82         // same row
83         assertFalse(mc.right());
84         assertEquals(29, mc.getSelectedDayOfMonth());
85         assertEquals(4, mc.getSelectedRow());
86         assertEquals(6, mc.getSelectedColumn());
87 
88         // wrap to next column, same month
89         assertFalse(mc.right());
90         assertEquals(30, mc.getSelectedDayOfMonth());
91         assertEquals(5, mc.getSelectedRow());
92         assertEquals(0, mc.getSelectedColumn());
93 
94         // next month
95         assertTrue(mc.right());
96         assertEquals(Calendar.OCTOBER, mc.getMonth());
97         assertEquals(1, mc.getSelectedDayOfMonth());
98         assertEquals(0, mc.getSelectedRow());
99         assertEquals(1, mc.getSelectedColumn());
100     }
101 
102     @SmallTest
testMoveUp()103     public void testMoveUp() {
104         DayOfMonthCursor mc = new DayOfMonthCursor(2007,
105                 Calendar.SEPTEMBER, 13, Calendar.SUNDAY);
106 
107         assertEquals(Calendar.SEPTEMBER, mc.getMonth());
108         assertEquals(13, mc.getSelectedDayOfMonth());
109         assertEquals(2, mc.getSelectedRow());
110         assertEquals(4, mc.getSelectedColumn());
111 
112         // up, same month
113         assertFalse(mc.up());
114         assertEquals(6, mc.getSelectedDayOfMonth());
115         assertEquals(1, mc.getSelectedRow());
116         assertEquals(4, mc.getSelectedColumn());
117 
118         // up, flips back
119         assertTrue(mc.up());
120         assertEquals(Calendar.AUGUST, mc.getMonth());
121         assertEquals(30, mc.getSelectedDayOfMonth());
122         assertEquals(4, mc.getSelectedRow());
123         assertEquals(4, mc.getSelectedColumn());
124     }
125 
126     @SmallTest
testMoveDown()127     public void testMoveDown() {
128         DayOfMonthCursor mc = new DayOfMonthCursor(2007,
129                 Calendar.SEPTEMBER, 23, Calendar.SUNDAY);
130 
131         assertEquals(Calendar.SEPTEMBER, mc.getMonth());
132         assertEquals(23, mc.getSelectedDayOfMonth());
133         assertEquals(4, mc.getSelectedRow());
134         assertEquals(0, mc.getSelectedColumn());
135 
136         // down, same month
137         assertFalse(mc.down());
138         assertEquals(30, mc.getSelectedDayOfMonth());
139         assertEquals(5, mc.getSelectedRow());
140         assertEquals(0, mc.getSelectedColumn());
141 
142         // down, next month
143         assertTrue(mc.down());
144         assertEquals(Calendar.OCTOBER, mc.getMonth());
145         assertEquals(7, mc.getSelectedDayOfMonth());
146         assertEquals(1, mc.getSelectedRow());
147         assertEquals(0, mc.getSelectedColumn());
148     }
149 
assertArraysEqual(int[] expected, int[] actual)150     private void assertArraysEqual(int[] expected, int[] actual) {
151         assertEquals("array length", expected.length, actual.length);
152         for (int i = 0; i < expected.length; i++) {
153             assertEquals("index " + i,
154                     expected[i], actual[i]);
155         }
156     }
157 }
158