blob: 5bac9694d14ec9da4e7da59164ff56d6bc9b974f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 - 2006 University Of British Columbia 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:
* University Of British Columbia - initial API and implementation
*******************************************************************************/
package org.eclipse.mylar.tasklist.tests;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import junit.framework.TestCase;
import org.eclipse.mylar.internal.core.MylarContextManager;
import org.eclipse.mylar.provisional.core.InteractionEvent;
import org.eclipse.mylar.provisional.tasklist.DateRangeActivityDelegate;
import org.eclipse.mylar.provisional.tasklist.DateRangeContainer;
import org.eclipse.mylar.provisional.tasklist.ITask;
import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin;
import org.eclipse.mylar.provisional.tasklist.Task;
import org.eclipse.mylar.provisional.tasklist.TaskList;
/**
* @author Rob Elves
*/
public class TaskActivityViewTest extends TestCase {
private long currentStartMili = 1200;
private long currentEndMili = 1900;
private TaskList taskList;
protected void setUp() throws Exception {
super.setUp();
taskList = MylarTaskListPlugin.getTaskListManager().getTaskList();
}
protected void tearDown() throws Exception {
// MylarTaskListPlugin.getTaskListManager().readExistingOrCreateNewList();
MylarTaskListPlugin.getTaskListManager().resetTaskList();
super.tearDown();
}
public void testDateRangeContainer() {
Calendar startDate = GregorianCalendar.getInstance();
startDate.setTimeInMillis(1000);
Calendar endDate = GregorianCalendar.getInstance();
endDate.setTimeInMillis(2000);
DateRangeContainer testContainer = new DateRangeContainer(startDate, endDate, "test date range container", taskList);
assertTrue(testContainer.includes(startDate));
assertTrue(testContainer.includes(endDate));
Calendar midTime = GregorianCalendar.getInstance();
midTime.setTimeInMillis(1500);
assertTrue(testContainer.includes(midTime));
ITask task1 = new Task("task 1", "Task 1", true);
ITask task2 = new Task("task 2", "Task 2", true);
Calendar currentTaskStart = GregorianCalendar.getInstance();
currentTaskStart.setTimeInMillis(currentStartMili);
Calendar currentTaskEnd = GregorianCalendar.getInstance();
currentTaskEnd.setTimeInMillis(currentEndMili);
testContainer.addTask(new DateRangeActivityDelegate(testContainer, task1, currentTaskStart, currentTaskEnd, 0));
assertEquals(currentEndMili - currentStartMili, testContainer.getTotalElapsed());
testContainer.addTask(new DateRangeActivityDelegate(testContainer, task2, currentTaskStart, currentTaskEnd, 0));
assertEquals(2 * (currentEndMili - currentStartMili), testContainer.getTotalElapsed());
assertEquals(2, testContainer.getChildren().size());
testContainer.addTask(new DateRangeActivityDelegate(testContainer, task2, currentTaskStart, currentTaskEnd));
assertEquals(3 * (currentEndMili - currentStartMili), testContainer.getTotalElapsed());
assertEquals(2 * (currentEndMili - currentStartMili), testContainer.getElapsed(new DateRangeActivityDelegate(
testContainer, task2, currentTaskStart, currentTaskEnd)));
assertEquals(2, testContainer.getChildren().size());
}
public void testNegativeInactivity() {
Calendar startDate = GregorianCalendar.getInstance();
startDate.setTimeInMillis(1000);
Calendar endDate = GregorianCalendar.getInstance();
endDate.setTimeInMillis(2000);
ITask task1 = new Task("task 1", "Task 1", true);
DateRangeContainer testContainer = new DateRangeContainer(startDate, endDate, "test date range container", taskList);
testContainer.addTask(new DateRangeActivityDelegate(testContainer, task1, startDate, endDate, 3000));
assertEquals(0, testContainer.getTotalElapsed());
}
public void testTaskListManagerActivity() {
ITask task1 = new Task("task 1", "Task 1", true);
ITask task2 = new Task("task 2", "Task 2", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task2);
// test this week
DateRangeContainer thisWeekActivity = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(thisWeekActivity);
assertEquals(0, thisWeekActivity.getChildren().size());
assertEquals(0, thisWeekActivity.getTotalElapsed());
Calendar thisWeekCalendarStart = GregorianCalendar.getInstance();
thisWeekCalendarStart.setTime(thisWeekActivity.getStart().getTime());
Calendar thisWeekCalendarStop = GregorianCalendar.getInstance();
thisWeekCalendarStop.setTime(thisWeekActivity.getStart().getTime());
thisWeekCalendarStop.add(Calendar.MILLISECOND, 2);
assertTrue(thisWeekActivity.includes(thisWeekCalendarStart));
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
thisWeekCalendarStart.getTime(), thisWeekCalendarStart.getTime());
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
thisWeekCalendarStop.getTime(), thisWeekCalendarStop.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(1, thisWeekActivity.getChildren().size());
assertEquals(thisWeekCalendarStop.getTime().getTime() - thisWeekCalendarStart.getTime().getTime(),
thisWeekActivity.getTotalElapsed());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(1, thisWeekActivity.getChildren().size());
assertEquals(2 * (thisWeekCalendarStop.getTime().getTime() - thisWeekCalendarStart.getTime().getTime()),
thisWeekActivity.getTotalElapsed());
assertEquals(2 * (thisWeekCalendarStop.getTime().getTime() - thisWeekCalendarStart.getTime().getTime()),
thisWeekActivity.getElapsed(new DateRangeActivityDelegate(thisWeekActivity, task1, null, null)));
// multiple tasks in category
event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2.getHandleIdentifier(),
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, thisWeekCalendarStart
.getTime(), thisWeekCalendarStart.getTime());
event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2.getHandleIdentifier(),
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, thisWeekCalendarStop
.getTime(), thisWeekCalendarStop.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(2, thisWeekActivity.getChildren().size());
// test Past
DateRangeContainer pastActivity = MylarTaskListPlugin.getTaskListManager().getActivityPast();
assertNotNull(pastActivity);
assertEquals(0, pastActivity.getChildren().size());
InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
pastActivity.getStart().getTime(), pastActivity.getStart().getTime());
InteractionEvent event4 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
pastActivity.getEnd().getTime(), pastActivity.getEnd().getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event3);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event4);
assertEquals(1, pastActivity.getChildren().size());
// test Future
DateRangeContainer futureActivity = MylarTaskListPlugin.getTaskListManager().getActivityFuture();
assertNotNull(futureActivity);
assertEquals(0, futureActivity.getChildren().size());
InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
futureActivity.getStart().getTime(), futureActivity.getStart().getTime());
InteractionEvent event6 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
futureActivity.getEnd().getTime(), futureActivity.getEnd().getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event5);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event6);
assertEquals(1, futureActivity.getChildren().size());
// test Next week activity
DateRangeContainer activityNextWeek = MylarTaskListPlugin.getTaskListManager().getActivityNextWeek();
assertNotNull(activityNextWeek);
assertEquals(0, activityNextWeek.getChildren().size());
InteractionEvent event7 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
activityNextWeek.getStart().getTime(), activityNextWeek.getStart().getTime());
InteractionEvent event8 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
activityNextWeek.getEnd().getTime(), activityNextWeek.getEnd().getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event7);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event8);
assertEquals(1, activityNextWeek.getChildren().size());
// test Previous week activity
DateRangeContainer activityPreviousWeek = MylarTaskListPlugin.getTaskListManager().getActivityPrevious();
assertNotNull(activityPreviousWeek);
assertEquals(0, activityPreviousWeek.getChildren().size());
InteractionEvent event9 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
activityPreviousWeek.getStart().getTime(), activityPreviousWeek.getStart().getTime());
InteractionEvent event10 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
activityPreviousWeek.getEnd().getTime(), activityPreviousWeek.getEnd().getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event9);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event10);
assertEquals(1, activityPreviousWeek.getChildren().size());
}
/**
* Some 'attention' events when all tasks are inactive
* @author Yuri Baburov (burchik@gmail.com)
*/
public void testTaskListManagerActivity2(){
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
DateRangeContainer thisWeekActivity = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(thisWeekActivity);
assertEquals(0, thisWeekActivity.getChildren().size());
assertEquals(0, thisWeekActivity.getTotalElapsed());
thisWeekActivity.getStart().setTimeInMillis(1149490800000L); // Start of the week Jun 5 2006 - Jun 11 2006, NOVST
thisWeekActivity.getEnd().setTimeInMillis(1150095600000L); // End of the week
Date time1 = new Date(1149911820812L); // Sat Jun 10 10:57:00 NOVST 2006 - task 1 - activated
Date time2 = new Date(1149911820812L); // Sat Jun 10 10:57:00 NOVST 2006 - task 1 - deactivated
Date time3 = new Date(1149911840812L); // Sat Jun 10 10:57:20 NOVST 2006 - attention - deactivated
Date time4 = new Date(1149911941765L); // Sat Jun 10 10:59:01 NOVST 2006 - attention - activated
Date time5 = new Date(1149911948953L); // Sat Jun 10 10:59:08 NOVST 2006 - task 1 - activated
Date time6 = new Date(1149911988781L); // Sat Jun 10 10:59:48 NOVST 2006 - task 1 - deactivated
String task1handle = task1.getHandleIdentifier();
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time1, time1);
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time2, time2);
InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time3, time3);
InteractionEvent event4 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time4, time4);
InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time5, time5);
InteractionEvent event6 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time6, time6);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event3);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event4);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event5);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event6);
assertEquals(1, thisWeekActivity.getChildren().size());
long expectedTotalTime = time6.getTime() - time5.getTime() + time2.getTime() - time1.getTime();
assertEquals(expectedTotalTime, thisWeekActivity.getTotalElapsed());
assertEquals(expectedTotalTime, thisWeekActivity.getElapsed(new DateRangeActivityDelegate(thisWeekActivity,
task1, null, null)));
}
/**
* Task with some inner 'attention' events
* @author Yuri Baburov (burchik@gmail.com)
*/
public void testTaskListManagerActivity3(){
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
DateRangeContainer thisWeekActivity = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(thisWeekActivity);
assertEquals(0, thisWeekActivity.getChildren().size());
assertEquals(0, thisWeekActivity.getTotalElapsed());
thisWeekActivity.getStart().setTimeInMillis(1149490800000L); // Start of the week Jun 5 2006 - Jun 11 2006, NOVST
thisWeekActivity.getEnd().setTimeInMillis(1150095600000L); // End of the week
Date time1 = new Date(1150007053171L); // Sun Jun 11 13:24:13 NOVST 2006 - task 1 - activated
Date time2 = new Date(1150007263468L); // Sun Jun 11 13:27:43 NOVST 2006 - attention - deactivated
Date time3 = new Date(1150021535953L); // Sun Jun 11 17:25:35 NOVST 2006 - attention - activated
Date time4 = new Date(1150021658500L); // Sun Jun 11 17:27:38 NOVST 2006 - attention - deactivated
Date time5 = new Date(1150031089250L); // Sun Jun 11 20:04:49 NOVST 2006 - attention - activated
Date time6 = new Date(1150031111578L); // Sun Jun 11 20:05:11 NOVST 2006 - attention - deactivated
Date time7 = new Date(1150031111578L); // Sun Jun 11 20:05:11 NOVST 2006 - task 1 - deactivated
String task1handle = task1.getHandleIdentifier();
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time1, time1);
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time2, time2);
InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time3, time3);
InteractionEvent event4 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time4, time4);
InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time5, time5);
InteractionEvent event6 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time6, time6);
InteractionEvent event7 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
"originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time7, time7);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event3);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event4);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event5);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event6);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event7);
assertEquals(1, thisWeekActivity.getChildren().size());
long expectedTotalTime =
time6.getTime() - time5.getTime() +
time4.getTime() - time3.getTime() +
time2.getTime() - time1.getTime();
assertEquals(expectedTotalTime, thisWeekActivity.getTotalElapsed());
assertEquals(expectedTotalTime, thisWeekActivity.getElapsed(new DateRangeActivityDelegate(thisWeekActivity,
task1, null, null)));
}
public void testTaskListManagerInactivity() {
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
DateRangeContainer activityThisWeek = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(activityThisWeek);
assertEquals(0, activityThisWeek.getChildren().size());
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
activityThisWeek.getStart().getTime(), activityThisWeek.getStart().getTime());
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
activityThisWeek.getEnd().getTime(), activityThisWeek.getEnd().getTime());
Calendar inactivityStart = GregorianCalendar.getInstance();
Calendar inactivityEnd = GregorianCalendar.getInstance();
inactivityEnd.add(Calendar.HOUR_OF_DAY, 1);
InteractionEvent inactivityEvent1 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, inactivityStart.getTime(), inactivityStart.getTime());
InteractionEvent inactivityEvent2 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, inactivityEnd.getTime(), inactivityEnd.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent2);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(1, activityThisWeek.getChildren().size());
long expectedTotalTime = (activityThisWeek.getEnd().getTime().getTime() - activityThisWeek.getStart().getTime()
.getTime())
- (inactivityEnd.getTime().getTime() - inactivityStart.getTime().getTime());
assertEquals(expectedTotalTime, activityThisWeek.getTotalElapsed());
assertEquals(expectedTotalTime, activityThisWeek.getElapsed(new DateRangeActivityDelegate(activityThisWeek,
task1, null, null)));
}
// attention:Deactivated -> task:Activated -> attention:Activated ->
// task:Deactivated
public void testInterleavedActivation() {
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
DateRangeContainer activityThisWeek = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(activityThisWeek);
assertEquals(0, activityThisWeek.getChildren().size());
Calendar taskActivationStart = GregorianCalendar.getInstance();
taskActivationStart.add(Calendar.MILLISECOND, 15);
Calendar taskActivationStop = GregorianCalendar.getInstance();
taskActivationStop.add(Calendar.MILLISECOND, 25);
Calendar inactivityStart = GregorianCalendar.getInstance();
inactivityStart.add(Calendar.MILLISECOND, 5);
Calendar inactivityStop = GregorianCalendar.getInstance();
inactivityStop.add(Calendar.MILLISECOND, 18);
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
taskActivationStart.getTime(), taskActivationStart.getTime());
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
taskActivationStop.getTime(), taskActivationStop.getTime());
InteractionEvent inactivityEvent1 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, inactivityStart.getTime(), inactivityStart.getTime());
InteractionEvent inactivityEvent2 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, inactivityStop.getTime(), inactivityStop.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent2);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(1, activityThisWeek.getChildren().size());
long expectedTotalTime = taskActivationStop.getTimeInMillis() - taskActivationStart.getTimeInMillis();
assertEquals(expectedTotalTime, activityThisWeek.getTotalElapsed());
assertEquals(expectedTotalTime, activityThisWeek.getElapsed(new DateRangeActivityDelegate(activityThisWeek,
task1, null, null)));
}
// task:Activated -> attention:Deactivated -> task:Deactivated ->
// attention:Activated
public void testInterleavedActivation2() {
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
DateRangeContainer activityThisWeek = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
assertNotNull(activityThisWeek);
assertEquals(0, activityThisWeek.getChildren().size());
Calendar taskActivationStart = GregorianCalendar.getInstance();
taskActivationStart.add(Calendar.MILLISECOND, 10);
Calendar taskActivationStop = GregorianCalendar.getInstance();
taskActivationStop.add(Calendar.MILLISECOND, 20);
Calendar inactivityStart = GregorianCalendar.getInstance();
inactivityStart.add(Calendar.MILLISECOND, 15);
Calendar inactivityStop = GregorianCalendar.getInstance();
inactivityStop.add(Calendar.MILLISECOND, 25);
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
taskActivationStart.getTime(), taskActivationStart.getTime());
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
taskActivationStop.getTime(), taskActivationStop.getTime());
InteractionEvent inactivityEvent1 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, inactivityStart.getTime(), inactivityStart.getTime());
InteractionEvent inactivityEvent2 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
MylarContextManager.ACTIVITY_HANDLE_ATTENTION, "originId", "navigatedRelation",
MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, inactivityStop.getTime(), inactivityStop.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent2);
assertEquals(1, activityThisWeek.getChildren().size());
long expectedTotalTime = inactivityStart.getTimeInMillis() - taskActivationStart.getTimeInMillis();
assertEquals(expectedTotalTime, activityThisWeek.getTotalElapsed());
assertEquals(expectedTotalTime, activityThisWeek.getElapsed(new DateRangeActivityDelegate(activityThisWeek,
task1, null, null)));
}
public void testResetAndRollOver() {
DateRangeContainer pastWeeks = MylarTaskListPlugin.getTaskListManager().getActivityPast();
DateRangeContainer previousWeek = MylarTaskListPlugin.getTaskListManager().getActivityPrevious();
DateRangeContainer thisWeek = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
DateRangeContainer nextWeek = MylarTaskListPlugin.getTaskListManager().getActivityNextWeek();
DateRangeContainer futureWeeks = MylarTaskListPlugin.getTaskListManager().getActivityFuture();
assertTrue(thisWeek.isPresent());
assertTrue(nextWeek.isFuture());
long pastStartTime = pastWeeks.getEnd().getTimeInMillis();
long previousStartTime = previousWeek.getStart().getTimeInMillis();
long thisWeekStartTime = thisWeek.getStart().getTimeInMillis();
long nextStartTime = nextWeek.getStart().getTimeInMillis();
long futureStartTime = futureWeeks.getStart().getTimeInMillis();
Calendar pastWeeksTaskStart = Calendar.getInstance();
pastWeeksTaskStart.setTimeInMillis(pastStartTime - 10);
assertTrue(pastWeeks.includes(pastWeeksTaskStart));
Calendar previousWeekTaskStart = Calendar.getInstance();
previousWeekTaskStart.setTimeInMillis(previousStartTime + 10);
assertTrue(previousWeek.includes(previousWeekTaskStart));
Calendar thisWeekTaskStart = Calendar.getInstance();
thisWeekTaskStart.setTimeInMillis(thisWeekStartTime + 10);
assertTrue(thisWeek.includes(thisWeekTaskStart));
Calendar thisWeekTaskStop = Calendar.getInstance();
thisWeekTaskStop.setTimeInMillis(thisWeek.getEnd().getTimeInMillis() - 10);
assertTrue(thisWeek.includes(thisWeekTaskStop));
Calendar nextWeekTaskStart = Calendar.getInstance();
nextWeekTaskStart.setTimeInMillis(nextStartTime + 10);
assertTrue(nextWeek.includes(nextWeekTaskStart));
Calendar futureWeekTaskStart = Calendar.getInstance();
futureWeekTaskStart.setTimeInMillis(futureStartTime + 10);
assertTrue(futureWeeks.includes(futureWeekTaskStart));
ITask task1 = new Task("task 1", "Task 1", true);
MylarTaskListPlugin.getTaskListManager().getTaskList().addTask(task1);
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
thisWeekTaskStart.getTime(), thisWeekTaskStart.getTime());
InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1
.getHandleIdentifier(), "originId", "navigatedRelation", MylarContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
thisWeekTaskStop.getTime(), thisWeekTaskStop.getTime());
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
assertEquals(1, thisWeek.getChildren().size());
assertEquals(thisWeekTaskStop.getTime().getTime() - thisWeekTaskStart.getTime().getTime(),
thisWeek.getTotalElapsed());
// ROLL OVER
MylarTaskListPlugin.getTaskListManager().startTime = new Date(nextWeek.getStart().getTimeInMillis() + 10);
MylarTaskListPlugin.getTaskListManager().resetAndRollOver();
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event1);
MylarTaskListPlugin.getTaskListManager().parseInteractionEvent(event2);
DateRangeContainer newPastWeeks = MylarTaskListPlugin.getTaskListManager().getActivityPast();
DateRangeContainer newPreviousWeek = MylarTaskListPlugin.getTaskListManager().getActivityPrevious();
DateRangeContainer newThisWeek = MylarTaskListPlugin.getTaskListManager().getActivityThisWeek();
DateRangeContainer newNextWeek = MylarTaskListPlugin.getTaskListManager().getActivityNextWeek();
//DateRangeContainer newFutureWeeks = MylarTaskListPlugin.getTaskListManager().getActivityFuture();
assertTrue(newPastWeeks.includes(previousWeekTaskStart));
assertTrue(newPreviousWeek.includes(thisWeekTaskStart));
assertTrue(newThisWeek.includes(nextWeekTaskStart));
assertTrue(newNextWeek.includes(futureWeekTaskStart));
assertFalse(newThisWeek.includes(thisWeekTaskStart));
assertFalse(newThisWeek.isPresent());
assertTrue(newThisWeek.isFuture());
assertEquals(1, newPreviousWeek.getChildren().size());
assertEquals(thisWeekTaskStop.getTime().getTime() - thisWeekTaskStart.getTime().getTime(),
newPreviousWeek.getTotalElapsed());
}
}