From 2923472cbb95257f7e973e01915956b2ecb20462 Mon Sep 17 00:00:00 2001 From: Mathias Kinzler Date: Wed, 1 Dec 2010 15:29:28 +0100 Subject: Remove deprecated JGit code from EGit Core Tests Change-Id: Ia168e795a93261d3d2da161f76200ba7a0ab7924 Signed-off-by: Mathias Kinzler --- .../org/eclipse/egit/core/test/TestRepository.java | 56 ++++++++++++--------- .../core/test/op/ConnectProviderOperationTest.java | 58 ++++++---------------- 2 files changed, 46 insertions(+), 68 deletions(-) (limited to 'org.eclipse.egit.core.test/src') diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java index a420986e17..cf5e202be9 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java @@ -1,4 +1,5 @@ /******************************************************************************* + * Copyright (C) 2011, Mathias Kinzler * Copyright (C) 2010, Jens Baumgart * * All rights reserved. This program and the accompanying materials @@ -8,8 +9,6 @@ *******************************************************************************/ package org.eclipse.egit.core.test; -import static org.junit.Assert.assertNotNull; - import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -20,6 +19,7 @@ import java.util.regex.Pattern; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Path; import org.eclipse.egit.core.op.BranchOperation; import org.eclipse.egit.core.op.ConnectProviderOperation; import org.eclipse.egit.core.op.DisconnectProviderOperation; @@ -27,21 +27,21 @@ import org.eclipse.jgit.api.CommitCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException; import org.eclipse.jgit.api.errors.JGitInternalException; +import org.eclipse.jgit.api.errors.NoFilepatternException; import org.eclipse.jgit.api.errors.NoHeadException; import org.eclipse.jgit.api.errors.NoMessageException; import org.eclipse.jgit.api.errors.WrongRepositoryStateException; import org.eclipse.jgit.dircache.DirCache; import org.eclipse.jgit.errors.UnmergedPathException; import org.eclipse.jgit.lib.Constants; -import org.eclipse.jgit.lib.GitIndex; 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.Tree; -import org.eclipse.jgit.lib.GitIndex.Entry; import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.storage.file.FileRepository; +import org.eclipse.jgit.treewalk.TreeWalk; /** * Helper class for creating and filling a test repository @@ -228,10 +228,13 @@ public class TestRepository { * @throws IOException */ public void track(File file) throws IOException { - GitIndex index = repository.getIndex(); - Entry entry = index.add(repository.getWorkTree(), file); - entry.setAssumeValid(false); - index.write(); + String repoPath = getRepoRelativePath(new Path(file.getPath()) + .toString()); + try { + new Git(repository).add().addFilepattern(repoPath).call(); + } catch (NoFilepatternException e) { + throw new IOException(e.getMessage()); + } } /** @@ -301,16 +304,16 @@ public class TestRepository { * Adds the given file to the index * * @param file + * @throws CoreException * @throws IOException */ - public void addToIndex(IFile file) throws IOException { - GitIndex index = repository.getIndex(); - Entry entry = index.getEntry(getRepoRelativePath(file.getLocation() - .toOSString())); - assertNotNull(entry); - if (entry.isModified(repository.getWorkTree())) - entry.update(new File(repository.getWorkTree(), entry.getName())); - index.write(); + public void addToIndex(IFile file) throws CoreException, IOException { + String repoPath = getRepoRelativePath(file.getLocation().toOSString()); + try { + new Git(repository).add().addFilepattern(repoPath).call(); + } catch (NoFilepatternException e) { + throw new IOException(e.getMessage()); + } } /** @@ -375,16 +378,21 @@ public class TestRepository { * @throws IOException */ public boolean inHead(String path) throws IOException { - Tree headTree = repository.mapTree(Constants.HEAD); - String repoPath = getRepoRelativePath(path); - boolean headExists = headTree.existsBlob(repoPath); - return headExists; + ObjectId headId = repository.resolve(Constants.HEAD); + RevWalk rw = new RevWalk(repository); + TreeWalk tw = null; + try { + tw = TreeWalk.forPath(repository, path, rw.parseTree(headId)); + return tw != null; + } finally { + rw.release(); + rw.dispose(); + if (tw != null) + tw.release(); + } } public boolean inIndex(String path) throws IOException { -// String repoPath = getRepoRelativePath(path); -// GitIndex index = repository.getIndex(); -// return index.getEntry(repoPath) != null; String repoPath = getRepoRelativePath(path); DirCache dc = DirCache.read(repository.getIndexFile(), repository.getFS()); diff --git a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java index f0cddc272e..319fa7d949 100644 --- a/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java +++ b/org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/ConnectProviderOperationTest.java @@ -9,30 +9,22 @@ *******************************************************************************/ package org.eclipse.egit.core.test.op; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; -import java.util.Date; -import java.util.TimeZone; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.egit.core.op.ConnectProviderOperation; import org.eclipse.egit.core.test.GitTestCase; -import org.eclipse.jgit.lib.CommitBuilder; +import org.eclipse.egit.core.test.TestRepository; import org.eclipse.jgit.lib.Constants; -import org.eclipse.jgit.lib.FileTreeEntry; -import org.eclipse.jgit.lib.ObjectId; -import org.eclipse.jgit.lib.ObjectInserter; -import org.eclipse.jgit.lib.PersonIdent; -import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.lib.Tree; import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.team.core.RepositoryProvider; import org.junit.Test; @@ -66,49 +58,27 @@ public class ConnectProviderOperationTest extends GitTestCase { } @Test - public void testNewUnsharedFile() throws CoreException, IOException { + public void testNewUnsharedFile() throws CoreException, Exception { project.createSourceFolder(); IFile fileA = project.getProject().getFolder("src").getFile("A.java"); String srcA = "class A {\n" + "}\n"; - fileA.create(new ByteArrayInputStream(srcA.getBytes("UTF-8")), false, null); - - Repository thisGit = new FileRepository(gitDir); - thisGit.create(); - Tree rootTree = new Tree(thisGit); - Tree prjTree = rootTree.addTree(project.getProject().getName()); - Tree srcTree = prjTree.addTree("src"); - FileTreeEntry entryA = srcTree.addFile("A.java"); - - ObjectId id; - ObjectInserter inserter = thisGit.newObjectInserter(); - try { - entryA.setId(inserter.insert(Constants.OBJ_BLOB, srcA.getBytes("UTF-8"))); - srcTree.setId(inserter.insert(Constants.OBJ_TREE, srcTree.format())); - prjTree.setId(inserter.insert(Constants.OBJ_TREE, prjTree.format())); - rootTree.setId(inserter.insert(Constants.OBJ_TREE, rootTree.format())); - CommitBuilder commit = new CommitBuilder(); - commit.setTreeId(rootTree.getTreeId()); - commit.setAuthor(new PersonIdent("J. Git", "j.git@egit.org", - new Date(60876075600000L), TimeZone.getTimeZone("GMT+1"))); - commit.setCommitter(commit.getAuthor()); - commit.setMessage("testNewUnsharedFile\n\nJunit tests\n"); - id = inserter.insert(commit); - inserter.flush(); - } finally { - inserter.release(); - } - - RefUpdate lck = thisGit.updateRef("refs/heads/master"); - assertNotNull("obtained lock", lck); - lck.setNewObjectId(id); - assertEquals(RefUpdate.Result.NEW, lck.forceUpdate()); + fileA.create(new ByteArrayInputStream(srcA.getBytes("UTF-8")), false, + null); + + TestRepository thisGit = new TestRepository(gitDir); + + File committable = new File(fileA.getLocationURI()); + + thisGit.addAndCommit(project.project, committable, + "testNewUnsharedFile\n\nJunit tests\n"); + + assertNull(RepositoryProvider.getProvider(project.getProject())); ConnectProviderOperation operation = new ConnectProviderOperation( project.getProject(), gitDir); operation.execute(null); assertNotNull(RepositoryProvider.getProvider(project.getProject())); - } } -- cgit v1.2.3