remove nondeterminism ine testCollapsedTiming
* when the test spans the hour boundary, it fails
Change-Id: I1b6fd48587ccfa3921494fff8326b61beb00c093
diff --git a/org.eclipse.mylyn.context.tasks.tests/src/org/eclipse/mylyn/context/tasks/tests/TaskActivityTimingTest.java b/org.eclipse.mylyn.context.tasks.tests/src/org/eclipse/mylyn/context/tasks/tests/TaskActivityTimingTest.java
index 2bb3fe3..abe0d90 100644
--- a/org.eclipse.mylyn.context.tasks.tests/src/org/eclipse/mylyn/context/tasks/tests/TaskActivityTimingTest.java
+++ b/org.eclipse.mylyn.context.tasks.tests/src/org/eclipse/mylyn/context/tasks/tests/TaskActivityTimingTest.java
@@ -428,20 +428,9 @@
endTime2.setTime(startTime2.getTime());
endTime2.add(Calendar.MINUTE, 2);
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), startTime1.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, task1);
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, task1);
+ InteractionEvent activityEvent3 = createTimingEvent(startTime1, startTime1, task2);
// to activity events both within same hour will get collapsed
metaContext.parseEvent(activityEvent1);
@@ -478,10 +467,7 @@
"navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
endActiveTime.getTime(), endActiveTime.getTime());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime.getTime(), endTime.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime, endTime, task1);
ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
activityMonitor.parseInteractionEvent(event1, false);
@@ -508,9 +494,7 @@
///--- 2nd activity on same task
{
Calendar startActiveTime2 = Calendar.getInstance();
- Calendar endActiveTime2 = Calendar.getInstance();
- endActiveTime2.setTimeInMillis(startActiveTime2.getTimeInMillis());
- endActiveTime2.add(Calendar.SECOND, 20);
+ Calendar endActiveTime2 = createCalendar(startActiveTime2, 20);
Calendar startTime2 = Calendar.getInstance();
startTime2.setTimeInMillis(startActiveTime2.getTimeInMillis() + 2000);
@@ -526,10 +510,7 @@
"navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
endActiveTime2.getTime(), endActiveTime2.getTime());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime2, endTime2, task1);
ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
activityMonitor.parseInteractionEvent(event1, false);
@@ -554,9 +535,7 @@
TasksUiPlugin.getTaskList().addTask(task1);
Calendar startTime = Calendar.getInstance();
- Calendar endTime = Calendar.getInstance();
- endTime.setTimeInMillis(startTime.getTimeInMillis());
- endTime.add(Calendar.SECOND, 20);
+ Calendar endTime = createCalendar(startTime, 20);
InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
task1.getHandleIdentifier(), "originId", "navigatedRelation",
@@ -565,10 +544,7 @@
task1.getHandleIdentifier(), "originId", "navigatedRelation",
InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, startTime.getTime(), startTime.getTime());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime.getTime(), endTime.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime, endTime, task1);
ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
activityMonitor.parseInteractionEvent(event1, false);
@@ -587,36 +563,19 @@
}
public void testCollapsedTiming() {
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTimeInMillis(startTime1.getTimeInMillis());
- endTime1.add(Calendar.SECOND, 20);
+ Calendar startTime1 = createCalendar();
+ Calendar endTime1 = createCalendar(startTime1, 20);
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTimeInMillis(endTime1.getTimeInMillis());
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTimeInMillis(startTime2.getTimeInMillis() + 20 * 1000);
+ Calendar startTime2 = createCalendar(endTime1, 0);
+ Calendar endTime2 = createCalendar(startTime2, 20);
- Calendar startTime3 = Calendar.getInstance();
- startTime3.setTimeInMillis(endTime2.getTimeInMillis());
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTimeInMillis(startTime3.getTimeInMillis() + 20 * 1000);
+ Calendar startTime3 = createCalendar(endTime2, 0);
+ Calendar endTime3 = createCalendar(startTime3, 20);
InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, "handle");
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, "handle");
+ InteractionEvent activityEvent3 = createTimingEvent(startTime3, endTime3, "handle");
mockContext.parseEvent(activityEvent1);
mockContext.parseEvent(activityEvent2);
@@ -633,31 +592,18 @@
* test that total collapsed time is same when events are separated in time
*/
public void testCollapsedTiming2() {
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTimeInMillis(startTime1.getTimeInMillis());
- endTime1.add(Calendar.SECOND, 20);
+ Calendar startTime1 = createCalendar();
+ Calendar endTime1 = createCalendar(startTime1, 20);
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTimeInMillis(endTime1.getTimeInMillis());
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTimeInMillis(startTime2.getTimeInMillis() + 20 * 1000);
+ Calendar startTime2 = createCalendar(endTime1, 0);
+ Calendar endTime2 = createCalendar(startTime2, 20);
- Calendar startTime3 = Calendar.getInstance();
- startTime3.setTimeInMillis(endTime2.getTimeInMillis());
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTimeInMillis(startTime3.getTimeInMillis() + 50 * 1000);
+ Calendar startTime3 = createCalendar(endTime2, 0);
+ Calendar endTime3 = createCalendar(startTime3, 50);
InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, "handle");
+ InteractionEvent activityEvent3 = createTimingEvent(startTime3, endTime3, "handle");
mockContext.parseEvent(activityEvent1);
mockContext.parseEvent(activityEvent3);
@@ -689,15 +635,9 @@
TasksUiPlugin.getTaskActivityManager().activateTask(task1);
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, task1);
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, task1);
metaContext.parseEvent(activityEvent1);
activityMonitor.parseInteractionEvent(activityEvent1, false);
@@ -724,27 +664,17 @@
// test collapsing of attention events when two or more
// task attention events occur sequentially
Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTimeInMillis(startTime1.getTimeInMillis());
- endTime1.add(Calendar.SECOND, 20);
+ Calendar endTime1 = createCalendar(startTime1, 20);
Calendar startTime2 = Calendar.getInstance();
startTime2.setTime(endTime1.getTime());
startTime2.add(Calendar.SECOND, 2);
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.SECOND, 20);
+ Calendar endTime2 = createCalendar(startTime2, 20);
InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle1",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, "handle1");
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle2",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, "handle2");
mockContext.parseEvent(activityEvent1);
mockContext.parseEvent(activityEvent2);
@@ -787,20 +717,11 @@
AbstractTask task1 = new LocalTask("task 1", "Task 1");
TasksUiPlugin.getTaskList().addTask(task1);
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, task1);
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, task1);
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
+ InteractionEvent activityEvent3 = createTimingEvent(startTime3, endTime3, task1);
List<InteractionEvent> events = new ArrayList<InteractionEvent>();
events.add(activityEvent1);
@@ -835,10 +756,7 @@
activityEnd.setTimeInMillis(activityStart.getTimeInMillis());
activityEnd.add(Calendar.HOUR_OF_DAY, 1);
- InteractionEvent activityEvent = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, activityStart.getTime(), activityEnd.getTime());
+ InteractionEvent activityEvent = createTimingEvent(activityStart, activityEnd, task1);
activityMonitor.parseInteractionEvent(event1, false);
activityMonitor.parseInteractionEvent(activityEvent, false);
@@ -890,20 +808,11 @@
metaContext.reset();
assertEquals(0, metaContext.getInteractionHistory().size());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
+ InteractionEvent activityEvent1 = createTimingEvent(startTime1, endTime1, task1);
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
+ InteractionEvent activityEvent2 = createTimingEvent(startTime2, endTime2, task1);
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
+ InteractionEvent activityEvent3 = createTimingEvent(startTime3, endTime3, task1);
metaContext.parseEvent(activityEvent1);
activityMonitor.parseInteractionEvent(activityEvent1, false);
@@ -1354,4 +1263,32 @@
assertEquals(1000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task2));
}
+
+ /**
+ * @return a Calendar far from hour boundaries
+ */
+ private Calendar createCalendar() {
+ Calendar startTime1 = Calendar.getInstance();
+ startTime1.add(Calendar.HOUR, -1);
+ startTime1.set(Calendar.MINUTE, 10);
+ return startTime1;
+ }
+
+ private Calendar createCalendar(Calendar time, int secondsToAdd) {
+ Calendar newTime = Calendar.getInstance();
+ newTime.setTimeInMillis(time.getTimeInMillis());
+ newTime.add(Calendar.SECOND, secondsToAdd);
+ return newTime;
+ }
+
+ private InteractionEvent createTimingEvent(Calendar startTime, Calendar endTime, ITask task) {
+ return createTimingEvent(startTime, endTime, task.getHandleIdentifier());
+ }
+
+ private InteractionEvent createTimingEvent(Calendar startTime, Calendar endTime, String handle) {
+ return new InteractionEvent(InteractionEvent.Kind.ATTENTION,
+ InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, handle,
+ InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
+ InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime.getTime(), endTime.getTime());
+ }
}