/* * Copyright (c) 2012 Denis Solonenko. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v2.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ package ru.orangesoftware.financisto2.test.utils; import android.test.AndroidTestCase; import ru.orangesoftware.financisto2.datetime.Period; import ru.orangesoftware.financisto2.datetime.PeriodType; import ru.orangesoftware.financisto2.test.builders.DateTime; import static ru.orangesoftware.financisto2.test.builders.DateTime.date; import static ru.orangesoftware.financisto2.datetime.PeriodType.*; /** * Created by IntelliJ IDEA. * User: denis.solonenko * Date: 8/28/12 11:39 PM */ public class DateUtilsTest extends AndroidTestCase { long refTime; public void test_should_support_different_periods_for_blotter_filter() { givenRefTime(date(2012, 8, 28).at(23, 52, 0, 0)); assertPeriod(TODAY, date(2012, 8, 28), date(2012, 8, 28)); assertPeriod(YESTERDAY, date(2012, 8, 27), date(2012, 8, 27)); assertPeriod(THIS_WEEK, date(2012, 8, 27), date(2012, 9, 2)); assertPeriod(THIS_MONTH, date(2012, 8, 1), date(2012, 8, 31)); assertPeriod(LAST_WEEK, date(2012, 8, 20), date(2012, 8, 26)); assertPeriod(LAST_MONTH, date(2012, 7, 1), date(2012, 7, 31)); assertPeriod(THIS_AND_LAST_WEEK, date(2012, 8, 20), date(2012, 9, 2)); assertPeriod(THIS_AND_LAST_MONTH, date(2012, 7, 1), date(2012, 8, 31)); assertPeriod(TOMORROW, date(2012, 8, 29), date(2012, 8, 29)); assertPeriod(NEXT_WEEK, date(2012, 9, 3), date(2012, 9, 9)); assertPeriod(NEXT_MONTH, date(2012, 9, 1), date(2012, 9, 30)); assertPeriod(THIS_AND_NEXT_MONTH, date(2012, 8, 1), date(2012, 9, 30)); assertPeriod(NEXT_3_MONTHS, date(2012, 8, 1), date(2012, 10, 31)); } private void givenRefTime(DateTime dateTime) { refTime = dateTime.asLong(); } private void assertPeriod(PeriodType periodType, DateTime start, DateTime end) { Period period = periodType.calculatePeriod(refTime); assertEquals(start.atMidnight().asLong(), period.start); assertEquals(end.atDayEnd().asLong(), period.end); } }