Tasks. 1. Simplify controls on NewEditChangelistPanel. 2. Bug: not fully updating local task from issue.

This commit is contained in:
Evgeny Zakrevsky
2012-11-09 21:29:20 +04:00
parent d23cc29e8c
commit 12697600dc
11 changed files with 173 additions and 215 deletions
@@ -88,7 +88,7 @@ public abstract class TaskManager {
@Nullable
public abstract LocalTask getAssociatedTask(LocalChangeList list);
public abstract void associateWithTask(LocalChangeList changeList, boolean withCurrent);
public abstract void trackContext(LocalChangeList changeList);
public abstract void disassociateFromTask(LocalChangeList changeList);
@@ -66,7 +66,7 @@ public class AssociateWithTaskAction extends ToggleAction implements DumbAware {
TaskManager manager = TaskManager.getManager(project);
for (ChangeList list : lists) {
if (list instanceof LocalChangeList) {
manager.associateWithTask((LocalChangeList)list, true);
manager.trackContext((LocalChangeList)list);
}
}
}
@@ -39,9 +39,15 @@ public class CreateChangelistAction extends BaseTaskAction {
if (manager == null || !manager.isVcsEnabled()) {
presentation.setText(getTemplatePresentation().getText());
presentation.setEnabled(false);
} else {
presentation.setText("Create changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'");
}
else {
presentation.setEnabled(true);
if (manager.getActiveTask().getChangeLists().size() == 0) {
presentation.setText("Create changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'");
}
else {
presentation.setText("Add changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'");
}
}
}
}
@@ -51,7 +57,8 @@ public class CreateChangelistAction extends BaseTaskAction {
TaskManagerImpl manager = (TaskManagerImpl)getTaskManager(e);
assert manager != null;
LocalTask activeTask = manager.getActiveTask();
String name = Messages.showInputDialog(getProject(e), "Changelist name:", "Create Changelist", null, manager.getChangelistName(activeTask), null);
String name =
Messages.showInputDialog(getProject(e), "Changelist name:", "Create Changelist", null, manager.getChangelistName(activeTask), null);
if (name != null) {
manager.createChangeList(activeTask, name);
}
@@ -134,18 +134,19 @@ public class LocalTaskImpl extends LocalTask {
}
private void copy(Task issue) {
mySummary = issue.getSummary();
myDescription = issue.getDescription();
myComments = issue.getComments();
myClosed = issue.isClosed();
myCreated = issue.getCreated();
if (Comparing.compare(myUpdated, issue.getUpdated()) < 0) {
myUpdated = issue.getUpdated();
}
myPresentableName = issue.getPresentableName();
mySummary = issue.getSummary();
myClosed = issue.isClosed();
myIssueUrl = issue.getIssueUrl();
myType = issue.getType();
myDescription = issue.getDescription();
myComments = issue.getComments();
myPresentableName = issue.getPresentableName();
myCustomIcon = issue.getCustomIcon();
myIssueUrl = issue.getIssueUrl();
myRepository = issue.getRepository();
}
public void setId(String id) {
@@ -20,15 +20,14 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.changes.LocalChangeList;
import com.intellij.openapi.vcs.changes.ui.EditChangelistSupport;
import com.intellij.tasks.ChangeListInfo;
import com.intellij.tasks.LocalTask;
import com.intellij.tasks.actions.OpenTaskDialog;
import com.intellij.ui.EditorTextField;
import com.intellij.ui.TextFieldWithAutoCompletionContributor;
import com.intellij.util.Consumer;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
/**
* @author Dmitry Avdeev
@@ -51,66 +50,37 @@ public class TaskChangelistSupport implements EditChangelistSupport {
TextFieldWithAutoCompletionContributor.installCompletion(document, myProject, completionProvider, false);
}
public Consumer<LocalChangeList> addControls(JPanel bottomPanel, @Nullable final LocalChangeList initial) {
if (initial == null || myTaskManager.getAssociatedTask(initial) == null) {
return addControlsForNotAssociatedChangelist(bottomPanel, initial);
}
else {
return addControlsForAssociatedChangelist(bottomPanel, initial);
}
}
private Consumer<LocalChangeList> addControlsForAssociatedChangelist(final JPanel bottomPanel, final LocalChangeList initial) {
final JCheckBox checkBox = new JCheckBox("Disassociate from task");
checkBox.setMnemonic('A');
checkBox.setSelected(false);
bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP));
bottomPanel.add(checkBox);
return new Consumer<LocalChangeList>() {
public void consume(LocalChangeList changeList) {
if (checkBox.isSelected()) {
myTaskManager.disassociateFromTask(changeList);
}
}
};
}
private Consumer<LocalChangeList> addControlsForNotAssociatedChangelist(final JPanel bottomPanel, @Nullable final LocalChangeList initial) {
final JCheckBox checkBox = new JCheckBox("Associate with:");
checkBox.setMnemonic('A');
public Consumer<LocalChangeList> addControls(JPanel bottomPanel, final LocalChangeList initial) {
final JCheckBox checkBox = new JCheckBox("Track context");
checkBox.setMnemonic('t');
checkBox.setToolTipText("Reload context (e.g. open editors) when changelist is set active");
ButtonGroup group = new ButtonGroup();
final JRadioButton withCurrent = new JRadioButton("current task");
withCurrent.setMnemonic('c');
group.add(withCurrent);
JRadioButton withNew = new JRadioButton("new task");
withNew.setMnemonic('n');
group.add(withNew);
JPanel panel = new JPanel(new BorderLayout());
panel.add(withCurrent, BorderLayout.NORTH);
panel.add(withNew, BorderLayout.SOUTH);
bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP));
checkBox.setSelected(initial == null ?
myTaskManager.getState().trackContextForNewChangelist :
myTaskManager.getAssociatedTask(initial) != null);
bottomPanel.add(checkBox);
bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP));
bottomPanel.add(panel);
checkBox.setSelected(myTaskManager.getState().associateWithTaskForNewChangelist);
if (myTaskManager.getState().associateWithCurrentTaskForNewChangelist) {
withCurrent.setSelected(true);
}
else {
withNew.setSelected(true);
}
return new Consumer<LocalChangeList>() {
public void consume(LocalChangeList changeList) {
myTaskManager.getState().associateWithTaskForNewChangelist = checkBox.isSelected();
myTaskManager.getState().associateWithCurrentTaskForNewChangelist = withCurrent.isSelected();
if (checkBox.isSelected()) {
myTaskManager.associateWithTask(changeList, withCurrent.isSelected());
if (initial == null) {
myTaskManager.getState().trackContextForNewChangelist = checkBox.isSelected();
if (checkBox.isSelected()) {
myTaskManager.trackContext(changeList);
}
else {
myTaskManager.getActiveTask().addChangelist(new ChangeListInfo(changeList));
}
}
else {
final LocalTask associatedTask = myTaskManager.getAssociatedTask(changeList);
if (checkBox.isSelected()) {
if (associatedTask == null) {
myTaskManager.trackContext(changeList);
}
}
else {
if (associatedTask != null) {
myTaskManager.removeTask(associatedTask);
}
}
}
}
};
@@ -651,7 +651,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe
}
private static LocalTaskImpl createDefaultTask() {
return new LocalTaskImpl(LocalTaskImpl.DEFAULT_TASK_ID, "Default task");
return new LocalTaskImpl(LocalTaskImpl.DEFAULT_TASK_ID, "Default");
}
public void disposeComponent() {
@@ -790,19 +790,14 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe
}
@Override
public void associateWithTask(LocalChangeList changeList, final boolean withCurrent) {
public void trackContext(LocalChangeList changeList) {
ChangeListInfo changeListInfo = new ChangeListInfo(changeList);
if (withCurrent) {
getActiveTask().addChangelist(changeListInfo);
}
else {
String changeListName = changeList.getName();
LocalTaskImpl task = createLocalTask(changeListName);
task.addChangelist(changeListInfo);
addTask(task);
if (changeList.isDefault()) {
activateTask(task, false, false);
}
String changeListName = changeList.getName();
LocalTaskImpl task = createLocalTask(changeListName);
task.addChangelist(changeListInfo);
addTask(task);
if (changeList.isDefault()) {
activateTask(task, false, false);
}
}
@@ -846,13 +841,19 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe
}
public String getChangelistName(Task task) {
TaskRepository repository = task.getRepository();
if (repository != null && myConfig.changelistNameFormat != null) {
if (task.isIssue() && myConfig.changelistNameFormat != null) {
return TaskUtil.formatTask(task, myConfig.changelistNameFormat);
}
return task.getSummary();
}
public ChangeListAdapter getChangeListListener() {
if (ApplicationManager.getApplication().isUnitTestMode()) {
return myChangeListListener;
}
throw new UnsupportedOperationException();
}
public static class Config {
@Property(surroundWithTag = false)
@@ -870,8 +871,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe
public boolean clearContext = true;
public boolean createChangelist = true;
public boolean saveContextOnCommit = true;
public boolean associateWithTaskForNewChangelist = true;
public boolean associateWithCurrentTaskForNewChangelist = true;
public boolean trackContextForNewChangelist = false;
public boolean markAsInProgress = false;
public String changelistNameFormat = "{id} {summary}";
@@ -30,8 +30,8 @@ public class TaskManagerTest extends TaskManagerTestCase {
}
};
myManager.addTaskListener(listener);
myManager.removeTaskListener(listener);
myTaskManager.addTaskListener(listener);
myTaskManager.removeTaskListener(listener);
}
public void testTaskSwitch() throws Exception {
@@ -43,16 +43,16 @@ public class TaskManagerTest extends TaskManagerTestCase {
count.set(count.get() + 1);
}
};
myManager.addTaskListener(listener);
LocalTask localTask = myManager.createLocalTask("foo");
myManager.activateTask(localTask, false, false);
myTaskManager.addTaskListener(listener);
LocalTask localTask = myTaskManager.createLocalTask("foo");
myTaskManager.activateTask(localTask, false, false);
assertEquals(1, count.get().intValue());
LocalTask other = myManager.createLocalTask("bar");
myManager.activateTask(other, false, false);
LocalTask other = myTaskManager.createLocalTask("bar");
myTaskManager.activateTask(other, false, false);
assertEquals(2, count.get().intValue());
myManager.removeTaskListener(listener);
myTaskManager.removeTaskListener(listener);
}
public void testNotifications() throws Exception {
@@ -83,13 +83,13 @@ public class TaskManagerTest extends TaskManagerTestCase {
throw new Exception();
}
};
myManager.setRepositories(Collections.singletonList(repository));
myTaskManager.setRepositories(Collections.singletonList(repository));
myManager.updateIssues(null);
myTaskManager.updateIssues(null);
assertNull(notificationRef.get());
myManager.getIssues("");
myTaskManager.getIssues("");
assertNotNull(notificationRef.get());
}
@@ -97,7 +97,7 @@ public class TaskManagerTest extends TaskManagerTestCase {
public void testSharedServers() throws Exception {
TaskRepository repository = new YouTrackRepository(new YouTrackRepositoryType());
repository.setShared(true);
myManager.setRepositories(Collections.singletonList(repository));
myTaskManager.setRepositories(Collections.singletonList(repository));
TaskProjectConfiguration configuration = ServiceManager.getService(getProject(), TaskProjectConfiguration.class);
TaskProjectConfiguration state = configuration.getState();
@@ -106,14 +106,14 @@ public class TaskManagerTest extends TaskManagerTestCase {
Element element = XmlSerializer.serialize(state);
configuration.servers.clear();
myManager.setRepositories(Collections.<TaskRepository>emptyList());
myTaskManager.setRepositories(Collections.<TaskRepository>emptyList());
configuration.loadState(XmlSerializer.deserialize(element, TaskProjectConfiguration.class));
assertEquals(1, state.servers.size());
myManager.projectOpened();
myTaskManager.projectOpened();
TaskRepository[] repositories = myManager.getAllRepositories();
TaskRepository[] repositories = myTaskManager.getAllRepositories();
assertEquals(1, repositories.length);
}
@@ -126,13 +126,13 @@ public class TaskManagerTest extends TaskManagerTestCase {
return super.getIssues(query, max, since);
}
};
myManager.setRepositories(Collections.singletonList(repository));
myTaskManager.setRepositories(Collections.singletonList(repository));
List<Task> issues = myManager.getIssues("");
List<Task> issues = myTaskManager.getIssues("");
assertEquals(1, issues.size());
stopper.set(Boolean.TRUE);
issues = myManager.getIssues("");
issues = myTaskManager.getIssues("");
assertEquals(1, issues.size());
}
}
@@ -16,31 +16,31 @@ public abstract class TaskManagerTestCase extends LightCodeInsightFixtureTestCas
IdeaTestCase.initPlatformPrefix();
}
protected TaskManagerImpl myManager;
protected TaskManagerImpl myTaskManager;
@Override
protected void setUp() throws Exception {
super.setUp();
myManager = (TaskManagerImpl)TaskManager.getManager(getProject());
myTaskManager = (TaskManagerImpl)TaskManager.getManager(getProject());
removeAllTasks();
}
@Override
protected void tearDown() throws Exception {
try {
myManager.setRepositories(Collections.<TaskRepository>emptyList());
myTaskManager.setRepositories(Collections.<TaskRepository>emptyList());
removeAllTasks();
}
finally {
myManager = null;
myTaskManager = null;
}
super.tearDown();
}
private void removeAllTasks() {
List<LocalTask> tasks = myManager.getLocalTasks();
List<LocalTask> tasks = myTaskManager.getLocalTasks();
for (LocalTask task : tasks) {
myManager.removeTask(task);
myTaskManager.removeTask(task);
}
}
}
@@ -36,17 +36,17 @@ public class TaskSettingsTest extends TaskManagerTestCase {
TaskRepository repository = new YouTrackRepository();
String format = "foo \n bar";
repository.setCommitMessageFormat(format);
myManager.setRepositories(Collections.singletonList(repository));
TaskManagerImpl.Config config = myManager.getState();
myTaskManager.setRepositories(Collections.singletonList(repository));
TaskManagerImpl.Config config = myTaskManager.getState();
Element element = XmlSerializer.serialize(config);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
JDOMUtil.writeDocument(new Document(element), stream, "\n");
Document document = JDOMUtil.loadDocument(new ByteArrayInputStream(stream.toByteArray()));
TaskManagerImpl.Config deserialize = XmlSerializer.deserialize(document, TaskManagerImpl.Config.class);
myManager.loadState(deserialize);
myTaskManager.loadState(deserialize);
TaskRepository[] repositories = myManager.getAllRepositories();
TaskRepository[] repositories = myTaskManager.getAllRepositories();
assertEquals(format, repositories[0].getCommitMessageFormat());
}
}
@@ -43,44 +43,44 @@ public class TaskVcsTest extends TaskManagerTestCase {
private ChangeListManager myChangeListManager;
public void testInitialState() {
assertEquals(1, myManager.getLocalTasks().size());
final LocalTask defaultTask = myManager.getLocalTasks().get(0);
assertEquals(defaultTask, myManager.getActiveTask());
assertEquals(1, myTaskManager.getLocalTasks().size());
final LocalTask defaultTask = myTaskManager.getLocalTasks().get(0);
assertEquals(defaultTask, myTaskManager.getActiveTask());
assertTrue(defaultTask.isDefault());
assertEquals(1, myChangeListManager.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0)));
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)));
}
public void testSwitchingTasks() throws Exception {
final LocalTask defaultTask = myManager.getLocalTasks().get(0);
final LocalTask defaultTask = myTaskManager.getLocalTasks().get(0);
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, false);
myTaskManager.activateTask(task, false, false);
assertEquals(2, myManager.getLocalTasks().size());
assertEquals(2, myTaskManager.getLocalTasks().size());
LocalTask localTask = myManager.getActiveTask();
LocalTask localTask = myTaskManager.getActiveTask();
assertEquals(task, localTask);
assertEquals(0, localTask.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
assertEquals(1, myChangeListManager.getChangeLists().size());
assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0)));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0)));
myManager.activateTask(defaultTask, false, false);
myTaskManager.activateTask(defaultTask, false, false);
assertEquals(0, localTask.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
assertEquals(1, myChangeListManager.getChangeLists().size());
assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0)));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0)));
myManager.activateTask(localTask, false, true);
myTaskManager.activateTask(localTask, false, true);
assertEquals(1, localTask.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
@@ -89,13 +89,13 @@ public class TaskVcsTest extends TaskManagerTestCase {
LocalChangeList activeChangeList = myChangeListManager.getDefaultChangeList();
LocalChangeList anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList));
assertEquals(localTask, myManager.getAssociatedTask(activeChangeList));
assertEquals(localTask, myTaskManager.getAssociatedTask(activeChangeList));
assertEquals(activeChangeList.getName(), "TEST-001 Summary");
assertEquals(defaultTask, myManager.getAssociatedTask(anotherChangeList));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherChangeList.getName(), "Default");
myManager.activateTask(defaultTask, false, false);
myTaskManager.activateTask(defaultTask, false, false);
assertEquals(1, localTask.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
@@ -104,26 +104,26 @@ public class TaskVcsTest extends TaskManagerTestCase {
activeChangeList = myChangeListManager.getDefaultChangeList();
anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList));
assertEquals(defaultTask, myManager.getAssociatedTask(activeChangeList));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(activeChangeList));
assertEquals(activeChangeList.getName(), "Default");
assertEquals(localTask, myManager.getAssociatedTask(anotherChangeList));
assertEquals(localTask, myTaskManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherChangeList.getName(), "TEST-001 Summary");
}
public void testAddChangeListViaCreateChangeListAction() throws Exception {
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, true);
myTaskManager.activateTask(task, false, true);
LocalTask defaultTask = myManager.findTask("Default");
LocalTask defaultTask = myTaskManager.findTask("Default");
assertNotNull(defaultTask);
myManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myManager.getActiveTask());
myTaskManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myTaskManager.getActiveTask());
LocalTask anotherTask = myManager.findTask("TEST-001");
LocalTask anotherTask = myTaskManager.findTask("TEST-001");
assertNotNull(anotherTask);
myManager.createChangeList(defaultTask, "Default (1)");
myTaskManager.createChangeList(defaultTask, "Default (1)");
assertEquals(1, anotherTask.getChangeLists().size());
assertEquals(2, defaultTask.getChangeLists().size());
@@ -137,55 +137,54 @@ public class TaskVcsTest extends TaskManagerTestCase {
LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary");
assertNotNull(anotherChangeList);
assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListActive));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListActive));
assertEquals(defaultChangeListActive.getName(), "Default (1)");
assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListInactive));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListInactive));
assertEquals(defaultChangeListInactive.getName(), "Default");
assertEquals(anotherTask, myManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherTask, myTaskManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherChangeList.getName(), "TEST-001 Summary");
}
public void testRemoveChangelistViaVcsAction() throws Exception {
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, true);
myTaskManager.activateTask(task, false, true);
LocalTask defaultTask = myManager.findTask("Default");
LocalTask defaultTask = myTaskManager.findTask("Default");
assertNotNull(defaultTask);
myManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myManager.getActiveTask());
myTaskManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myTaskManager.getActiveTask());
LocalTask anotherTask = myManager.findTask("TEST-001");
LocalTask anotherTask = myTaskManager.findTask("TEST-001");
assertNotNull(anotherTask);
LocalChangeList defaultChangeList = myChangeListManager.findChangeList("Default");
assertNotNull(defaultChangeList);
LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary");
assertNotNull(anotherChangeList);
myChangeListManager.removeChangeList(anotherChangeList);
Thread.sleep(1000);
removeChangeList(anotherChangeList);
assertEquals(0, anotherTask.getChangeLists().size());
assertEquals(1, defaultTask.getChangeLists().size());
assertEquals(1, myChangeListManager.getChangeLists().size());
assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeList));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeList));
assertEquals(defaultChangeList.getName(), "Default");
}
public void testAddChangeListViaVcsActionToCurrentTask() throws Exception {
public void testAddChangeListViaVcsAction() throws Exception {
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, true);
myTaskManager.activateTask(task, false, true);
LocalTask defaultTask = myManager.findTask("Default");
LocalTask defaultTask = myTaskManager.findTask("Default");
assertNotNull(defaultTask);
myManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myManager.getActiveTask());
myTaskManager.activateTask(defaultTask, false, true);
assertEquals(defaultTask, myTaskManager.getActiveTask());
LocalTask anotherTask = myManager.findTask("TEST-001");
LocalTask anotherTask = myTaskManager.findTask("TEST-001");
assertNotNull(anotherTask);
addChangeList("Default (1)", "");
@@ -201,42 +200,29 @@ public class TaskVcsTest extends TaskManagerTestCase {
LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary");
assertNotNull(anotherChangeList);
assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListActive));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListActive));
assertEquals(defaultChangeListActive.getName(), "Default");
assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListInactive));
assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListInactive));
assertEquals(defaultChangeListInactive.getName(), "Default (1)");
assertEquals(anotherTask, myManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherTask, myTaskManager.getAssociatedTask(anotherChangeList));
assertEquals(anotherChangeList.getName(), "TEST-001 Summary");
}
public void testAddChangeListViaVcsActionToNewTask() throws InterruptedException {
myManager.getState().associateWithCurrentTaskForNewChangelist = false;
public void testTrackContext() {
myTaskManager.getState().trackContextForNewChangelist = true;
addChangeList("New Changelist", "");
assertEquals(2, myManager.getLocalTasks().size());
assertEquals(2, myTaskManager.getLocalTasks().size());
assertEquals(2, myChangeListManager.getChangeLists().size());
LocalChangeList newChangeList = myChangeListManager.findChangeList("New Changelist");
assertNotNull(newChangeList);
LocalTask newTask = myManager.getAssociatedTask(newChangeList);
LocalTask newTask = myTaskManager.getAssociatedTask(newChangeList);
assertNotNull(newTask);
assertEquals(newTask.getSummary(), "New Changelist");
myManager.getState().associateWithCurrentTaskForNewChangelist = true;
}
public void testNotAssociateChangeListWithTask() {
myManager.getState().associateWithTaskForNewChangelist = false;
addChangeList("New Changelist", "");
assertEquals(1, myManager.getLocalTasks().size());
assertEquals(2, myChangeListManager.getChangeLists().size());
LocalChangeList newChangeList = myChangeListManager.findChangeList("New Changelist");
assertNotNull(newChangeList);
assertNull(myManager.getAssociatedTask(newChangeList));
myManager.getState().associateWithTaskForNewChangelist = true;
myTaskManager.getState().trackContextForNewChangelist = false;
}
public void testCreateComment() throws Exception {
@@ -244,24 +230,24 @@ public class TaskVcsTest extends TaskManagerTestCase {
myRepository.setCommitMessageFormat("{id} {summary} {number} {project}");
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, true);
LocalTask localTask = myManager.getActiveTask();
myTaskManager.activateTask(task, false, true);
LocalTask localTask = myTaskManager.getActiveTask();
assertNotNull(localTask);
assertEquals("TEST-001 Summary 001 TEST", localTask.getChangeLists().get(0).comment);
}
public void testSaveContextOnCommitForExistingTask() throws Exception {
myManager.getState().saveContextOnCommit = true;
myTaskManager.getState().saveContextOnCommit = true;
assertEquals(1, myManager.getLocalTasks().size());
assertEquals(1, myTaskManager.getLocalTasks().size());
Task task = myRepository.findTask("TEST-001");
assertNotNull(task);
myManager.activateTask(task, false, true);
myTaskManager.activateTask(task, false, true);
assertEquals(2, myManager.getLocalTasks().size());
assertEquals(2, myTaskManager.getLocalTasks().size());
assertEquals(2, myChangeListManager.getChangeLists().size());
LocalTask localTask = myManager.getActiveTask();
LocalTask localTask = myTaskManager.getActiveTask();
List<ChangeListInfo> changelists = localTask.getChangeLists();
ChangeListInfo info = changelists.get(0);
LocalChangeList changeList = myChangeListManager.getChangeList(info.id);
@@ -269,31 +255,29 @@ public class TaskVcsTest extends TaskManagerTestCase {
CommitChangeListDialog.commitChanges(getProject(), Collections.<Change>emptyList(), changeList, null, changeList.getName());
assertEquals(2, myManager.getLocalTasks().size()); // no extra task created
assertEquals(2, myTaskManager.getLocalTasks().size()); // no extra task created
assertEquals(2, myChangeListManager.getChangeLists().size());
assertEquals(localTask, myManager.getAssociatedTask(changeList)); // association should survive
assertEquals(localTask, myTaskManager.getAssociatedTask(changeList)); // association should survive
}
public void testSaveContextOnCommit() throws Exception {
myManager.getState().saveContextOnCommit = true;
myTaskManager.getState().saveContextOnCommit = true;
assertEquals(1, myManager.getLocalTasks().size());
assertEquals(1, myTaskManager.getLocalTasks().size());
assertEquals(1, myChangeListManager.getChangeLists().size());
myManager.getState().associateWithTaskForNewChangelist = false;
LocalChangeList changeList = addChangeList("New Changelist", "");
myManager.getState().associateWithTaskForNewChangelist = true;
assertEquals(1, myManager.getLocalTasks().size());
assertEquals(1, myTaskManager.getLocalTasks().size());
assertEquals(2, myChangeListManager.getChangeLists().size());
CommitChangeListDialog.commitChanges(getProject(), Collections.<Change>emptyList(), changeList, null, changeList.getName());
assertEquals(2, myManager.getLocalTasks().size()); // extra task created
assertEquals(2, myTaskManager.getLocalTasks().size()); // extra task created
assertEquals(2, myChangeListManager.getChangeLists().size());
assertTrue(ContainerUtil.exists(myManager.getLocalTasks(), new Condition<LocalTask>() {
assertTrue(ContainerUtil.exists(myTaskManager.getLocalTasks(), new Condition<LocalTask>() {
@Override
public boolean value(final LocalTask task) {
return task.getSummary().equals("New Changelist");
@@ -301,12 +285,22 @@ public class TaskVcsTest extends TaskManagerTestCase {
}));
}
public LocalChangeList addChangeList(String title, String comment) {
private LocalChangeList addChangeList(String title, String comment) {
final LocalChangeList list = myChangeListManager.addChangeList(title, comment);
new TaskChangelistSupport(getProject(), myManager).addControls(new JPanel(), null).consume(list);
new TaskChangelistSupport(getProject(), myTaskManager).addControls(new JPanel(), null).consume(list);
return list;
}
private void removeChangeList(LocalChangeList changeList) {
myChangeListManager.removeChangeList(changeList);
myTaskManager.getChangeListListener().changeListRemoved(changeList);
}
private void setDefaultChangeList(LocalChangeList changeList) {
myChangeListManager.setDefaultChangeList(changeList);
myTaskManager.getChangeListListener().defaultListChanged(null, changeList);
}
public void testProjectWithDash() throws Exception {
LocalTaskImpl task = new LocalTaskImpl("foo-bar-001", "summary") {
@Override
@@ -316,7 +310,7 @@ public class TaskVcsTest extends TaskManagerTestCase {
};
assertEquals("foo-bar", task.getProject());
assertEquals("001", task.getNumber());
String name = myManager.getChangelistName(task);
String name = myTaskManager.getChangelistName(task);
assertEquals("foo-bar-001 summary", name);
}
@@ -338,21 +332,6 @@ public class TaskVcsTest extends TaskManagerTestCase {
assertEquals(null, task.getProject());
}
public void testEditDefaultChangeList() {
myManager.getState().associateWithTaskForNewChangelist = false;
addChangeList("test", "");
final LocalChangeList changeList = myChangeListManager.findChangeList("test");
assertNotNull(changeList);
myChangeListManager.setDefaultChangeList(changeList);
myManager.getState().associateWithTaskForNewChangelist = true;
myManager.getState().associateWithCurrentTaskForNewChangelist = false;
new TaskChangelistSupport(getProject(), myManager).addControls(new JPanel(), changeList).consume(changeList);
final LocalTask task = myManager.getAssociatedTask(changeList);
assertNotNull(task);
assertTrue(task.isActive());
myManager.getState().associateWithCurrentTaskForNewChangelist = true;
}
private TestRepository myRepository;
private MockAbstractVcs myVcs;
@@ -362,12 +341,13 @@ public class TaskVcsTest extends TaskManagerTestCase {
myVcs = new MockAbstractVcs(getProject());
AllVcses.getInstance(getProject()).registerManually(myVcs);
myChangeListManager = ChangeListManager.getInstance(getProject());
myChangeListManager.removeChangeListListener(myTaskManager.getChangeListListener());
addChangeList("Default", "");
final LocalChangeList defaultChangeList = myChangeListManager.findChangeList("Default");
assertNotNull(defaultChangeList);
myChangeListManager.setDefaultChangeList(defaultChangeList);
setDefaultChangeList(defaultChangeList);
for (LocalChangeList changeList : myChangeListManager.getChangeLists()) {
if (!changeList.isDefault()) myChangeListManager.removeChangeList(changeList);
if (!changeList.isDefault()) removeChangeList(changeList);
}
@@ -440,7 +420,7 @@ public class TaskVcsTest extends TaskManagerTestCase {
return myRepository;
}
});
myManager.setRepositories(Collections.singletonList(myRepository));
myTaskManager.setRepositories(Collections.singletonList(myRepository));
}
@Override
@@ -32,9 +32,9 @@ public class ContextTest extends TaskManagerTestCase {
manager.clearContext();
manager.loadContext("first");
manager.saveContext(myManager.getActiveTask());
manager.saveContext(myTaskManager.getActiveTask());
manager.clearContext();
manager.restoreContext(myManager.getActiveTask());
manager.restoreContext(myTaskManager.getActiveTask());
}
public void testPack() throws Exception {