public void testSaveContextOnCommitForExistingTask() throws Exception { myTaskManager.getState().saveContextOnCommit = true; assertEquals(1, myTaskManager.getLocalTasks().size()); Task task = myRepository.findTask("TEST-001"); assertNotNull(task); assertEquals( 1, myChangeListManager.getChangeListsCopy().size()); // default change list should be here activateAndCreateChangelist(task); myChangeListManager.waitUntilRefreshed(); assertEquals(2, myTaskManager.getLocalTasks().size()); List<LocalChangeList> copy = myChangeListManager.getChangeListsCopy(); assertEquals(copy.toString(), 2, copy.size()); LocalTask localTask = myTaskManager.getActiveTask(); List<ChangeListInfo> changelists = localTask.getChangeLists(); ChangeListInfo info = changelists.get(0); LocalChangeList changeList = myChangeListManager.getChangeList(info.id); assertNotNull(changeList); CommitChangeListDialog.commitChanges( getProject(), Collections.<Change>emptyList(), changeList, null, changeList.getName()); assertEquals(2, myTaskManager.getLocalTasks().size()); // no extra task created assertEquals(2, myChangeListManager.getChangeListsCopy().size()); assertEquals( localTask, myTaskManager.getAssociatedTask(changeList)); // association should survive }
public void testRemoveChangelistViaVcsAction() throws Exception { Task task = myRepository.findTask("TEST-001"); assertNotNull(task); activateAndCreateChangelist(task); myChangeListManager.waitUntilRefreshed(); LocalTask defaultTask = myTaskManager.findTask(LocalTaskImpl.DEFAULT_TASK_ID); assertNotNull(defaultTask); activateAndCreateChangelist(defaultTask); myChangeListManager.waitUntilRefreshed(); assertEquals(defaultTask, myTaskManager.getActiveTask()); LocalTask anotherTask = myTaskManager.findTask("TEST-001"); assertNotNull(anotherTask); LocalChangeList defaultChangeList = myChangeListManager.findChangeList(LocalChangeList.DEFAULT_NAME); assertNotNull(defaultChangeList); LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary"); assertNotNull(anotherChangeList); removeChangeList(anotherChangeList); assertEquals(1, anotherTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeListsCopy().size()); assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeList)); assertEquals(LocalChangeList.DEFAULT_NAME, defaultChangeList.getName()); }
@Override public void trackContext(LocalChangeList changeList) { ChangeListInfo changeListInfo = new ChangeListInfo(changeList); String changeListName = changeList.getName(); LocalTaskImpl task = createLocalTask(changeListName); task.addChangelist(changeListInfo); addTask(task); if (changeList.isDefault()) { activateTask(task, false); } }
private void createChangeList(LocalTask task, String name, @Nullable String comment) { LocalChangeList changeList = myChangeListManager.findChangeList(name); if (changeList == null) { changeList = myChangeListManager.addChangeList(name, comment); } else { final LocalTask associatedTask = getAssociatedTask(changeList); if (associatedTask != null) { associatedTask.removeChangelist(new ChangeListInfo(changeList)); } changeList.setComment(comment); } task.addChangelist(new ChangeListInfo(changeList)); myChangeListManager.setDefaultChangeList(changeList); }
@Nullable @Override public LocalTask getAssociatedTask(LocalChangeList list) { for (LocalTask task : getLocalTasks()) { for (ChangeListInfo changeListInfo : task.getChangeLists()) { if (changeListInfo.id.equals(list.getId())) { return task; } } } return null; }
private LocalTask restoreVcsContext(LocalTask task) { if (!isVcsEnabled()) return task; List<ChangeListInfo> changeLists = task.getChangeLists(); if (!changeLists.isEmpty()) { ChangeListInfo info = changeLists.get(0); LocalChangeList changeList = myChangeListManager.getChangeList(info.id); if (changeList == null) { changeList = myChangeListManager.addChangeList(info.name, info.comment); info.id = changeList.getId(); } myChangeListManager.setDefaultChangeList(changeList); } List<BranchInfo> branches = task.getBranches(false); VcsTaskHandler.TaskInfo info = fromBranches(branches); VcsTaskHandler[] handlers = VcsTaskHandler.getAllHandlers(myProject); for (VcsTaskHandler handler : handlers) { handler.switchToTask(info); } return task; }
public void testSaveContextOnCommit() throws Exception { myTaskManager.getState().saveContextOnCommit = true; assertEquals(1, myTaskManager.getLocalTasks().size()); assertEquals(1, myChangeListManager.getChangeListsCopy().size()); LocalChangeList changeList = addChangeList("New Changelist", ""); assertEquals(1, myTaskManager.getLocalTasks().size()); assertEquals(2, myChangeListManager.getChangeListsCopy().size()); CommitChangeListDialog.commitChanges( getProject(), Collections.<Change>emptyList(), changeList, null, changeList.getName()); assertEquals(2, myTaskManager.getLocalTasks().size()); // extra task created assertEquals(2, myChangeListManager.getChangeListsCopy().size()); assertTrue( ContainerUtil.exists( myTaskManager.getLocalTasks(), task -> { return task.getSummary().equals("New Changelist"); })); }
public void testSwitchingTasks() throws Exception { final LocalTask defaultTask = myTaskManager.getLocalTasks().get(0); Task task = myRepository.findTask("TEST-001"); assertNotNull(task); myTaskManager.activateTask(task, false); assertEquals(2, myTaskManager.getLocalTasks().size()); LocalTask localTask = myTaskManager.getActiveTask(); assertEquals(task, localTask); assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeListsCopy().size()); assertEquals( defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeListsCopy().get(0))); myTaskManager.activateTask(defaultTask, false); assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeListsCopy().size()); assertEquals( defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeListsCopy().get(0))); activateAndCreateChangelist(localTask); assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(2, myChangeListManager.getChangeListsCopy().size()); LocalChangeList activeChangeList = myChangeListManager.getDefaultChangeList(); LocalChangeList anotherChangeList = myChangeListManager .getChangeListsCopy() .get(1 - myChangeListManager.getChangeListsCopy().indexOf(activeChangeList)); assertNotNull(activeChangeList); assertEquals(localTask, myTaskManager.getAssociatedTask(activeChangeList)); assertEquals("TEST-001 Summary", activeChangeList.getName()); assertEquals(defaultTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals(LocalChangeList.DEFAULT_NAME, anotherChangeList.getName()); myTaskManager.activateTask(defaultTask, false); myChangeListManager.waitUntilRefreshed(); assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(2, myChangeListManager.getChangeListsCopy().size()); activeChangeList = myChangeListManager.getDefaultChangeList(); anotherChangeList = myChangeListManager .getChangeListsCopy() .get(1 - myChangeListManager.getChangeListsCopy().indexOf(activeChangeList)); assertNotNull(activeChangeList); assertEquals(defaultTask, myTaskManager.getAssociatedTask(activeChangeList)); assertEquals(LocalChangeList.DEFAULT_NAME, activeChangeList.getName()); assertEquals(localTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals("TEST-001 Summary", anotherChangeList.getName()); }