/*******************************************************************************
* Copyright (c) 2009 Tasktop Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.tests.ui.editor;
import java.util.Calendar;
import java.util.Date;
import junit.framework.TestCase;
import org.eclipse.mylyn.internal.tasks.core.DateRange;
import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
import org.eclipse.mylyn.internal.tasks.ui.editors.Messages;
import org.eclipse.mylyn.internal.tasks.ui.editors.PlanningPart;
/**
* @author Steffen Pingel
*/
public class PlanningPartTest extends TestCase {
private static final int DAY = 24 * 60 * 60 * 1000;
private static final long WEEK = 7 * DAY;
public void testGetLabelWeek() {
DateRange range = TaskActivityUtil.getCurrentWeek();
assertEquals(Messages.PlanningPart_This_Week, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(0));
assertEquals(Messages.PlanningPart_This_Week, PlanningPart.getLabel(range));
range = TaskActivityUtil.getNextWeek();
assertEquals(Messages.PlanningPart_Next_Week, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(System.currentTimeMillis() + WEEK));
assertEquals(Messages.PlanningPart_Next_Week, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(System.currentTimeMillis() + 2 * WEEK));
assertEquals(Messages.PlanningPart_Later, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(System.currentTimeMillis() + 3 * WEEK));
assertEquals(Messages.PlanningPart_Later, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(System.currentTimeMillis() - WEEK));
assertEquals(Messages.PlanningPart_This_Week, PlanningPart.getLabel(range));
range = TaskActivityUtil.getWeekOf(new Date(System.currentTimeMillis() - 2 * WEEK));
assertEquals(Messages.PlanningPart_This_Week, PlanningPart.getLabel(range));
}
public void testGetLabelDay() {
DateRange range = TaskActivityUtil.getDayOf(new Date());
assertEquals(Messages.PlanningPart_Today, PlanningPart.getLabel(range));
range = TaskActivityUtil.getDayOf(new Date(System.currentTimeMillis() - DAY));
assertEquals(Messages.PlanningPart_Today, PlanningPart.getLabel(range));
range = TaskActivityUtil.getDayOf(TaskActivityUtil.getCurrentWeek().getStartDate().getTime());
assertEquals(Messages.PlanningPart_Today, PlanningPart.getLabel(range));
range = TaskActivityUtil.getDayOf(new Date(0));
assertEquals(Messages.PlanningPart_Today, PlanningPart.getLabel(range));
Calendar cal = TaskActivityUtil.getCalendar();
if (cal.get(Calendar.DAY_OF_WEEK) != TaskActivityUtil.getLastDayOfWeek(cal)) {
range = TaskActivityUtil.getDayOf(new Date(System.currentTimeMillis() + DAY));
assertEquals(Messages.PlanningPart_This_Week, PlanningPart.getLabel(range));
}
range = TaskActivityUtil.getDayOf(new Date(System.currentTimeMillis() + 7 * DAY));
assertEquals(Messages.PlanningPart_Next_Week, PlanningPart.getLabel(range));
cal = TaskActivityUtil.getNextWeek().getEndDate();
cal.add(Calendar.DAY_OF_YEAR, 1);
range = TaskActivityUtil.getDayOf(cal.getTime());
assertEquals(Messages.PlanningPart_Later, PlanningPart.getLabel(range));
range = TaskActivityUtil.getDayOf(new Date(System.currentTimeMillis() + 14 * DAY));
assertEquals(Messages.PlanningPart_Later, PlanningPart.getLabel(range));
}
}