@Test public void testItDrawsDaysOnCalender() { // simulate Feb month underTest.setGrowProgress( 1000); // set grow progress so that it simulates the calendar being open when(calendar.get(Calendar.DAY_OF_WEEK)).thenReturn(1); when(calendar.get(Calendar.MONTH)).thenReturn(1); when(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)).thenReturn(28); underTest.drawMonth(canvas, calendar, 0); for (int dayColumn = 0, dayRow = 0; dayColumn <= 6; dayRow++) { if (dayRow == 7) { dayRow = 0; if (dayColumn <= 6) { dayColumn++; } } if (dayColumn == dayColumnNames.length) { break; } if (dayColumn == 0) { verify(canvas).drawText(eq(dayColumnNames[dayColumn]), anyInt(), anyInt(), eq(paint)); } else { int day = ((dayRow - 1) * 7 + dayColumn + 1) - 6; if (day > 0 && day <= 28) { verify(canvas).drawText(eq(String.valueOf(day)), anyInt(), anyInt(), eq(paint)); } } } }
@Test public void testItAbbreviatesDayNames() { // simulate Feb month when(calendar.get(Calendar.DAY_OF_WEEK)).thenReturn(1); when(calendar.get(Calendar.MONTH)).thenReturn(1); when(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)).thenReturn(28); underTest.setGrowProgress( 1000); // set grow progress so that it simulates the calendar being open underTest.setLocale(Locale.FRANCE); reset(canvas); // reset because invalidate is called underTest.setUseWeekDayAbbreviation(true); reset(canvas); // reset because invalidate is called underTest.drawMonth(canvas, calendar, 0); DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(Locale.FRANCE); String[] dayNames = dateFormatSymbols.getShortWeekdays(); InOrder inOrder = inOrder(canvas); inOrder.verify(canvas).drawText(eq(dayNames[2]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[3]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[4]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[5]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[6]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[7]), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq(dayNames[1]), anyInt(), anyInt(), eq(paint)); }
@Test public void testItDrawsFirstLetterOfEachDay() { // simulate Feb month when(calendar.get(Calendar.DAY_OF_WEEK)).thenReturn(1); when(calendar.get(Calendar.MONTH)).thenReturn(1); when(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)).thenReturn(28); underTest.setGrowProgress( 1000); // set grow progress so that it simulates the calendar being open underTest.drawMonth(canvas, calendar, 0); InOrder inOrder = inOrder(canvas); inOrder.verify(canvas).drawText(eq("M"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("T"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("W"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("T"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("F"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("S"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("S"), anyInt(), anyInt(), eq(paint)); }
@Test public void testItDrawsSundayAsFirstDay() { // simulate Feb month when(calendar.get(Calendar.DAY_OF_WEEK)).thenReturn(1); when(calendar.get(Calendar.MONTH)).thenReturn(1); when(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)).thenReturn(28); underTest.setGrowProgress( 1000); // set grow progress so that it simulates the calendar being open underTest.setShouldShowMondayAsFirstDay(false); underTest.setUseWeekDayAbbreviation(true); underTest.drawMonth(canvas, calendar, 0); InOrder inOrder = inOrder(canvas); inOrder.verify(canvas).drawText(eq("Sun"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Mon"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Tue"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Wed"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Thu"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Fri"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Sat"), anyInt(), anyInt(), eq(paint)); }
@Test public void testItSetsDayColumns() { // simulate Feb month when(calendar.get(Calendar.DAY_OF_WEEK)).thenReturn(1); when(calendar.get(Calendar.MONTH)).thenReturn(1); when(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)).thenReturn(28); String[] dayNames = {"Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun"}; underTest.setGrowProgress( 1000); // set grow progress so that it simulates the calendar being open underTest.setDayColumnNames(dayNames); underTest.drawMonth(canvas, calendar, 0); InOrder inOrder = inOrder(canvas); inOrder.verify(canvas).drawText(eq("Mon"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Tue"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Wed"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Thur"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Fri"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Sat"), anyInt(), anyInt(), eq(paint)); inOrder.verify(canvas).drawText(eq("Sun"), anyInt(), anyInt(), eq(paint)); }