From 7d9be3c40e52bddbd1fbc322cd93636de9addc8d Mon Sep 17 00:00:00 2001 From: Evgeny Zakrevsky Date: Fri, 23 Nov 2012 19:34:05 +0400 Subject: [PATCH] Tests fixing --- .../intellij/tasks/impl/TaskManagerImpl.java | 55 ++++++++------ .../test/com/intellij/tasks/TaskVcsTest.java | 75 +++++++++++-------- 2 files changed, 75 insertions(+), 55 deletions(-) diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java index f7ff1b11a4fc..996bee6baad7 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java @@ -220,6 +220,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe return myActiveTask; } + @Nullable @Override public LocalTask findTask(String id) { return myTasks.get(id); @@ -279,7 +280,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe try { Task issue = repository.findTask(id); if (issue != null) { - LocalTask localTask = myTasks.get(id); + LocalTask localTask = findTask(id); if (localTask != null) { localTask.updateFromIssue(issue); return localTask; @@ -544,6 +545,28 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe } myContextManager.pack(200, 50); + + // make sure the task is associated with default changelist + LocalTask defaultTask = findTask(LocalTaskImpl.DEFAULT_TASK_ID); + LocalChangeList defaultList = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); + if (defaultList != null && defaultTask != null) { + ChangeListInfo listInfo = new ChangeListInfo(defaultList); + if (!defaultTask.getChangeLists().contains(listInfo)) { + defaultTask.addChangelist(listInfo); + } + } + + // remove already not existing changelists from tasks changelists + for (LocalTask localTask : getLocalTasks()) { + for (Iterator iterator = localTask.getChangeLists().iterator(); iterator.hasNext(); ) { + final ChangeListInfo changeListInfo = iterator.next(); + if (myChangeListManager.getChangeList(changeListInfo.id) == null) { + iterator.remove(); + } + } + } + + myChangeListManager.addChangeListListener(myChangeListListener); } private TaskProjectConfiguration getProjectConfiguration() { @@ -575,29 +598,14 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe }); } - LocalTask defaultTask = myTasks.get(LocalTaskImpl.DEFAULT_TASK_ID); + // make sure that the default task is exist + LocalTask defaultTask = findTask(LocalTaskImpl.DEFAULT_TASK_ID); if (defaultTask == null) { defaultTask = createDefaultTask(); addTask(defaultTask); } - // make sure the task is associated with default changelist - LocalChangeList defaultList = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); - if (defaultList != null) { - ChangeListInfo listInfo = new ChangeListInfo(defaultList); - if (!defaultTask.getChangeLists().contains(listInfo)) { - defaultTask.addChangelist(listInfo); - } - } - - for (LocalTask localTask : getLocalTasks()) { - for (Iterator iterator = localTask.getChangeLists().iterator(); iterator.hasNext(); ) { - final ChangeListInfo changeListInfo = iterator.next(); - if (myChangeListManager.getChangeList(changeListInfo.id) == null) { - iterator.remove(); - } - } - } + // search for active task LocalTask activeTask = null; final List tasks = getLocalTasks(); Collections.sort(tasks, TASK_UPDATE_COMPARATOR); @@ -611,14 +619,13 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe task.setActive(false); } } - - if (activeTask != null) { - myActiveTask = activeTask; + if (activeTask == null) { + activeTask = defaultTask; } + + myActiveTask = activeTask; doActivate(myActiveTask, false); myDispatcher.getMulticaster().taskActivated(myActiveTask); - - myChangeListManager.addChangeListListener(myChangeListListener); } private static LocalTaskImpl createDefaultTask() { diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java index 96cb9f4adfd2..df86637fb2bb 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java @@ -19,12 +19,16 @@ import com.intellij.openapi.util.Condition; import com.intellij.openapi.vcs.ProjectLevelVcsManager; import com.intellij.openapi.vcs.changes.Change; import com.intellij.openapi.vcs.changes.ChangeListManager; +import com.intellij.openapi.vcs.changes.ChangeListManagerImpl; import com.intellij.openapi.vcs.changes.LocalChangeList; import com.intellij.openapi.vcs.changes.committed.MockAbstractVcs; import com.intellij.openapi.vcs.changes.ui.CommitChangeListDialog; import com.intellij.openapi.vcs.impl.projectlevelman.AllVcses; import com.intellij.tasks.impl.LocalTaskImpl; import com.intellij.tasks.impl.TaskChangelistSupport; +import com.intellij.tasks.impl.TaskManagerImpl; +import com.intellij.testFramework.IdeaTestCase; +import com.intellij.testFramework.fixtures.CodeInsightFixtureTestCase; import com.intellij.util.containers.ContainerUtil; import icons.TasksIcons; import org.jetbrains.annotations.NotNull; @@ -38,9 +42,15 @@ import java.util.List; * @author Dmitry Avdeev * Date: 3/5/12 */ -public class TaskVcsTest extends TaskManagerTestCase { +public class TaskVcsTest extends CodeInsightFixtureTestCase { + @SuppressWarnings("JUnitTestCaseWithNonTrivialConstructors") + public TaskVcsTest() { + IdeaTestCase.initPlatformPrefix(); + } - private ChangeListManager myChangeListManager; + + private ChangeListManagerImpl myChangeListManager; + private TaskManagerImpl myTaskManager; public void testInitialState() { assertEquals(1, myTaskManager.getLocalTasks().size()); @@ -48,12 +58,12 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(defaultTask, myTaskManager.getActiveTask()); assertTrue(defaultTask.isDefault()); - assertEquals(1, myChangeListManager.getChangeLists().size()); + assertEquals(1, myChangeListManager.getChangeListsCopy().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); - assertEquals(defaultTask.getChangeLists().get(0).id, myChangeListManager.getChangeLists().get(0).getId()); - assertEquals(defaultTask.getChangeLists().get(0), new ChangeListInfo(myChangeListManager.getChangeLists().get(0))); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeListsCopy().get(0))); + assertEquals(defaultTask.getChangeLists().get(0).id, myChangeListManager.getChangeListsCopy().get(0).getId()); + assertEquals(defaultTask.getChangeLists().get(0), new ChangeListInfo(myChangeListManager.getChangeListsCopy().get(0))); } public void testSwitchingTasks() throws Exception { @@ -70,26 +80,27 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(1, myChangeListManager.getChangeLists().size()); - assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); + assertEquals(1, myChangeListManager.getChangeListsCopy().size()); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeListsCopy().get(0))); myTaskManager.activateTask(defaultTask, false, false); assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(1, myChangeListManager.getChangeLists().size()); - assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); + assertEquals(1, myChangeListManager.getChangeListsCopy().size()); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeListsCopy().get(0))); myTaskManager.activateTask(localTask, false, true); assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); LocalChangeList activeChangeList = myChangeListManager.getDefaultChangeList(); - LocalChangeList anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList)); + LocalChangeList anotherChangeList = myChangeListManager.getChangeListsCopy().get(1 - myChangeListManager.getChangeListsCopy().indexOf(activeChangeList)); assertEquals(localTask, myTaskManager.getAssociatedTask(activeChangeList)); + assertNotNull(activeChangeList); assertEquals(activeChangeList.getName(), "TEST-001 Summary"); assertEquals(defaultTask, myTaskManager.getAssociatedTask(anotherChangeList)); @@ -99,12 +110,13 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); activeChangeList = myChangeListManager.getDefaultChangeList(); - anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList)); + anotherChangeList = myChangeListManager.getChangeListsCopy().get(1 - myChangeListManager.getChangeListsCopy().indexOf(activeChangeList)); assertEquals(defaultTask, myTaskManager.getAssociatedTask(activeChangeList)); + assertNotNull(activeChangeList); assertEquals(activeChangeList.getName(), LocalChangeList.DEFAULT_NAME); assertEquals(localTask, myTaskManager.getAssociatedTask(anotherChangeList)); @@ -127,7 +139,7 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(1, anotherTask.getChangeLists().size()); assertEquals(2, defaultTask.getChangeLists().size()); - assertEquals(3, myChangeListManager.getChangeLists().size()); + assertEquals(3, myChangeListManager.getChangeListsCopy().size()); LocalChangeList defaultChangeListActive = myChangeListManager.findChangeList("Default (1)"); assertNotNull(defaultChangeListActive); @@ -168,7 +180,7 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(0, anotherTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(1, myChangeListManager.getChangeLists().size()); + assertEquals(1, myChangeListManager.getChangeListsCopy().size()); assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeList)); assertEquals(defaultChangeList.getName(), LocalChangeList.DEFAULT_NAME); @@ -190,7 +202,7 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(1, anotherTask.getChangeLists().size()); assertEquals(2, defaultTask.getChangeLists().size()); - assertEquals(3, myChangeListManager.getChangeLists().size()); + assertEquals(3, myChangeListManager.getChangeListsCopy().size()); LocalChangeList defaultChangeListActive = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); assertNotNull(defaultChangeListActive); @@ -215,7 +227,7 @@ public class TaskVcsTest extends TaskManagerTestCase { addChangeList("New Changelist", ""); assertEquals(2, myTaskManager.getLocalTasks().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); LocalChangeList newChangeList = myChangeListManager.findChangeList("New Changelist"); assertNotNull(newChangeList); LocalTask newTask = myTaskManager.getAssociatedTask(newChangeList); @@ -246,7 +258,7 @@ public class TaskVcsTest extends TaskManagerTestCase { myTaskManager.activateTask(task, false, true); assertEquals(2, myTaskManager.getLocalTasks().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); LocalTask localTask = myTaskManager.getActiveTask(); List changelists = localTask.getChangeLists(); ChangeListInfo info = changelists.get(0); @@ -256,7 +268,7 @@ public class TaskVcsTest extends TaskManagerTestCase { CommitChangeListDialog.commitChanges(getProject(), Collections.emptyList(), changeList, null, changeList.getName()); assertEquals(2, myTaskManager.getLocalTasks().size()); // no extra task created - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); assertEquals(localTask, myTaskManager.getAssociatedTask(changeList)); // association should survive } @@ -265,17 +277,17 @@ public class TaskVcsTest extends TaskManagerTestCase { myTaskManager.getState().saveContextOnCommit = true; assertEquals(1, myTaskManager.getLocalTasks().size()); - assertEquals(1, myChangeListManager.getChangeLists().size()); + assertEquals(1, myChangeListManager.getChangeListsCopy().size()); LocalChangeList changeList = addChangeList("New Changelist", ""); assertEquals(1, myTaskManager.getLocalTasks().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); CommitChangeListDialog.commitChanges(getProject(), Collections.emptyList(), changeList, null, changeList.getName()); assertEquals(2, myTaskManager.getLocalTasks().size()); // extra task created - assertEquals(2, myChangeListManager.getChangeLists().size()); + assertEquals(2, myChangeListManager.getChangeListsCopy().size()); assertTrue(ContainerUtil.exists(myTaskManager.getLocalTasks(), new Condition() { @Override @@ -343,17 +355,16 @@ public class TaskVcsTest extends TaskManagerTestCase { @Override public void setUp() throws Exception { super.setUp(); + myVcs = new MockAbstractVcs(getProject()); AllVcses.getInstance(getProject()).registerManually(myVcs); - myChangeListManager = ChangeListManager.getInstance(getProject()); + myChangeListManager = (ChangeListManagerImpl)ChangeListManager.getInstance(getProject()); + myChangeListManager.projectOpened(); + + myTaskManager = (TaskManagerImpl)TaskManager.getManager(getProject()); + myTaskManager.projectOpened(); + myChangeListManager.removeChangeListListener(myTaskManager.getChangeListListener()); - addChangeList(LocalChangeList.DEFAULT_NAME, ""); - final LocalChangeList defaultChangeList = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); - assertNotNull(defaultChangeList); - setDefaultChangeList(defaultChangeList); - for (LocalChangeList changeList : myChangeListManager.getChangeLists()) { - if (!changeList.isDefault()) removeChangeList(changeList); - } ProjectLevelVcsManager.getInstance(getProject()).setDirectoryMapping("", myVcs.getName()); ProjectLevelVcsManager.getInstance(getProject()).hasActiveVcss(); @@ -430,9 +441,11 @@ public class TaskVcsTest extends TaskManagerTestCase { @Override protected void tearDown() throws Exception { try { + myTaskManager.setRepositories(Collections.emptyList()); AllVcses.getInstance(getProject()).unregisterManually(myVcs); } finally { + myTaskManager = null; myVcs = null; } super.tearDown();