/******************************************************************************* * Copyright (c) 2014 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.tasks.tests.core; import java.util.Collections; import junit.framework.TestCase; import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; import org.eclipse.mylyn.internal.tasks.ui.TaskJobFactory; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.core.sync.SynchronizationJob; public class TaskJobFactoryTest extends TestCase { private static abstract class JobCreator { public abstract SynchronizationJob createJob(); } private TaskJobFactory jobFactory; private boolean oldFetchSubtasks; @Override protected void setUp() throws Exception { jobFactory = TasksUiPlugin.getTaskJobFactory(); oldFetchSubtasks = jobFactory.getFetchSubtasks(); } @Override protected void tearDown() throws Exception { jobFactory.setFetchSubtasks(oldFetchSubtasks); } public void testFetchSubtasksDefaultValue() throws Exception { assertTrue(TasksUiPlugin.getTaskJobFactory().getFetchSubtasks()); } private void assertFetchSubtasks(JobCreator jobCreator) { jobFactory.setFetchSubtasks(true); assertTrue(jobCreator.createJob().getFetchSubtasks()); jobFactory.setFetchSubtasks(false); assertFalse(jobCreator.createJob().getFetchSubtasks()); } public void testCreateSynchronizeTasksJob() { assertFetchSubtasks(new JobCreator() { @Override public SynchronizationJob createJob() { return jobFactory.createSynchronizeTasksJob(null, Collections.<ITask> emptySet()); } }); assertFetchSubtasks(new JobCreator() { @Override public SynchronizationJob createJob() { return jobFactory.createSynchronizeTasksJob(null, null, Collections.<ITask> emptySet()); } }); } public void testCreateSynchronizeQueriesJob() { assertFetchSubtasks(new JobCreator() { @Override public SynchronizationJob createJob() { return jobFactory.createSynchronizeQueriesJob(null, new TaskRepository("mock", "http://mock"), Collections.<RepositoryQuery> emptySet()); } }); } public void testCreateSynchronizeRepositoriesJob() { assertFetchSubtasks(new JobCreator() { @Override public SynchronizationJob createJob() { return jobFactory.createSynchronizeRepositoriesJob(null); } }); } }