mirror of
https://codeberg.org/PGPainless/sop-java.git
synced 2024-11-22 23:22:05 +01:00
Fix exception handling and add tests
This commit is contained in:
parent
117117b735
commit
3e1502ff2a
4 changed files with 29 additions and 3 deletions
|
@ -199,7 +199,7 @@ public class DecryptCmd implements Runnable {
|
||||||
try {
|
try {
|
||||||
sessionKey = FileUtil.stringFromInputStream(FileUtil.getFileInputStream(sessionKeyFile));
|
sessionKey = FileUtil.stringFromInputStream(FileUtil.getFileInputStream(sessionKeyFile));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new SOPGPException.BadData("Cannot read session key from session key file " + sessionKeyFile, e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
if (!sessionKeyPattern.matcher(sessionKey).matches()) {
|
if (!sessionKeyPattern.matcher(sessionKey).matches()) {
|
||||||
throw new IllegalArgumentException("Session keys are expected in the format 'ALGONUM:HEXKEY'.");
|
throw new IllegalArgumentException("Session keys are expected in the format 'ALGONUM:HEXKEY'.");
|
||||||
|
@ -224,7 +224,7 @@ public class DecryptCmd implements Runnable {
|
||||||
} catch (SOPGPException.UnsupportedOption unsupportedOption) {
|
} catch (SOPGPException.UnsupportedOption unsupportedOption) {
|
||||||
throw new SOPGPException.UnsupportedOption(String.format(ERROR_UNSUPPORTED_OPTION, "--with-password"), unsupportedOption);
|
throw new SOPGPException.UnsupportedOption(String.format(ERROR_UNSUPPORTED_OPTION, "--with-password"), unsupportedOption);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new SOPGPException.PasswordNotHumanReadable("Cannot read password from password file " + passwordFile, e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class EncryptCmd implements Runnable {
|
||||||
} catch (SOPGPException.UnsupportedOption unsupportedOption) {
|
} catch (SOPGPException.UnsupportedOption unsupportedOption) {
|
||||||
throw new SOPGPException.UnsupportedOption("Unsupported option '--with-password'.", unsupportedOption);
|
throw new SOPGPException.UnsupportedOption("Unsupported option '--with-password'.", unsupportedOption);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new SOPGPException.PasswordNotHumanReadable("Cannot read password from the provided password file " + passwordFileName, e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -345,6 +345,18 @@ public class DecryptCmdTest {
|
||||||
SopCLI.main(new String[] {"decrypt", tempKeyFile.getAbsolutePath()});
|
SopCLI.main(new String[] {"decrypt", tempKeyFile.getAbsolutePath()});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@ExpectSystemExitWithStatus(61)
|
||||||
|
public void assertMissingPassphraseFileCausesExit61() {
|
||||||
|
SopCLI.main(new String[] {"decrypt", "--with-password", "missing"});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@ExpectSystemExitWithStatus(61)
|
||||||
|
public void assertMissingSessionKeyFileCausesExit61() {
|
||||||
|
SopCLI.main(new String[] {"decrypt", "--with-session-key", "missing"});
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ExpectSystemExitWithStatus(23)
|
@ExpectSystemExitWithStatus(23)
|
||||||
public void verifyOutWithoutVerifyWithCausesExit23() {
|
public void verifyOutWithoutVerifyWithCausesExit23() {
|
||||||
|
|
|
@ -26,6 +26,8 @@ public class VersionCmdTest {
|
||||||
version = mock(Version.class);
|
version = mock(Version.class);
|
||||||
when(version.getName()).thenReturn("MockSop");
|
when(version.getName()).thenReturn("MockSop");
|
||||||
when(version.getVersion()).thenReturn("1.0");
|
when(version.getVersion()).thenReturn("1.0");
|
||||||
|
when(version.getExtendedVersion()).thenReturn("MockSop Extended Version Information");
|
||||||
|
when(version.getBackendVersion()).thenReturn("Foo");
|
||||||
when(sop.version()).thenReturn(version);
|
when(sop.version()).thenReturn(version);
|
||||||
|
|
||||||
SopCLI.setSopInstance(sop);
|
SopCLI.setSopInstance(sop);
|
||||||
|
@ -38,6 +40,18 @@ public class VersionCmdTest {
|
||||||
verify(version, times(1)).getName();
|
verify(version, times(1)).getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assertExtendedVersionCommandWorks() {
|
||||||
|
SopCLI.main(new String[] {"version", "--extended"});
|
||||||
|
verify(version, times(1)).getExtendedVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assertBackendVersionCommandWorks() {
|
||||||
|
SopCLI.main(new String[] {"version", "--backend"});
|
||||||
|
verify(version, times(1)).getBackendVersion();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ExpectSystemExitWithStatus(37)
|
@ExpectSystemExitWithStatus(37)
|
||||||
public void assertInvalidOptionResultsInExit37() {
|
public void assertInvalidOptionResultsInExit37() {
|
||||||
|
|
Loading…
Reference in a new issue