| /******************************************************************************* |
| * Copyright (c) 2012, 2015 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.context.tasks.tests; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.mylyn.internal.context.core.ContextCorePlugin; |
| import org.eclipse.mylyn.internal.context.tasks.ui.TaskContextStore; |
| import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin; |
| import org.eclipse.mylyn.internal.tasks.core.AbstractTask; |
| import org.eclipse.mylyn.internal.tasks.core.LocalTask; |
| import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager; |
| import org.eclipse.mylyn.internal.tasks.core.TaskList; |
| import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; |
| import org.eclipse.mylyn.tasks.core.ITask; |
| import org.eclipse.mylyn.tasks.tests.TaskTestUtil; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * @author Steffen Pingel |
| */ |
| public class TaskContextStoreTest extends TestCase { |
| |
| private TaskContextStore store; |
| |
| private TaskList taskList; |
| |
| private TaskActivityManager activityManager; |
| |
| @Override |
| @Before |
| public void setUp() throws Exception { |
| TaskTestUtil.resetTaskListAndRepositories(); |
| TasksUiPlugin.getTaskActivityManager().clear(); |
| ContextCorePlugin.getContextManager().resetActivityMetaContext(); |
| |
| store = (TaskContextStore) TasksUiPlugin.getContextStore(); |
| taskList = TasksUiPlugin.getTaskList(); |
| activityManager = TasksUiPlugin.getTaskActivityManager(); |
| } |
| |
| @Override |
| @After |
| public void tearDown() throws Exception { |
| TaskTestUtil.resetTaskListAndRepositories(); |
| TasksUiPlugin.getTaskActivityManager().clear(); |
| } |
| |
| @Test |
| public void testClearContextActivity() { |
| AbstractTask task = new LocalTask("clearContext", "clearContext"); |
| taskList.addTask(task); |
| assertEquals(0, activityManager.getElapsedTime(task)); |
| |
| addTime(task, 60 * 1000); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(task)); |
| |
| store.clearContext(task); |
| assertEquals("Expected activity to remain", 60 * 1000, activityManager.getElapsedTime(task)); |
| } |
| |
| @Test |
| public void testCopyContextActivity() { |
| AbstractTask sourceTask = new LocalTask("sourceTask", "sourceTask"); |
| taskList.addTask(sourceTask); |
| AbstractTask targetTask = new LocalTask("targetTask", "targetTask"); |
| taskList.addTask(targetTask); |
| |
| addTime(sourceTask, 60 * 1000); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(sourceTask)); |
| |
| store.copyContext(sourceTask, targetTask); |
| assertEquals("Expected activity to remain", 60 * 1000, activityManager.getElapsedTime(sourceTask)); |
| assertEquals("Expected activity not be copied", 0, activityManager.getElapsedTime(targetTask)); |
| } |
| |
| @Test |
| public void testDeleteContextActivity() { |
| AbstractTask task = new LocalTask("clearContext", "clearContext"); |
| taskList.addTask(task); |
| assertEquals(0, activityManager.getElapsedTime(task)); |
| |
| addTime(task, 60 * 1000); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(task)); |
| |
| store.deleteContext(task); |
| // this has not been implemented, yet |
| //assertEquals("Expected activity to be cleared", 0, activityManager.getElapsedTime(task)); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(task)); |
| } |
| |
| @Test |
| public void testMergeContextActivity() { |
| AbstractTask sourceTask = new LocalTask("sourceTask", "sourceTask"); |
| taskList.addTask(sourceTask); |
| AbstractTask targetTask = new LocalTask("targetTask", "targetTask"); |
| taskList.addTask(targetTask); |
| |
| addTime(sourceTask, 60 * 1000); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(sourceTask)); |
| |
| store.mergeContext(sourceTask, targetTask); |
| assertEquals("Expected activity to remain", 60 * 1000, activityManager.getElapsedTime(sourceTask)); |
| assertEquals("Expected activity not be copied", 0, activityManager.getElapsedTime(targetTask)); |
| } |
| |
| @Test |
| public void testMoveContextActivity() { |
| AbstractTask sourceTask = new LocalTask("sourceTask", "sourceTask"); |
| taskList.addTask(sourceTask); |
| AbstractTask targetTask = new LocalTask("targetTask", "targetTask"); |
| taskList.addTask(targetTask); |
| |
| addTime(sourceTask, 60 * 1000); |
| assertEquals(60 * 1000, activityManager.getElapsedTime(sourceTask)); |
| |
| store.moveContext(sourceTask, targetTask); |
| assertEquals("Expected activity to be moved", 0, activityManager.getElapsedTime(sourceTask)); |
| assertEquals("Expected activity to be moved", 60 * 1000, activityManager.getElapsedTime(targetTask)); |
| } |
| |
| private void addTime(ITask task, long time) { |
| MonitorUiPlugin.getDefault() |
| .getActivityContextManager() |
| .addActivityTime(task.getHandleIdentifier(), 1, 1 + time); |
| } |
| |
| } |