Added CLIText.fatalError(String) API for tests

In different places (Main, TextBuiltin, CLIGitCommand) we report fatal
errors and at same time want to check for fatal errors in the tests.
Using common API simplifies the error testing and helps to navigate to
the actual error check implementation.

Change-Id: Iecde79beb33ea595171f168f46b0b10ab2f339bb
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
This commit is contained in:
Andrey Loskutov 2016-01-03 15:27:01 +01:00
parent 24cd8e170d
commit 24468f09e3
6 changed files with 29 additions and 16 deletions

View File

@ -44,7 +44,6 @@
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
@ -106,8 +105,7 @@ public static List<String> execute(String str, Repository db)
try {
return IO.readLines(new String(rawExecute(str, db)));
} catch (Die e) {
return IO.readLines(MessageFormat.format(CLIText.get().fatalError,
e.getMessage()));
return IO.readLines(CLIText.fatalError(e.getMessage()));
}
}

View File

@ -43,6 +43,7 @@
package org.eclipse.jgit.pgm;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@ -50,6 +51,7 @@
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
import org.eclipse.jgit.pgm.internal.CLIText;
import org.junit.Before;
import org.junit.Test;
@ -71,17 +73,15 @@ private void initialCommitAndTag() throws Exception {
@Test
public void testNoHead() throws Exception {
assertArrayEquals(
new String[] { "fatal: No names found, cannot describe anything." },
executeUnchecked("git describe"));
assertEquals(CLIText.fatalError(CLIText.get().noNamesFound),
toString(executeUnchecked("git describe")));
}
@Test
public void testHeadNoTag() throws Exception {
git.commit().setMessage("initial commit").call();
assertArrayEquals(
new String[] { "fatal: No names found, cannot describe anything." },
executeUnchecked("git describe"));
assertEquals(CLIText.fatalError(CLIText.get().noNamesFound),
toString(executeUnchecked("git describe")));
}
@Test

View File

@ -50,6 +50,7 @@
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
import org.eclipse.jgit.merge.MergeStrategy;
import org.eclipse.jgit.pgm.internal.CLIText;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before;
import org.junit.Test;
@ -194,7 +195,8 @@ public void testNoFastForward() throws Exception {
@Test
public void testNoFastForwardAndSquash() throws Exception {
assertEquals("fatal: You cannot combine --squash with --no-ff.",
assertEquals(
CLIText.fatalError(CLIText.get().cannotCombineSquashWithNoff),
executeUnchecked("git merge master --no-ff --squash")[0]);
}
@ -209,7 +211,7 @@ public void testFastForwardOnly() throws Exception {
git.add().addFilepattern("file").call();
git.commit().setMessage("commit#2").call();
assertEquals("fatal: Not possible to fast-forward, aborting.",
assertEquals(CLIText.fatalError(CLIText.get().ffNotPossibleAborting),
executeUnchecked("git merge master --ff-only")[0]);
}

View File

@ -128,7 +128,7 @@ protected void run(final String[] argv) {
} catch (Die err) {
if (err.isAborted())
System.exit(1);
System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
System.err.println(CLIText.fatalError(err.getMessage()));
if (showStackTrace)
err.printStackTrace();
System.exit(128);
@ -147,10 +147,10 @@ protected void run(final String[] argv) {
}
if (!showStackTrace && err.getCause() != null
&& err instanceof TransportException)
System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getCause().getMessage()));
System.err.println(CLIText.fatalError(err.getCause().getMessage()));
if (err.getClass().getName().startsWith("org.eclipse.jgit.errors.")) { //$NON-NLS-1$
System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
System.err.println(CLIText.fatalError(err.getMessage()));
if (showStackTrace)
err.printStackTrace();
System.exit(128);
@ -176,7 +176,7 @@ private void execute(final String[] argv) throws Exception {
clp.parseArgument(argv);
} catch (CmdLineException err) {
if (argv.length > 0 && !help && !version) {
writer.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
writer.println(CLIText.fatalError(err.getMessage()));
writer.flush();
System.exit(1);
}

View File

@ -216,7 +216,7 @@ protected void parseArguments(final String[] args) throws IOException {
try {
clp.parseArgument(args);
} catch (CmdLineException err) {
this.errw.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
this.errw.println(CLIText.fatalError(err.getMessage()));
if (help) {
printUsage("", clp); //$NON-NLS-1$
}

View File

@ -74,6 +74,19 @@ public static String formatLine(String line) {
return MessageFormat.format(get().lineFormat, line);
}
/**
* Format the given argument as fatal error using the format defined by
* {@link #fatalError} ("fatal: " by default).
*
* @param message
* the message to format
* @return the formatted line
* @since 4.2
*/
public static String fatalError(String message) {
return MessageFormat.format(get().fatalError, message);
}
// @formatter:off
/***/ public String alreadyOnBranch;
/***/ public String alreadyUpToDate;