Browse Source

TagCommandTest: Instantiate Git and RevWalk objects in try-with-resource

Change-Id: I08959650e2970e964bc864dc6d120d7bddfd8232
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
tags/v4.2.0.201601211800-r
David Pursehouse 8 years ago
parent
commit
ebbd007639
1 changed files with 115 additions and 101 deletions
  1. 115
    101
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java

+ 115
- 101
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TagCommandTest.java View File

@@ -62,171 +62,185 @@ public class TagCommandTest extends RepositoryTestCase {

@Test
public void testTaggingOnHead() throws GitAPIException, IOException {
Git git = new Git(db);
RevCommit commit = git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId());
RevWalk walk = new RevWalk(db);
assertEquals("tag", walk.parseTag(tagRef.getObjectId()).getTagName());
try (Git git = new Git(db);
RevWalk walk = new RevWalk(db)) {
RevCommit commit = git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId());
assertEquals("tag", walk.parseTag(tagRef.getObjectId()).getTagName());
}
}

@Test
public void testTagging() throws GitAPIException, JGitInternalException {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
RevCommit commit = git.commit().setMessage("second commit").call();
git.commit().setMessage("third commit").call();
Ref tagRef = git.tag().setObjectId(commit).setName("tag").call();
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId());
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
RevCommit commit = git.commit().setMessage("second commit").call();
git.commit().setMessage("third commit").call();
Ref tagRef = git.tag().setObjectId(commit).setName("tag").call();
assertEquals(commit.getId(), db.peel(tagRef).getPeeledObjectId());
}
}

@Test
public void testUnannotatedTagging() throws GitAPIException,
JGitInternalException {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
RevCommit commit = git.commit().setMessage("second commit").call();
git.commit().setMessage("third commit").call();
Ref tagRef = git.tag().setObjectId(commit).setName("tag")
.setAnnotated(false).call();
assertEquals(commit.getId(), tagRef.getObjectId());
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
RevCommit commit = git.commit().setMessage("second commit").call();
git.commit().setMessage("third commit").call();
Ref tagRef = git.tag().setObjectId(commit).setName("tag")
.setAnnotated(false).call();
assertEquals(commit.getId(), tagRef.getObjectId());
}
}

@Test
public void testEmptyTagName() throws GitAPIException {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try {
// forget to tag name
git.tag().setMessage("some message").call();
fail("We should have failed without a tag name");
} catch (InvalidTagNameException e) {
// should hit here
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
try {
// forget to tag name
git.tag().setMessage("some message").call();
fail("We should have failed without a tag name");
} catch (InvalidTagNameException e) {
// should hit here
}
}
}

@Test
public void testInvalidTagName() throws GitAPIException {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try {
git.tag().setName("bad~tag~name").setMessage("some message").call();
fail("We should have failed due to a bad tag name");
} catch (InvalidTagNameException e) {
// should hit here
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
try {
git.tag().setName("bad~tag~name").setMessage("some message").call();
fail("We should have failed due to a bad tag name");
} catch (InvalidTagNameException e) {
// should hit here
}
}
}

@Test
public void testFailureOnSignedTags() throws GitAPIException {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try {
git.tag().setSigned(true).setName("tag").call();
fail("We should have failed with an UnsupportedOperationException due to signed tag");
} catch (UnsupportedOperationException e) {
// should hit here
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
try {
git.tag().setSigned(true).setName("tag").call();
fail("We should have failed with an UnsupportedOperationException due to signed tag");
} catch (UnsupportedOperationException e) {
// should hit here
}
}
}

@Test
public void testDelete() throws Exception {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(1, db.getTags().size());

List<String> deleted = git.tagDelete().setTags(tagRef.getName())
.call();
assertEquals(1, deleted.size());
assertEquals(tagRef.getName(), deleted.get(0));
assertEquals(0, db.getTags().size());

Ref tagRef1 = git.tag().setName("tag1").call();
Ref tagRef2 = git.tag().setName("tag2").call();
assertEquals(2, db.getTags().size());
deleted = git.tagDelete().setTags(tagRef1.getName(), tagRef2.getName())
.call();
assertEquals(2, deleted.size());
assertEquals(0, db.getTags().size());
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(1, db.getTags().size());

List<String> deleted = git.tagDelete().setTags(tagRef.getName())
.call();
assertEquals(1, deleted.size());
assertEquals(tagRef.getName(), deleted.get(0));
assertEquals(0, db.getTags().size());

Ref tagRef1 = git.tag().setName("tag1").call();
Ref tagRef2 = git.tag().setName("tag2").call();
assertEquals(2, db.getTags().size());
deleted = git.tagDelete().setTags(tagRef1.getName(), tagRef2.getName())
.call();
assertEquals(2, deleted.size());
assertEquals(0, db.getTags().size());
}
}

@Test
public void testDeleteFullName() throws Exception {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(1, db.getTags().size());

List<String> deleted = git.tagDelete()
.setTags(Repository.shortenRefName(tagRef.getName())).call();
assertEquals(1, deleted.size());
assertEquals(tagRef.getName(), deleted.get(0));
assertEquals(0, db.getTags().size());
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();
Ref tagRef = git.tag().setName("tag").call();
assertEquals(1, db.getTags().size());

List<String> deleted = git.tagDelete()
.setTags(Repository.shortenRefName(tagRef.getName())).call();
assertEquals(1, deleted.size());
assertEquals(tagRef.getName(), deleted.get(0));
assertEquals(0, db.getTags().size());
}
}

@Test
public void testDeleteEmptyTagNames() throws Exception {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();

List<String> deleted = git.tagDelete().setTags().call();
assertEquals(0, deleted.size());
List<String> deleted = git.tagDelete().setTags().call();
assertEquals(0, deleted.size());
}
}

@Test
public void testDeleteNonExisting() throws Exception {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();

List<String> deleted = git.tagDelete().setTags("tag").call();
assertEquals(0, deleted.size());
List<String> deleted = git.tagDelete().setTags("tag").call();
assertEquals(0, deleted.size());
}
}

@Test
public void testDeleteBadName() throws Exception {
Git git = new Git(db);
git.commit().setMessage("initial commit").call();
try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call();

List<String> deleted = git.tagDelete().setTags("bad~tag~name")
.call();
assertEquals(0, deleted.size());
List<String> deleted = git.tagDelete().setTags("bad~tag~name")
.call();
assertEquals(0, deleted.size());
}
}

@Test
public void testShouldNotBlowUpIfThereAreNoTagsInRepository()
throws Exception {
Git git = new Git(db);
git.add().addFilepattern("*").call();
git.commit().setMessage("initial commit").call();
List<Ref> list = git.tagList().call();
assertEquals(0, list.size());
try (Git git = new Git(db)) {
git.add().addFilepattern("*").call();
git.commit().setMessage("initial commit").call();
List<Ref> list = git.tagList().call();
assertEquals(0, list.size());
}
}

@Test
public void testShouldNotBlowUpIfThereAreNoCommitsInRepository()
throws Exception {
Git git = new Git(db);
List<Ref> list = git.tagList().call();
assertEquals(0, list.size());
try (Git git = new Git(db)) {
List<Ref> list = git.tagList().call();
assertEquals(0, list.size());
}
}

@Test
public void testListAllTagsInRepositoryInOrder() throws Exception {
Git git = new Git(db);
git.add().addFilepattern("*").call();
git.commit().setMessage("initial commit").call();
try (Git git = new Git(db)) {
git.add().addFilepattern("*").call();
git.commit().setMessage("initial commit").call();

git.tag().setName("v3").call();
git.tag().setName("v2").call();
git.tag().setName("v10").call();
git.tag().setName("v3").call();
git.tag().setName("v2").call();
git.tag().setName("v10").call();

List<Ref> list = git.tagList().call();
List<Ref> list = git.tagList().call();

assertEquals(3, list.size());
assertEquals("refs/tags/v10", list.get(0).getName());
assertEquals("refs/tags/v2", list.get(1).getName());
assertEquals("refs/tags/v3", list.get(2).getName());
assertEquals(3, list.size());
assertEquals("refs/tags/v10", list.get(0).getName());
assertEquals("refs/tags/v2", list.get(1).getName());
assertEquals("refs/tags/v3", list.get(2).getName());
}
}

}

Loading…
Cancel
Save