Author: adietish
Date: 2011-08-22 05:42:21 -0400 (Mon, 22 Aug 2011)
New Revision: 34133
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/EGitUtilsTest.java
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestRepository.java
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestUtils.java
Log:
[JBIDE-9513] cleaned push test
Property changes on: trunk/as/tests/org.jboss.ide.eclipse.as.egit.test
___________________________________________________________________
Added: svn:ignore
+ bin
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/EGitUtilsTest.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/EGitUtilsTest.java 2011-08-22
09:38:33 UTC (rev 34132)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/EGitUtilsTest.java 2011-08-22
09:42:21 UTC (rev 34133)
@@ -1,26 +1,17 @@
package org.jboss.ide.eclipse.as.egit.internal.test;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
import java.lang.reflect.InvocationTargetException;
import java.net.URISyntaxException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.egit.core.Activator;
-import org.eclipse.egit.core.RepositoryCache;
-import org.eclipse.egit.core.op.CloneOperation;
import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.StoredConfig;
-import org.eclipse.jgit.transport.URIish;
-import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.SystemReader;
import org.jboss.ide.eclipse.as.egit.core.EGitUtils;
import org.jboss.ide.eclipse.as.egit.internal.test.util.MockSystemReader;
@@ -48,104 +39,58 @@
public void setUp() throws Exception {
Activator.getDefault().getRepositoryCache().clear();
- createMockSystemReader();
-
this.testProject = new TestProject(true);
- this.gitDir = createGitDir(testProject);
+ this.gitDir = TestUtils.createGitDir(testProject);
this.testRepository = new TestRepository(gitDir);
- setUserAndEmail(testRepository);
+ testRepository.createMockSystemReader(ResourcesPlugin.getWorkspace().getRoot().getLocation());
+ testRepository.setUserAndEmail(GIT_USER, GIT_EMAIL);
testRepository.connect(testProject.getProject());
- this.clonedTestRepository = cloneRepository(testRepository.getRepository());
+ this.clonedTestRepository = cloneRepository(testRepository);
}
- private void setUserAndEmail(TestRepository testRepository) {
- StoredConfig config = testRepository.getRepository().getConfig();
- config.setString(ConfigConstants.CONFIG_USER_SECTION, null,
ConfigConstants.CONFIG_KEY_NAME,
- GIT_USER);
- config.setString(ConfigConstants.CONFIG_USER_SECTION, null,
ConfigConstants.CONFIG_KEY_EMAIL,
- GIT_EMAIL);
- }
-
- private TestRepository cloneRepository(Repository repository) throws URISyntaxException,
InvocationTargetException,
- InterruptedException, IOException {
- URIish uri = new URIish("file:///" + repository.getDirectory().toString());
+ private TestRepository cloneRepository(TestRepository repository) throws
URISyntaxException, InvocationTargetException, InterruptedException, IOException {
File workspaceDir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
File clonedRepositoryFile =
new File(workspaceDir, "clonedRepository-" +
String.valueOf(System.currentTimeMillis()));
- CloneOperation clop =
- new CloneOperation(uri, true, null, clonedRepositoryFile, Constants.R_HEADS +
Constants.MASTER,
- Constants.DEFAULT_REMOTE_NAME, 0);
- clop.run(null);
- RepositoryCache repositoryCache = Activator.getDefault().getRepositoryCache();
- Repository clonedRepository = repositoryCache
- .lookupRepository(new File(clonedRepositoryFile, Constants.DOT_GIT));
- TestRepository testRepository = new TestRepository(clonedRepository);
- // Repository clonedRepository = new FileRepository(new
- // File(clonedRepositoryFile, Constants.DOT_GIT));
- // TestRepository testRepository = new TestRepository(clonedRepository);
- // we push to branch "test" of repository2
- // RefUpdate createBranch = testRepository.getRepository().updateRef(
- // "refs/heads/test");
- // createBranch.setNewObjectId(testRepository.getRepository().resolve(
- // "refs/heads/master"));
- // createBranch.update();
-
- return testRepository;
+ return testRepository.cloneRepository(clonedRepositoryFile);
}
- private void createMockSystemReader() {
- MockSystemReader mockSystemReader = new MockSystemReader();
- SystemReader.setInstance(mockSystemReader);
- File workspaceFile = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile()
- .getAbsoluteFile();
- mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY,
- workspaceFile.toString());
- }
-
- private File createGitDir(TestProject testProject) throws IOException {
- return new File(testProject.getProject().getLocation().toFile(), Constants.DOT_GIT);
- }
-
@After
public void tearDown() throws Exception {
- cleanupRepository(testRepository);
- cleanupRepository(clonedTestRepository);
+ testRepository.dispose();
+ clonedTestRepository.dispose();
testProject.dispose();
Activator.getDefault().getRepositoryCache().clear();
}
- private static void cleanupRepository(TestRepository testRepository) throws IOException
{
- File repositoryDirectory = testRepository.getRepository().getDirectory();
- File repositoryParent = repositoryDirectory.getParentFile();
- if (repositoryParent.exists()) {
- FileUtils.delete(repositoryParent, FileUtils.RECURSIVE | FileUtils.RETRY);
- }
- testRepository.dispose();
- }
-
@Test
public void canCommitFileInProject() throws Exception {
+ String fileName = "a.txt";
+ String fileContent = "adietish(a)redhat.com";
+
IFile file = testUtils.addFileToProject(
testProject.getProject(),
- "a.txt", "some text");
- addToRepository(file, testRepository);
+ fileName,
+ fileContent);
+ testRepository.track(file);
EGitUtils.commit(testProject.getProject(), null);
- testUtils.assertRepositoryContainsFiles(
+ testUtils.assertRepositoryContainsFilesWithContent(
testRepository.getRepository(),
- new String[] { testUtils.getRepositoryPath(file) });
+ new String[] { testUtils.getPathInRepository(file), fileContent });
}
@Test
public void fileAddedToCloneIsInOriginAfterPush() throws Exception {
String fileName = "b.txt";
String fileContent = "adietish(a)redhat.com";
+
+ clonedTestRepository.createFile(fileName, fileContent);
Repository clonedRepository = clonedTestRepository.getRepository();
- newRepositoryFile(fileName, fileContent, clonedRepository);
Git git = new Git(clonedRepository);
git.add().addFilepattern(fileName).call();
git.commit().setCommitter(GIT_USER, GIT_EMAIL).setMessage("adding a new
file").call();
@@ -158,27 +103,4 @@
fileName,
fileContent);
}
-
- private void addToRepository(IFile file, TestRepository testRepository) throws
IOException, CoreException {
- // List<IResource> resources = new ArrayList<IResource>();
- // resources.add(file);
- // new AddToIndexOperation(resources).execute(null);
- testRepository.track(new File(file.getLocation().toOSString()));
- }
-
- private static void newRepositoryFile(String name, String data, Repository repository)
throws IOException {
- File file = new File(repository.getWorkTree(), name);
- write(file, data);
- }
-
- private static void write(final File file, final String body) throws IOException {
- FileUtils.mkdirs(file.getParentFile(), true);
- Writer w = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
- try {
- w.write(body);
- } finally {
- w.close();
- }
- }
-
}
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestRepository.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestRepository.java 2011-08-22
09:38:33 UTC (rev 34132)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestRepository.java 2011-08-22
09:42:21 UTC (rev 34133)
@@ -10,8 +10,13 @@
package org.jboss.ide.eclipse.as.egit.internal.test.util;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URISyntaxException;
import java.util.Collection;
import java.util.Collections;
import java.util.regex.Pattern;
@@ -19,9 +24,12 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.RepositoryCache;
import org.eclipse.egit.core.op.BranchOperation;
+import org.eclipse.egit.core.op.CloneOperation;
import org.eclipse.egit.core.op.ConnectProviderOperation;
import org.eclipse.egit.core.op.DisconnectProviderOperation;
import org.eclipse.jgit.api.CommitCommand;
@@ -35,16 +43,20 @@
import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheEntry;
import org.eclipse.jgit.errors.UnmergedPathException;
+import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.storage.file.FileRepository;
+import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.SystemReader;
/**
* Helper class for creating and filling a test repository
@@ -149,6 +161,21 @@
return file;
}
+ public void createFile(String name, String data) throws IOException {
+ File file = new File(repository.getWorkTree(), name);
+ write(file, data);
+ }
+
+ private void write(final File file, final String data) throws IOException {
+ FileUtils.mkdirs(file.getParentFile(), true);
+ Writer w = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
+ try {
+ w.write(data);
+ } finally {
+ w.close();
+ }
+ }
+
/**
* Track, add to index and finally commit given file
*
@@ -229,6 +256,10 @@
return commitCommand.call();
}
+ public void track(IFile file) throws IOException {
+ track(new File(file.getLocation().toOSString()));
+ }
+
/**
* Adds file to version control
*
@@ -456,11 +487,20 @@
return iFile;
}
- public void dispose() {
+ public void dispose() throws IOException {
repository.close();
+ remove();
repository = null;
}
+ public void remove() throws IOException {
+ File repositoryDirectory = repository.getDirectory();
+ File repositoryParent = repositoryDirectory.getParentFile();
+ if (repositoryParent.exists()) {
+ FileUtils.delete(repositoryParent, FileUtils.RECURSIVE | FileUtils.RETRY);
+ }
+ }
+
/**
* Connect a project to this repository
*
@@ -493,4 +533,31 @@
return dc.getEntry(repoPath);
}
+
+ public TestRepository cloneRepository(File path) throws URISyntaxException,
InvocationTargetException,
+ InterruptedException, IOException {
+ URIish uri = new URIish("file:///" + repository.getDirectory().toString());
+ CloneOperation clop =
+ new CloneOperation(uri, true, null, path, Constants.R_HEADS + Constants.MASTER,
+ Constants.DEFAULT_REMOTE_NAME, 0);
+ clop.run(null);
+ RepositoryCache repositoryCache = Activator.getDefault().getRepositoryCache();
+ Repository clonedRepository = repositoryCache
+ .lookupRepository(new File(path, Constants.DOT_GIT));
+ return new TestRepository(clonedRepository);
+ }
+
+ public void setUserAndEmail(String user, String email) {
+ StoredConfig config = repository.getConfig();
+ config.setString(
+ ConfigConstants.CONFIG_USER_SECTION, null, ConfigConstants.CONFIG_KEY_NAME, user);
+ config.setString(
+ ConfigConstants.CONFIG_USER_SECTION, null, ConfigConstants.CONFIG_KEY_EMAIL, email);
+ }
+
+ public void createMockSystemReader(IPath ceilingPath) {
+ MockSystemReader mockSystemReader = new MockSystemReader();
+ SystemReader.setInstance(mockSystemReader);
+ mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY,
ceilingPath.toOSString());
+ }
}
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestUtils.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestUtils.java 2011-08-22
09:38:33 UTC (rev 34132)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.egit.test/src/org/jboss/ide/eclipse/as/egit/internal/test/util/TestUtils.java 2011-08-22
09:42:21 UTC (rev 34133)
@@ -31,6 +31,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.egit.core.project.RepositoryMapping;
+import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.treewalk.TreeWalk;
@@ -61,6 +62,10 @@
return result;
}
+ public static File createGitDir(TestProject testProject) throws IOException {
+ return new File(testProject.getProject().getLocation().toFile(), Constants.DOT_GIT);
+ }
+
/**
* Cleanup: delete the "temporary" folder and all children
*
@@ -255,7 +260,7 @@
return map;
}
- public String getRepositoryPath(IResource resource) {
+ public String getPathInRepository(IResource resource) {
RepositoryMapping mapping = RepositoryMapping.getMapping(resource);
if (mapping == null) {
throw new IllegalArgumentException(resource + " is not in any repository");