blob: f859df5c3ead435bb83774e5308f70e50e3f0481 [file] [log] [blame]
/*******************************************************************************
* 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;
}
}