mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Inherit VcsRootBaseTest from the VcsPlatformTest & cleanup
Inheriting from the VcsPlatformTest allows to:
* remove project fixture initialization and tearDown;
* remove myVcsManager: already exists in parent;
* remove doCreateRealModuleIn, copy-pasted from PlatformTestCase;
* remove manual call to clearFields.
There is also no need to hold myFilesToDelete, which:
(a) already exist in the UsefulTestCase;
(b) are not needed, because the only deleted file is inside the project
and will be deleted automatically.
This commit is contained in:
-1
@@ -141,7 +141,6 @@ public class VcsIntegrationEnablerTest extends VcsRootBaseTest {
|
|||||||
protected boolean initOrNotifyError(@NotNull final VirtualFile projectDir) {
|
protected boolean initOrNotifyError(@NotNull final VirtualFile projectDir) {
|
||||||
File file = new File(projectDir.getPath(), ".mock");
|
File file = new File(projectDir.getPath(), ".mock");
|
||||||
VcsNotifier.getInstance(myProject).notifySuccess("Created mock repository in " + projectDir.getPresentableUrl());
|
VcsNotifier.getInstance(myProject).notifySuccess("Created mock repository in " + projectDir.getPresentableUrl());
|
||||||
myFilesToDelete.add(file);
|
|
||||||
return file.mkdir();
|
return file.mkdir();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,74 +15,54 @@
|
|||||||
*/
|
*/
|
||||||
package com.intellij.openapi.vcs.roots;
|
package com.intellij.openapi.vcs.roots;
|
||||||
|
|
||||||
import com.intellij.ide.highlighter.ModuleFileType;
|
|
||||||
import com.intellij.openapi.application.Result;
|
|
||||||
import com.intellij.openapi.application.WriteAction;
|
|
||||||
import com.intellij.openapi.extensions.ExtensionPoint;
|
import com.intellij.openapi.extensions.ExtensionPoint;
|
||||||
import com.intellij.openapi.extensions.Extensions;
|
import com.intellij.openapi.extensions.Extensions;
|
||||||
import com.intellij.openapi.module.EmptyModuleType;
|
import com.intellij.openapi.module.EmptyModuleType;
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.module.ModuleManager;
|
|
||||||
import com.intellij.openapi.module.ModuleType;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.roots.ModuleRootManager;
|
import com.intellij.openapi.roots.ModuleRootManager;
|
||||||
import com.intellij.openapi.roots.impl.ModuleRootManagerImpl;
|
import com.intellij.openapi.roots.impl.ModuleRootManagerImpl;
|
||||||
import com.intellij.openapi.roots.impl.RootModelImpl;
|
import com.intellij.openapi.roots.impl.RootModelImpl;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
|
|
||||||
import com.intellij.openapi.vcs.VcsKey;
|
import com.intellij.openapi.vcs.VcsKey;
|
||||||
import com.intellij.openapi.vcs.VcsRootChecker;
|
import com.intellij.openapi.vcs.VcsRootChecker;
|
||||||
import com.intellij.openapi.vcs.changes.committed.MockAbstractVcs;
|
import com.intellij.openapi.vcs.changes.committed.MockAbstractVcs;
|
||||||
import com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl;
|
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.testFramework.UsefulTestCase;
|
import com.intellij.vcs.test.VcsPlatformTest;
|
||||||
import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
|
|
||||||
import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import static com.intellij.openapi.vcs.Executor.cd;
|
import static com.intellij.openapi.vcs.Executor.cd;
|
||||||
import static com.intellij.openapi.vcs.Executor.mkdir;
|
import static com.intellij.openapi.vcs.Executor.mkdir;
|
||||||
|
|
||||||
public abstract class VcsRootBaseTest extends UsefulTestCase {
|
public abstract class VcsRootBaseTest extends VcsPlatformTest {
|
||||||
|
|
||||||
public static final String DOT_MOCK = ".mock";
|
static final String DOT_MOCK = ".mock";
|
||||||
|
|
||||||
|
protected MockAbstractVcs myVcs;
|
||||||
|
protected String myVcsName;
|
||||||
|
protected VirtualFile myRepository;
|
||||||
|
|
||||||
private VcsRootChecker myExtension;
|
private VcsRootChecker myExtension;
|
||||||
@NotNull protected ProjectLevelVcsManagerImpl myVcsManager;
|
|
||||||
@NotNull protected MockAbstractVcs myVcs;
|
|
||||||
@NotNull protected String myVcsName;
|
|
||||||
protected Project myProject;
|
|
||||||
protected VirtualFile myProjectRoot;
|
|
||||||
protected VirtualFile myRepository;
|
|
||||||
public static final String myRepositoryFolderName = "repository";
|
|
||||||
private RootModelImpl myRootModel;
|
private RootModelImpl myRootModel;
|
||||||
protected static final Collection<File> myFilesToDelete = new HashSet<>();
|
|
||||||
protected IdeaProjectTestFixture myProjectFixture;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
myProjectFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getTestName(true)).getFixture();
|
|
||||||
myProjectFixture.setUp();
|
|
||||||
|
|
||||||
myProject = myProjectFixture.getProject();
|
|
||||||
myProjectRoot = myProject.getBaseDir();
|
|
||||||
cd(myProjectRoot);
|
cd(myProjectRoot);
|
||||||
Module module = doCreateRealModuleIn("foo", myProject, EmptyModuleType
|
Module module = doCreateRealModuleIn("foo", myProject, EmptyModuleType.getInstance());
|
||||||
.getInstance());
|
|
||||||
myRootModel = ((ModuleRootManagerImpl)ModuleRootManager.getInstance(module)).getRootModel();
|
myRootModel = ((ModuleRootManagerImpl)ModuleRootManager.getInstance(module)).getRootModel();
|
||||||
mkdir(myRepositoryFolderName);
|
mkdir("repository");
|
||||||
myProjectRoot.refresh(false, true);
|
myProjectRoot.refresh(false, true);
|
||||||
myRepository = myProjectRoot.findChild(myRepositoryFolderName);
|
myRepository = myProjectRoot.findChild("repository");
|
||||||
|
|
||||||
myVcs = new MockAbstractVcs(myProject);
|
myVcs = new MockAbstractVcs(myProject);
|
||||||
myVcsManager = (ProjectLevelVcsManagerImpl)ProjectLevelVcsManager.getInstance(myProject);
|
|
||||||
ExtensionPoint<VcsRootChecker> point = getExtensionPoint();
|
ExtensionPoint<VcsRootChecker> point = getExtensionPoint();
|
||||||
myExtension = new VcsRootChecker() {
|
myExtension = new VcsRootChecker() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -102,7 +82,7 @@ public abstract class VcsRootBaseTest extends UsefulTestCase {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
point.registerExtension(myExtension);
|
point.registerExtension(myExtension);
|
||||||
myVcsManager.registerVcs(myVcs);
|
vcsManager.registerVcs(myVcs);
|
||||||
myVcsName = myVcs.getName();
|
myVcsName = myVcs.getName();
|
||||||
myRepository.refresh(false, true);
|
myRepository.refresh(false, true);
|
||||||
}
|
}
|
||||||
@@ -115,25 +95,13 @@ public abstract class VcsRootBaseTest extends UsefulTestCase {
|
|||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
try {
|
try {
|
||||||
getExtensionPoint().unregisterExtension(myExtension);
|
getExtensionPoint().unregisterExtension(myExtension);
|
||||||
myVcsManager.unregisterVcs(myVcs);
|
vcsManager.unregisterVcs(myVcs);
|
||||||
for (File file : myFilesToDelete) {
|
|
||||||
delete(file);
|
|
||||||
}
|
|
||||||
myProjectFixture.tearDown();
|
|
||||||
clearFields(this);
|
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void delete(File file) {
|
|
||||||
boolean b = FileUtil.delete(file);
|
|
||||||
if (!b && file.exists()) {
|
|
||||||
fail("Can't delete " + file.getAbsolutePath());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the necessary temporary directories in the filesystem with empty ".mock" directories for given roots.
|
* Creates the necessary temporary directories in the filesystem with empty ".mock" directories for given roots.
|
||||||
* And creates an instance of the project.
|
* And creates an instance of the project.
|
||||||
@@ -165,31 +133,6 @@ public abstract class VcsRootBaseTest extends UsefulTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static Module doCreateRealModuleIn(@NotNull String moduleName,
|
|
||||||
@NotNull final Project project,
|
|
||||||
@NotNull final ModuleType moduleType) {
|
|
||||||
final VirtualFile baseDir = project.getBaseDir();
|
|
||||||
assertNotNull(baseDir);
|
|
||||||
final File moduleFile = new File(baseDir.getPath().replace('/', File.separatorChar),
|
|
||||||
moduleName + ModuleFileType.DOT_DEFAULT_EXTENSION);
|
|
||||||
FileUtil.createIfDoesntExist(moduleFile);
|
|
||||||
myFilesToDelete.add(moduleFile);
|
|
||||||
return new WriteAction<Module>() {
|
|
||||||
@Override
|
|
||||||
protected void run(@NotNull Result<Module> result) throws Throwable {
|
|
||||||
final VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(moduleFile);
|
|
||||||
assert virtualFile != null;
|
|
||||||
Module module = ModuleManager.getInstance(project).newModule(virtualFile.getPath(), moduleType.getId());
|
|
||||||
module.getModuleFile();
|
|
||||||
result.setResult(module);
|
|
||||||
}
|
|
||||||
}.execute().getResultObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return path to the project
|
|
||||||
*/
|
|
||||||
private void createDirs(@NotNull Collection<String> mockRoots) throws IOException {
|
private void createDirs(@NotNull Collection<String> mockRoots) throws IOException {
|
||||||
File baseDir;
|
File baseDir;
|
||||||
if (mockRoots.isEmpty()) {
|
if (mockRoots.isEmpty()) {
|
||||||
|
|||||||
+2
-2
@@ -191,11 +191,11 @@ public class VcsRootErrorsFinderTest extends VcsRootBaseTest {
|
|||||||
void addVcsRoots(@NotNull Collection<String> relativeRoots) {
|
void addVcsRoots(@NotNull Collection<String> relativeRoots) {
|
||||||
for (String root : relativeRoots) {
|
for (String root : relativeRoots) {
|
||||||
if (root.equals(PROJECT)) {
|
if (root.equals(PROJECT)) {
|
||||||
myVcsManager.setDirectoryMapping("", myVcsName);
|
vcsManager.setDirectoryMapping("", myVcsName);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
String absoluteRoot = VcsTestUtil.toAbsolute(root, myProject);
|
String absoluteRoot = VcsTestUtil.toAbsolute(root, myProject);
|
||||||
myVcsManager.setDirectoryMapping(absoluteRoot, myVcsName);
|
vcsManager.setDirectoryMapping(absoluteRoot, myVcsName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user