Cleanup CommitAndLogCommandTest

- if a test can throw different exceptions declare it throws Exception
- fix code formatting

Change-Id: I55d63918f3163b31f2297d6217d5855108dd43b5
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2019-12-05 22:48:55 +01:00
parent 5bf226d50c
commit 02dc0ca688
1 changed files with 51 additions and 55 deletions

View File

@ -51,14 +51,10 @@
import static org.junit.Assume.assumeFalse; import static org.junit.Assume.assumeFalse;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.api.errors.NoMessageException; import org.eclipse.jgit.api.errors.NoMessageException;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.junit.RepositoryTestCase; import org.eclipse.jgit.junit.RepositoryTestCase;
import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
@ -77,13 +73,12 @@
*/ */
public class CommitAndLogCommandTest extends RepositoryTestCase { public class CommitAndLogCommandTest extends RepositoryTestCase {
@Test @Test
public void testSomeCommits() throws JGitInternalException, IOException, public void testSomeCommits() throws Exception {
GitAPIException {
// do 4 commits // do 4 commits
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call(); git.commit().setMessage("initial commit").call();
git.commit().setMessage("second commit").setCommitter(committer).call(); git.commit().setMessage("second commit").setCommitter(committer)
.call();
git.commit().setMessage("third commit").setAuthor(author).call(); git.commit().setMessage("third commit").setAuthor(author).call();
git.commit().setMessage("fourth commit").setAuthor(author) git.commit().setMessage("fourth commit").setAuthor(author)
.setCommitter(committer).call(); .setCommitter(committer).call();
@ -91,26 +86,28 @@ public void testSomeCommits() throws JGitInternalException, IOException,
// check that all commits came in correctly // check that all commits came in correctly
PersonIdent defaultCommitter = new PersonIdent(db); PersonIdent defaultCommitter = new PersonIdent(db);
PersonIdent expectedAuthors[] = new PersonIdent[] { defaultCommitter, PersonIdent expectedAuthors[] = new PersonIdent[] {
committer, author, author }; defaultCommitter, committer, author, author };
PersonIdent expectedCommitters[] = new PersonIdent[] { PersonIdent expectedCommitters[] = new PersonIdent[] {
defaultCommitter, committer, defaultCommitter, committer }; defaultCommitter, committer, defaultCommitter, committer };
String expectedMessages[] = new String[] { "initial commit", String expectedMessages[] = new String[] { "initial commit",
"second commit", "third commit", "fourth commit" }; "second commit", "third commit", "fourth commit" };
int l = expectedAuthors.length - 1; int l = expectedAuthors.length - 1;
for (RevCommit c : commits) { for (RevCommit c : commits) {
assertEquals(expectedAuthors[l].getName(), c.getAuthorIdent() assertEquals(expectedAuthors[l].getName(),
.getName()); c.getAuthorIdent().getName());
assertEquals(expectedCommitters[l].getName(), c.getCommitterIdent() assertEquals(expectedCommitters[l].getName(),
.getName()); c.getCommitterIdent().getName());
assertEquals(c.getFullMessage(), expectedMessages[l]); assertEquals(c.getFullMessage(), expectedMessages[l]);
l--; l--;
} }
assertEquals(l, -1); assertEquals(l, -1);
ReflogReader reader = db.getReflogReader(Constants.HEAD); ReflogReader reader = db.getReflogReader(Constants.HEAD);
assertTrue(reader.getLastEntry().getComment().startsWith("commit:")); assertTrue(
reader.getLastEntry().getComment().startsWith("commit:"));
reader = db.getReflogReader(db.getBranch()); reader = db.getReflogReader(db.getBranch());
assertTrue(reader.getLastEntry().getComment().startsWith("commit:")); assertTrue(
reader.getLastEntry().getComment().startsWith("commit:"));
} }
} }
@ -152,19 +149,20 @@ public void testMultipleInvocations() throws GitAPIException {
} }
@Test @Test
public void testMergeEmptyBranches() throws IOException, public void testMergeEmptyBranches() throws Exception {
JGitInternalException, GitAPIException {
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call(); git.commit().setMessage("initial commit").call();
RefUpdate r = db.updateRef("refs/heads/side"); RefUpdate r = db.updateRef("refs/heads/side");
r.setNewObjectId(db.resolve(Constants.HEAD)); r.setNewObjectId(db.resolve(Constants.HEAD));
assertEquals(r.forceUpdate(), RefUpdate.Result.NEW); assertEquals(r.forceUpdate(), RefUpdate.Result.NEW);
RevCommit second = git.commit().setMessage("second commit").setCommitter(committer).call(); RevCommit second = git.commit().setMessage("second commit")
.setCommitter(committer).call();
db.updateRef(Constants.HEAD).link("refs/heads/side"); db.updateRef(Constants.HEAD).link("refs/heads/side");
RevCommit firstSide = git.commit().setMessage("first side commit").setAuthor(author).call(); RevCommit firstSide = git.commit().setMessage("first side commit")
.setAuthor(author).call();
write(new File(db.getDirectory(), Constants.MERGE_HEAD), ObjectId write(new File(db.getDirectory(), Constants.MERGE_HEAD),
.toString(db.resolve("refs/heads/master"))); ObjectId.toString(db.resolve("refs/heads/master")));
write(new File(db.getDirectory(), Constants.MERGE_MSG), "merging"); write(new File(db.getDirectory(), Constants.MERGE_MSG), "merging");
RevCommit commit = git.commit().call(); RevCommit commit = git.commit().call();
@ -176,8 +174,7 @@ public void testMergeEmptyBranches() throws IOException,
} }
@Test @Test
public void testAddUnstagedChanges() throws IOException, public void testAddUnstagedChanges() throws Exception {
JGitInternalException, GitAPIException {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
FileUtils.createNewFile(file); FileUtils.createNewFile(file);
try (PrintWriter writer = new PrintWriter(file, UTF_8.name())) { try (PrintWriter writer = new PrintWriter(file, UTF_8.name())) {
@ -208,7 +205,7 @@ public void testAddUnstagedChanges() throws IOException,
} }
@Test @Test
public void testModeChange() throws IOException, GitAPIException { public void testModeChange() throws Exception {
assumeFalse(System.getProperty("os.name").startsWith("Windows"));// SKIP assumeFalse(System.getProperty("os.name").startsWith("Windows"));// SKIP
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
// create file // create file
@ -226,7 +223,8 @@ public void testModeChange() throws IOException, GitAPIException {
FS fs = db.getFS(); FS fs = db.getFS();
fs.setExecute(file, true); fs.setExecute(file, true);
git.add().addFilepattern("a.txt").call(); git.add().addFilepattern("a.txt").call();
git.commit().setMessage("mode change").setCommitter(committer).call(); git.commit().setMessage("mode change").setCommitter(committer)
.call();
// pure mode change should be committable with -o option // pure mode change should be committable with -o option
fs.setExecute(file, false); fs.setExecute(file, false);
@ -237,34 +235,32 @@ public void testModeChange() throws IOException, GitAPIException {
} }
@Test @Test
public void testCommitRange() throws GitAPIException, public void testCommitRange() throws Exception {
JGitInternalException, MissingObjectException,
IncorrectObjectTypeException {
// do 4 commits and set the range to the second and fourth one // do 4 commits and set the range to the second and fourth one
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("first commit").call(); git.commit().setMessage("first commit").call();
RevCommit second = git.commit().setMessage("second commit") RevCommit second = git.commit().setMessage("second commit")
.setCommitter(committer).call(); .setCommitter(committer).call();
git.commit().setMessage("third commit").setAuthor(author).call(); git.commit().setMessage("third commit").setAuthor(author).call();
RevCommit last = git.commit().setMessage("fourth commit").setAuthor( RevCommit last = git.commit().setMessage("fourth commit")
author) .setAuthor(author).setCommitter(committer).call();
.setCommitter(committer).call(); Iterable<RevCommit> commits = git.log()
Iterable<RevCommit> commits = git.log().addRange(second.getId(), .addRange(second.getId(), last.getId()).call();
last.getId()).call();
// check that we have the third and fourth commit // check that we have the third and fourth commit
PersonIdent defaultCommitter = new PersonIdent(db); PersonIdent defaultCommitter = new PersonIdent(db);
PersonIdent expectedAuthors[] = new PersonIdent[] { author, author }; PersonIdent expectedAuthors[] = new PersonIdent[] { author,
author };
PersonIdent expectedCommitters[] = new PersonIdent[] { PersonIdent expectedCommitters[] = new PersonIdent[] {
defaultCommitter, committer }; defaultCommitter, committer };
String expectedMessages[] = new String[] { "third commit", String expectedMessages[] = new String[] { "third commit",
"fourth commit" }; "fourth commit" };
int l = expectedAuthors.length - 1; int l = expectedAuthors.length - 1;
for (RevCommit c : commits) { for (RevCommit c : commits) {
assertEquals(expectedAuthors[l].getName(), c.getAuthorIdent() assertEquals(expectedAuthors[l].getName(),
.getName()); c.getAuthorIdent().getName());
assertEquals(expectedCommitters[l].getName(), c.getCommitterIdent() assertEquals(expectedCommitters[l].getName(),
.getName()); c.getCommitterIdent().getName());
assertEquals(c.getFullMessage(), expectedMessages[l]); assertEquals(c.getFullMessage(), expectedMessages[l]);
l--; l--;
} }
@ -273,8 +269,7 @@ public void testCommitRange() throws GitAPIException,
} }
@Test @Test
public void testCommitAmend() throws JGitInternalException, IOException, public void testCommitAmend() throws Exception {
GitAPIException {
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("first comit").call(); // typo git.commit().setMessage("first comit").call(); // typo
git.commit().setAmend(true).setMessage("first commit").call(); git.commit().setAmend(true).setMessage("first commit").call();
@ -296,15 +291,14 @@ public void testCommitAmend() throws JGitInternalException, IOException,
} }
@Test @Test
public void testInsertChangeId() throws JGitInternalException, public void testInsertChangeId() throws Exception {
GitAPIException {
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
String messageHeader = "Some header line\n\nSome detail explanation\n"; String messageHeader = "Some header line\n\nSome detail explanation\n";
String changeIdTemplate = "\nChange-Id: I" String changeIdTemplate = "\nChange-Id: I"
+ ObjectId.zeroId().getName() + "\n"; + ObjectId.zeroId().getName() + "\n";
String messageFooter = "Some foooter lines\nAnother footer line\n"; String messageFooter = "Some foooter lines\nAnother footer line\n";
RevCommit commit = git.commit().setMessage( RevCommit commit = git.commit()
messageHeader + messageFooter) .setMessage(messageHeader + messageFooter)
.setInsertChangeId(true).call(); .setInsertChangeId(true).call();
// we should find a real change id (at the end of the file) // we should find a real change id (at the end of the file)
byte[] chars = commit.getFullMessage().getBytes(UTF_8); byte[] chars = commit.getFullMessage().getBytes(UTF_8);
@ -312,11 +306,12 @@ public void testInsertChangeId() throws JGitInternalException,
String lastLine = RawParseUtils.decode(chars, lastLineBegin + 1, String lastLine = RawParseUtils.decode(chars, lastLineBegin + 1,
chars.length); chars.length);
assertTrue(lastLine.contains("Change-Id:")); assertTrue(lastLine.contains("Change-Id:"));
assertFalse(lastLine.contains( assertFalse(lastLine
"Change-Id: I" + ObjectId.zeroId().getName())); .contains("Change-Id: I" + ObjectId.zeroId().getName()));
commit = git.commit().setMessage( commit = git.commit()
messageHeader + changeIdTemplate + messageFooter) .setMessage(
messageHeader + changeIdTemplate + messageFooter)
.setInsertChangeId(true).call(); .setInsertChangeId(true).call();
// we should find a real change id (in the line as dictated by the // we should find a real change id (in the line as dictated by the
// template) // template)
@ -331,11 +326,12 @@ public void testInsertChangeId() throws JGitInternalException,
String line = RawParseUtils.decode(chars, lineStart, lineEnd); String line = RawParseUtils.decode(chars, lineStart, lineEnd);
assertTrue(line.contains("Change-Id:")); assertTrue(line.contains("Change-Id:"));
assertFalse(line.contains( assertFalse(line
"Change-Id: I" + ObjectId.zeroId().getName())); .contains("Change-Id: I" + ObjectId.zeroId().getName()));
commit = git.commit().setMessage( commit = git.commit()
messageHeader + changeIdTemplate + messageFooter) .setMessage(
messageHeader + changeIdTemplate + messageFooter)
.setInsertChangeId(false).call(); .setInsertChangeId(false).call();
// we should find the untouched template // we should find the untouched template
chars = commit.getFullMessage().getBytes(UTF_8); chars = commit.getFullMessage().getBytes(UTF_8);
@ -348,8 +344,8 @@ public void testInsertChangeId() throws JGitInternalException,
line = RawParseUtils.decode(chars, lineStart, lineEnd); line = RawParseUtils.decode(chars, lineStart, lineEnd);
assertTrue(commit.getFullMessage().contains( assertTrue(commit.getFullMessage()
"Change-Id: I" + ObjectId.zeroId().getName())); .contains("Change-Id: I" + ObjectId.zeroId().getName()));
} }
} }
} }