diff --git a/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/BaseLineStatusTrackerTestCase.kt b/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/BaseLineStatusTrackerTestCase.kt index 46684258ec95..b844a18d53c6 100644 --- a/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/BaseLineStatusTrackerTestCase.kt +++ b/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/BaseLineStatusTrackerTestCase.kt @@ -29,7 +29,8 @@ import com.intellij.openapi.fileEditor.FileDocumentManager import com.intellij.openapi.fileTypes.PlainTextFileType import com.intellij.openapi.util.Comparing import com.intellij.openapi.util.text.StringUtil -import com.intellij.openapi.vcs.changes.LocalChangeListImpl +import com.intellij.openapi.vcs.changes.ChangeListManagerImpl +import com.intellij.openapi.vcs.changes.LocalChangeList import com.intellij.openapi.vcs.ex.* import com.intellij.openapi.vcs.ex.LineStatusTracker.Mode import com.intellij.openapi.vfs.VirtualFile @@ -84,6 +85,7 @@ abstract class BaseLineStatusTrackerTestCase : LightPlatformTestCase() { task(testHelper) testHelper.verify() + testHelper.destroy() } finally { tracker.release() @@ -97,6 +99,8 @@ abstract class BaseLineStatusTrackerTestCase : LightPlatformTestCase() { val vcsDocument: Document = tracker.vcsDocument private val documentTracker = tracker.getDocumentTrackerInTestMode() + open fun destroy() { + } fun assertHelperContentIs(expected: String, helper: PartialLocalLineStatusTracker.PartialCommitHelper) { assertEquals(parseInput(expected), helper.content) @@ -370,64 +374,82 @@ abstract class BaseLineStatusTrackerTestCase : LightPlatformTestCase() { } protected class PartialTest(val partialTracker: PartialLocalLineStatusTracker) : Test(partialTracker) { - var defaultList: String = "Default" - val changelists = mutableSetOf(defaultList) + private val clm = ChangeListManagerImpl.getInstanceImpl(getProject()) init { - partialTracker.initChangeTracking(defaultList, changelists.toList()) + resetChangelists() + partialTracker.initChangeTracking(defaultChangeListIds(), changeListIds()) + } + + override fun destroy() { + resetChangelists() + } + + private fun resetChangelists() { + clm.addChangeList(LocalChangeList.DEFAULT_NAME, null) + clm.setDefaultChangeList(LocalChangeList.DEFAULT_NAME) + for (changeListName in changeListNames()) { + if (changeListName != LocalChangeList.DEFAULT_NAME) clm.removeChangeList(changeListName) + } } fun assertAffectedChangelists(vararg expected: String) { - assertSameElements(partialTracker.affectedChangeListsIds, expected.toList()) + assertSameElements(partialTracker.affectedChangeListsIds, expected.toListId()) } fun Range.assertChangelist(list: String) { val localRange = this as PartialLocalLineStatusTracker.LocalRange - assertEquals(localRange.changelistId, list) + assertEquals(localRange.changelistId, list.toListId()) } fun createChangelist(list: String) { - assertDoesntContain(changelists, list) - changelists.add(list) + assertDoesntContain(changeListNames(), list) + clm.addChangeList(list, null) } fun removeChangelist(list: String) { - assertFalse(defaultList == list) - assertContainsElements(changelists, list) - partialTracker.changeListRemoved(list) - changelists.remove(list) + assertContainsElements(changeListNames(), list) + partialTracker.changeListRemoved(list.toListId()) + clm.removeChangeList(list) } fun setDefaultChangelist(list: String) { - changelists.add(list) - partialTracker.defaultListChanged(defaultList, list) - defaultList = list + clm.addChangeList(list, null) + partialTracker.defaultListChanged(defaultChangeListIds(), list.toListId()) + clm.setDefaultChangeList(list) } fun moveChanges(fromList: String, toList: String) { - assertContainsElements(changelists, fromList) - assertContainsElements(changelists, toList) - partialTracker.moveChanges(fromList, toList) + assertContainsElements(changeListNames(), fromList) + assertContainsElements(changeListNames(), toList) + partialTracker.moveChanges(fromList.toListId(), toList.toListId()) } fun moveAllChangesTo(toList: String) { - assertContainsElements(changelists, toList) - partialTracker.moveChangesTo(toList) + assertContainsElements(changeListNames(), toList) + partialTracker.moveChangesTo(toList.toListId()) } fun Range.moveTo(list: String) { - val fakeChangelist = LocalChangeListImpl.createEmptyChangeListImpl(getProject(), list, list) - partialTracker.moveToChangelist(this, fakeChangelist) + val changeList = clm.addChangeList(list, null) + partialTracker.moveToChangelist(this, changeList) } fun moveChangesTo(lines: BitSet, list: String) { - val fakeChangelist = LocalChangeListImpl.createEmptyChangeListImpl(getProject(), list, list) - partialTracker.moveToChangelist(lines, fakeChangelist) + val changeList = clm.addChangeList(list, null) + partialTracker.moveToChangelist(lines, changeList) } + + + fun String.toListId(): String = clm.changeLists.find { it.name == this }!!.id + private fun Array.toListId() = this.map { it.toListId() } + private fun changeListIds() = clm.changeLists.map { it.id } + private fun changeListNames() = clm.changeLists.map { it.name } + private fun defaultChangeListIds() = clm.defaultChangeList.id } companion object { diff --git a/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/PartialLineStatusTrackerTest.kt b/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/PartialLineStatusTrackerTest.kt index 953d018383b2..db7ecce60618 100644 --- a/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/PartialLineStatusTrackerTest.kt +++ b/platform/vcs-tests/testSrc/com/intellij/openapi/vcs/PartialLineStatusTrackerTest.kt @@ -205,7 +205,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() { assertBaseTextContentIs("A_B_C_D_E_F_G_H_") assertAffectedChangelists("Default", "Test") - val helper = partialTracker.handlePartialCommit(Side.LEFT, "Test") + val helper = partialTracker.handlePartialCommit(Side.LEFT, "Test".toListId()) helper.applyChanges() assertHelperContentIs("A_B_C_E_F_G_N_H_", helper) @@ -228,7 +228,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() { assertBaseTextContentIs("A_B_C_D_E_F_G_H_") assertAffectedChangelists("Default", "Test") - val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default") + val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId()) helper.applyChanges() assertHelperContentIs("A_B1_C_D_E_F_M_G_H_", helper) @@ -251,7 +251,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() { assertBaseTextContentIs("A_B_C_D_E_F_G_H_") assertAffectedChangelists("Default", "Test") - val helper = partialTracker.handlePartialCommit(Side.RIGHT, "Test") + val helper = partialTracker.handlePartialCommit(Side.RIGHT, "Test".toListId()) helper.applyChanges() assertHelperContentIs("A_B1_C_D_E_F_M_G_H_", helper) @@ -278,7 +278,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() { runCommand { "B1_".replace("X_Y_Z_") - val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default") + val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId()) helper.applyChanges() assertHelperContentIs("A_X_Y_Z_C_D_E_F_M_G_H_", helper) @@ -307,7 +307,7 @@ class PartialLineStatusTrackerTest : BaseLineStatusTrackerTestCase() { runCommand { "B1_".replace("X_Y_Z_") - val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default") + val helper = partialTracker.handlePartialCommit(Side.LEFT, "Default".toListId()) "N".replace("N2") "M".replace("M2")