git tests: move some utility method to the root class for future reuse

This caused method conflicts in GitChangeProviderTest,
which was adjusted (simplified) accordingly.
This commit is contained in:
Kirill Likhodedov
2017-02-07 11:50:56 +00:00
parent 83b4e14e22
commit e20aa16c4a
4 changed files with 38 additions and 43 deletions
@@ -17,20 +17,12 @@ package git4idea.checkin
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.command.CommandProcessor
import com.intellij.openapi.vcs.VcsConfiguration
import com.intellij.openapi.vcs.VcsConfiguration.StandardConfirmation.ADD
import com.intellij.openapi.vcs.VcsShowConfirmationOption.Value.DO_ACTION_SILENTLY
import com.intellij.openapi.vcs.VcsShowConfirmationOption.Value.DO_NOTHING_SILENTLY
import com.intellij.openapi.vcs.VcsTestUtil
import com.intellij.openapi.vcs.VcsTestUtil.renameFileInCommand
import com.intellij.openapi.vcs.VcsVFSListener
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.runInEdtAndWait
import com.intellij.testFramework.vcs.AbstractVcsTestCase.setStandardConfirmation
import com.intellij.vcsUtil.VcsUtil
import git4idea.GitUtil.getLogString
import git4idea.GitVcs
import git4idea.test.GitExecutor.*
import git4idea.test.GitSingleRepoTest
import java.io.File
@@ -107,27 +99,4 @@ class GitMoveTest : GitSingleRepoTest() {
renameFile(file, "unv-ren.txt")
assertUnversioned(file)
}
private fun VcsConfiguration.StandardConfirmation.doSilently() = setStandardConfirmation(myProject, GitVcs.NAME, this, DO_ACTION_SILENTLY)
private fun VcsConfiguration.StandardConfirmation.doNothing() = setStandardConfirmation(myProject, GitVcs.NAME, this, DO_NOTHING_SILENTLY)
private fun prepareUnversionedFile(fileName: String): VirtualFile {
val file = myProjectRoot.createFile(fileName, "initial\ncontent\n")
updateChangeListManager()
assertUnversioned(file)
return file
}
private fun VirtualFile.createDir(dir: String) = VcsTestUtil.findOrCreateDir(myProject, this, dir)
private fun VirtualFile.createFile(fileName: String, content: String) = VcsTestUtil.createFile(myProject, this, fileName, content)
private fun renameFile(file: VirtualFile, newName: String) {
renameFileInCommand(myProject, file, newName)
updateChangeListManager()
}
private fun assertUnversioned(file: VirtualFile) {
assertTrue("File should be unversioned! All changes: " + getLogString(myProjectPath, changeListManager.allChanges),
changeListManager.isUnversioned(file))
}
}
@@ -16,6 +16,14 @@
package git4idea.test
import com.intellij.openapi.vcs.Executor.cd
import com.intellij.openapi.vcs.VcsConfiguration
import com.intellij.openapi.vcs.VcsShowConfirmationOption.Value.DO_ACTION_SILENTLY
import com.intellij.openapi.vcs.VcsShowConfirmationOption.Value.DO_NOTHING_SILENTLY
import com.intellij.openapi.vcs.VcsTestUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.vcs.AbstractVcsTestCase
import git4idea.GitUtil
import git4idea.GitVcs
import git4idea.repo.GitRepository
abstract class GitSingleRepoTest : GitPlatformTest() {
@@ -32,4 +40,31 @@ abstract class GitSingleRepoTest : GitPlatformTest() {
protected open fun makeInitialCommit(): Boolean {
return true
}
protected fun VcsConfiguration.StandardConfirmation.doSilently() =
AbstractVcsTestCase.setStandardConfirmation(myProject, GitVcs.NAME, this, DO_ACTION_SILENTLY)
protected fun VcsConfiguration.StandardConfirmation.doNothing() =
AbstractVcsTestCase.setStandardConfirmation(myProject, GitVcs.NAME, this, DO_NOTHING_SILENTLY)
protected fun prepareUnversionedFile(fileName: String): VirtualFile {
val file = myProjectRoot.createFile(fileName, "initial\ncontent\n")
updateChangeListManager()
assertUnversioned(file)
return file
}
protected fun VirtualFile.createDir(dir: String) = VcsTestUtil.findOrCreateDir(myProject, this, dir)!!
protected fun VirtualFile.createFile(fileName: String, content: String) = VcsTestUtil.createFile(myProject, this, fileName, content)!!
protected fun renameFile(file: VirtualFile, newName: String) {
VcsTestUtil.renameFileInCommand(myProject, file, newName)
updateChangeListManager()
}
protected fun assertUnversioned(file: VirtualFile) {
assertTrue("File should be unversioned! All changes: " + GitUtil.getLogString(myProjectPath, changeListManager.allChanges),
changeListManager.isUnversioned(file))
}
}
@@ -214,17 +214,7 @@ public abstract class GitChangeProviderTest extends GitSingleRepoTest {
}
protected VirtualFile create(VirtualFile parent, String name) {
return create(parent, name, false);
}
protected VirtualFile createDir(VirtualFile parent, String name) {
return create(parent, name, true);
}
private VirtualFile create(VirtualFile parent, String name, boolean dir) {
final VirtualFile file = dir ?
VcsTestUtil.findOrCreateDir(myProject, parent, name) :
createFile(myProject, parent, name, "content" + Math.random());
VirtualFile file = createFile(parent, name, "content" + Math.random());
dirty(file);
return file;
}
@@ -252,7 +242,7 @@ public abstract class GitChangeProviderTest extends GitSingleRepoTest {
deleteFileInCommand(myProject, file);
}
private void dirty(VirtualFile file) {
protected void dirty(VirtualFile file) {
myDirtyScope.addDirtyFile(VcsUtil.getFilePath(file));
}
@@ -39,6 +39,7 @@ public class GitChangeProviderVersionedTest extends GitChangeProviderTest {
@Test
public void testCreateFileInDir() throws Exception {
VirtualFile dir = createDir(myRootDir, "newdir");
dirty(dir);
VirtualFile bfile = create(dir, "new.txt");
add(bfile.getPath());
assertChanges(new VirtualFile[] {bfile, dir}, new FileStatus[] { ADDED, null} );