From 27ae686d526362b0e6e27bece7b51ee86a0989df Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Sat, 27 Aug 2022 13:38:32 +0200 Subject: [PATCH] Bump cert-d-java to 0.2.1 and handle NoSuchElementExceptions --- .../src/main/java/pgp/cert_d/cli/commands/Get.java | 3 +++ .../test/java/pgp/cert_d/cli/commands/SetupTest.java | 11 ++++++----- .../cert_d/SharedPGPCertificateDirectoryTest.java | 11 ++++++----- version.gradle | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java index 9422d2e..b06361d 100644 --- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java +++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java @@ -19,6 +19,7 @@ import pgp.certificate_store.exception.BadNameException; import picocli.CommandLine; import java.io.IOException; +import java.util.NoSuchElementException; @CommandLine.Command(name = "get", resourceBundle = "msg_get") @@ -57,6 +58,8 @@ public class Get implements Runnable { Streams.pipeAll(record.getInputStream(), System.out); } + } catch (NoSuchElementException e) { + LOGGER.debug("Certificate not found.", e); } catch (IOException e) { LOGGER.error("IO Error", e); System.exit(-1); diff --git a/pgpainless-cert-d-cli/src/test/java/pgp/cert_d/cli/commands/SetupTest.java b/pgpainless-cert-d-cli/src/test/java/pgp/cert_d/cli/commands/SetupTest.java index b4664c0..d3a505a 100644 --- a/pgpainless-cert-d-cli/src/test/java/pgp/cert_d/cli/commands/SetupTest.java +++ b/pgpainless-cert-d-cli/src/test/java/pgp/cert_d/cli/commands/SetupTest.java @@ -27,11 +27,12 @@ import java.io.InputStream; import java.nio.charset.Charset; import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; +import java.util.NoSuchElementException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; public class SetupTest { @@ -53,7 +54,7 @@ public class SetupTest { @Test public void testSetupGeneratesTrustRoot() throws BadDataException, IOException { - assertNull(store.getTrustRoot()); + assertThrows(NoSuchElementException.class, () -> store.getTrustRoot()); PGPCertDCli.main(new String[] {"setup"}); KeyMaterial trustRoot = store.getTrustRoot(); @@ -68,7 +69,7 @@ public class SetupTest { @Test public void testSetupWithPassword() throws BadDataException, IOException, PGPException { - assertNull(store.getTrustRoot()); + assertThrows(NoSuchElementException.class, () -> store.getTrustRoot()); PGPCertDCli.main(new String[] {"setup", "--with-password", "sw0rdf1sh"}); KeyMaterial trustRoot = store.getTrustRoot(); @@ -87,7 +88,7 @@ public class SetupTest { public void testSetupImportFromStdin() throws PGPException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, BadDataException, IOException { - assertNull(store.getTrustRoot()); + assertThrows(NoSuchElementException.class, () -> store.getTrustRoot()); PGPSecretKeyRing trustRoot = PGPainless.generateKeyRing() .modernKeyRing("trust-root"); @@ -108,7 +109,7 @@ public class SetupTest { @Test public void testSetupOverridesExistingTrustRoot() throws BadDataException, IOException { - assertNull(store.getTrustRoot()); + assertThrows(NoSuchElementException.class, () -> store.getTrustRoot()); PGPCertDCli.main(new String[] {"setup"}); KeyMaterial trustRoot = store.getTrustRoot(); diff --git a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java index 7b2521b..d3fc5ec 100644 --- a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java +++ b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java @@ -7,7 +7,7 @@ package org.pgpainless.cert_d; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Set; import java.util.stream.Stream; @@ -74,8 +75,8 @@ public class SharedPGPCertificateDirectoryTest { OpenPgpFingerprint fingerprint = OpenPgpFingerprint.of(cert); ByteArrayInputStream certIn = new ByteArrayInputStream(cert.getEncoded()); - // standard case: get() is null - assertNull(directory.getByFingerprint(fingerprint.toString().toLowerCase())); + // standard case: no cert found + assertThrows(NoSuchElementException.class, () -> directory.getByFingerprint(fingerprint.toString().toLowerCase())); // insert and check returned certs fingerprint Certificate certificate = directory.insert(certIn, dummyMerge); @@ -99,8 +100,8 @@ public class SharedPGPCertificateDirectoryTest { OpenPgpFingerprint fingerprint = OpenPgpFingerprint.of(trustRoot); ByteArrayInputStream certIn = new ByteArrayInputStream(trustRoot.getEncoded()); - // standard case: get() is null - assertNull(directory.getBySpecialName("trust-root")); + // standard case: no cert found + assertThrows(NoSuchElementException.class, () -> directory.getBySpecialName("trust-root")); // insert and check returned certs fingerprint Certificate certificate = directory.insertWithSpecialName("trust-root", certIn, dummyMerge); diff --git a/version.gradle b/version.gradle index 982e05b..d7f242e 100644 --- a/version.gradle +++ b/version.gradle @@ -13,7 +13,7 @@ allprojects { junitVersion = '5.8.2' mockitoVersion = '4.5.1' pgpainlessVersion = '1.3.5' - pgpCertDJavaVersion = '0.2.0' + pgpCertDJavaVersion = '0.2.1' picocliVersion = '4.6.3' } }