package moontime.droid.util; import junit.framework.TestCase; public class YearMonthAdapterPositioningTest extends TestCase { private YearMonthAdapterPositioning positioning = new YearMonthAdapterPositioning(2010, 3, Integer.MAX_VALUE / 2, Integer.MAX_VALUE / 2); public void testYear() throws Exception { assertEquals(2010, positioning.getCurrentYear()); for (int i = 0; i < 20; i++) { positioning.setCurrentYearPosition(positioning.getInitialYearPosition() + i); assertEquals(2010 + i, positioning.getCurrentYear()); } for (int i = 0; i < 20; i++) { positioning.setCurrentYearPosition(positioning.getInitialYearPosition() - i); assertEquals(2010 - i, positioning.getCurrentYear()); } } public void testMonth() throws Exception { assertEquals(3, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 3); assertEquals(3 + 3, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 12); assertEquals(3, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 25); assertEquals(4, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 32); assertEquals(11, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 33); assertEquals(0, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 12); assertEquals(3, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 25); assertEquals(2, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 26); assertEquals(1, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 27); assertEquals(0, positioning.getCurrentMonth()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 28); assertEquals(11, positioning.getCurrentMonth()); } public void testYearMonthTogether() throws Exception { // change year -> should change month(-position) as well positioning.setCurrentYearPosition(positioning.getInitialYearPosition() + 1); assertEquals(3, positioning.getCurrentMonth()); assertEquals(positioning.getInitialMonthPosition() + 12, positioning.getCurrentMonthPosition()); positioning.setCurrentYearPosition(positioning.getInitialYearPosition() + -1); assertEquals(3, positioning.getCurrentMonth()); assertEquals(positioning.getInitialMonthPosition() - 12, positioning.getCurrentMonthPosition()); positioning.setCurrentYearPosition(positioning.getInitialYearPosition()); assertEquals(positioning.getInitialMonthPosition(), positioning.getCurrentMonthPosition()); // change month -> should change year in case of overflow positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() + 12); assertEquals(2011, positioning.getCurrentYear()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 12); assertEquals(2009, positioning.getCurrentYear()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition()); assertEquals(2010, positioning.getCurrentYear()); // single steps positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition()); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 1); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 2); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 3); positioning.setCurrentMonthPosition(positioning.getInitialMonthPosition() - 4); assertEquals(11, positioning.getCurrentMonth()); assertEquals(2009, positioning.getCurrentYear()); } }