diff --git a/cli/src/main/java/bio/terra/pfb/GitConfiguration.java b/cli/src/main/java/bio/terra/pfb/GitConfiguration.java index 12d2464a..8ae744cc 100644 --- a/cli/src/main/java/bio/terra/pfb/GitConfiguration.java +++ b/cli/src/main/java/bio/terra/pfb/GitConfiguration.java @@ -16,7 +16,7 @@ public String getCliVersion() { return readGitPropertiesValue(CLI_VERSION_BUILD_PROPERTY); } - private String readGitPropertiesValue(String propertyName) { + String readGitPropertiesValue(String propertyName) { String result = ""; InputStream inputStream = null; try { diff --git a/cli/src/main/java/bio/terra/pfb/JavaPfbCommand.java b/cli/src/main/java/bio/terra/pfb/JavaPfbCommand.java index 09d85be4..23aad2dc 100644 --- a/cli/src/main/java/bio/terra/pfb/JavaPfbCommand.java +++ b/cli/src/main/java/bio/terra/pfb/JavaPfbCommand.java @@ -11,10 +11,14 @@ versionProvider = PfbVersion.class) public class JavaPfbCommand implements Runnable { public static void main(String[] args) { - int exitCode = new CommandLine(new JavaPfbCommand()).execute(args); + int exitCode = executeCommand(args); System.exit(exitCode); } + static int executeCommand(String[] args) { + return new CommandLine(new JavaPfbCommand()).execute(args); + } + @Override public void run() { System.out.println("PFB RUN"); diff --git a/cli/src/test/java/bio/terra/pfb/GitConfigurationTest.java b/cli/src/test/java/bio/terra/pfb/GitConfigurationTest.java index 51b2b90c..e61119e2 100644 --- a/cli/src/test/java/bio/terra/pfb/GitConfigurationTest.java +++ b/cli/src/test/java/bio/terra/pfb/GitConfigurationTest.java @@ -1,7 +1,9 @@ package bio.terra.pfb; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.matchesPattern; +import static org.hamcrest.Matchers.nullValue; import org.junit.jupiter.api.Test; @@ -13,4 +15,11 @@ void getBuildVersion() { String version = gitConfiguration.getCliVersion(); assertThat(version, matchesPattern("\\d+\\.\\d+\\.\\d")); } + + @Test + void testFileNotFound() { + GitConfiguration gitConfiguration = new GitConfiguration(); + String emptyString = gitConfiguration.readGitPropertiesValue("invalid.property.name"); + assertThat(emptyString, is(nullValue())); + } } diff --git a/cli/src/test/java/bio/terra/pfb/JavaPfbCommandTest.java b/cli/src/test/java/bio/terra/pfb/JavaPfbCommandTest.java index 0ed1c01e..e73bad0a 100644 --- a/cli/src/test/java/bio/terra/pfb/JavaPfbCommandTest.java +++ b/cli/src/test/java/bio/terra/pfb/JavaPfbCommandTest.java @@ -2,6 +2,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.matchesPattern; import java.io.ByteArrayOutputStream; import java.io.PrintStream; @@ -35,6 +37,32 @@ void run() { assertThat(outContent.toString(), containsString("PFB RUN")); } + @Test + void testVersionCommand() { + String[] args = new String[1]; + args[0] = "--version"; + javaPfbCommand.executeCommand(args); + assertThat(outContent.toString(), matchesPattern("pfb \\d+\\.\\d+\\.\\d\n")); + } + + @Test + void testCorrectVersion() { + GitConfiguration gitConfiguration = new GitConfiguration(); + String exepectedVersion = gitConfiguration.getCliVersion(); + String[] args = new String[1]; + args[0] = "--version"; + javaPfbCommand.executeCommand(args); + assertThat(outContent.toString(), equalTo("pfb " + exepectedVersion + "\n")); + } + + @Test + void testHelpCommand() { + String[] args = new String[1]; + args[0] = "--help"; + javaPfbCommand.executeCommand(args); + assertThat(outContent.toString(), containsString("Usage: pfb")); + } + @Test void helloCommand() { javaPfbCommand.helloCommand(); diff --git a/cli/src/test/java/bio/terra/pfb/PfbVersionTest.java b/cli/src/test/java/bio/terra/pfb/PfbVersionTest.java new file mode 100644 index 00000000..0bd079a4 --- /dev/null +++ b/cli/src/test/java/bio/terra/pfb/PfbVersionTest.java @@ -0,0 +1,16 @@ +package bio.terra.pfb; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.matchesPattern; + +import org.junit.jupiter.api.Test; + +class PfbVersionTest { + + @Test + void getVersion() { + PfbVersion pfbVersion = new PfbVersion(); + String[] version = pfbVersion.getVersion(); + assertThat(version[0], matchesPattern("\\$\\{COMMAND-FULL-NAME\\} \\d+\\.\\d+\\.\\d")); + } +}