/******************************************************************************* | |
* Copyright (c) 2011 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.internal.tasks.index.tests.util; | |
import java.util.Date; | |
import java.util.concurrent.atomic.AtomicInteger; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.core.runtime.NullProgressMonitor; | |
import org.eclipse.mylyn.commons.core.DelegatingProgressMonitor; | |
import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; | |
import org.eclipse.mylyn.internal.tasks.core.LocalTask; | |
import org.eclipse.mylyn.internal.tasks.core.RepositoryModel; | |
import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager; | |
import org.eclipse.mylyn.internal.tasks.core.TaskList; | |
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; | |
import org.eclipse.mylyn.internal.tasks.core.data.SynchronizationManger; | |
import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager; | |
import org.eclipse.mylyn.internal.tasks.core.data.TaskDataStore; | |
import org.eclipse.mylyn.tasks.core.ITask; | |
import org.eclipse.mylyn.tasks.core.TaskMapping; | |
import org.eclipse.mylyn.tasks.core.TaskRepository; | |
import org.eclipse.mylyn.tasks.core.data.TaskAttribute; | |
import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper; | |
import org.eclipse.mylyn.tasks.core.data.TaskData; | |
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; | |
import org.eclipse.mylyn.tasks.tests.connector.MockTask; | |
public class MockTestContext { | |
private final TaskList taskList; | |
private final TaskRepositoryManager repositoryManager; | |
private final TaskDataManager dataManager; | |
private final TaskDataStore dataStore; | |
private final TaskActivityManager activityManager; | |
private final SynchronizationManger synchronizationManger; | |
private final RepositoryModel repositoryModel; | |
private final TaskRepository mockRepository; | |
private final TaskRepository localRepository; | |
private final AtomicInteger idSeed = new AtomicInteger(1003); | |
private final FullMockRepositoryConnector mockRepositoryConnector; | |
public MockTestContext() { | |
taskList = new TaskList(); | |
repositoryManager = new TaskRepositoryManager(); | |
mockRepositoryConnector = new FullMockRepositoryConnector(); | |
repositoryManager.addRepositoryConnector(mockRepositoryConnector); | |
mockRepository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, | |
MockRepositoryConnector.REPOSITORY_URL); | |
repositoryManager.addRepository(mockRepository); | |
repositoryManager.addRepositoryConnector(new LocalRepositoryConnector()); | |
localRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND, | |
LocalRepositoryConnector.REPOSITORY_URL); | |
repositoryManager.addRepository(localRepository); | |
dataStore = new TaskDataStore(repositoryManager); | |
activityManager = new TaskActivityManager(repositoryManager, taskList); | |
repositoryModel = new RepositoryModel(taskList, repositoryManager); | |
synchronizationManger = new SynchronizationManger(repositoryModel); | |
dataManager = new TaskDataManager(dataStore, repositoryManager, taskList, activityManager, | |
synchronizationManger); | |
} | |
public TaskList getTaskList() { | |
return taskList; | |
} | |
public TaskRepositoryManager getRepositoryManager() { | |
return repositoryManager; | |
} | |
public TaskDataManager getDataManager() { | |
return dataManager; | |
} | |
public TaskDataStore getDataStore() { | |
return dataStore; | |
} | |
public TaskActivityManager getActivityManager() { | |
return activityManager; | |
} | |
public SynchronizationManger getSynchronizationManger() { | |
return synchronizationManger; | |
} | |
public RepositoryModel getRepositoryModel() { | |
return repositoryModel; | |
} | |
public ITask createLocalTask() { | |
LocalTask task = new LocalTask(Integer.toString(idSeed.incrementAndGet()), "summary"); | |
task.setNotes("description " + task.getTaskKey()); | |
taskList.addTask(task); | |
return task; | |
} | |
public ITask createRepositoryTask() throws CoreException { | |
MockTask task = new MockTask(Integer.toString(idSeed.incrementAndGet())); | |
TaskData taskData = new TaskData(new TaskAttributeMapper(mockRepository), task.getConnectorKind(), | |
task.getRepositoryUrl(), task.getTaskId()); | |
mockRepositoryConnector.getTaskDataHandler().initializeTaskData(mockRepository, taskData, new TaskMapping(), | |
new NullProgressMonitor()); | |
taskData.getRoot().getMappedAttribute(TaskAttribute.SUMMARY).setValue("summary"); | |
taskData.getRoot() | |
.getMappedAttribute(TaskAttribute.DATE_CREATION) | |
.setValue(Long.toString(new Date().getTime())); | |
taskData.getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER).setValue("reporter@example.com"); | |
taskData.getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED).setValue("assignee@example.com"); | |
taskData.getRoot() | |
.getMappedAttribute(TaskAttribute.DESCRIPTION) | |
.setValue("task description " + task.getTaskKey()); | |
mockRepositoryConnector.getTaskMapping(taskData).applyTo(task); | |
dataManager.putSubmittedTaskData(task, taskData, new DelegatingProgressMonitor()); | |
taskList.addTask(task); | |
return task; | |
} | |
public TaskRepository getMockRepository() { | |
return mockRepository; | |
} | |
public FullMockRepositoryConnector getMockRepositoryConnector() { | |
return mockRepositoryConnector; | |
} | |
} |