diff --git a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java index 8a4e5cba..7abc00e7 100644 --- a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java +++ b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java @@ -11,6 +11,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.io.IOException; +import java.io.InputStream; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -19,6 +20,7 @@ import pgp.cert_d.SharedPGPCertificateDirectory; import pgp.cert_d.exception.BadDataException; import pgp.cert_d.exception.BadNameException; import pgp.certificate_store.CertificateStore; +import pgp.certificate_store.MergeCallback; public class SharedPGPCertificateDirectoryAdapterMockTest { @@ -27,9 +29,13 @@ public class SharedPGPCertificateDirectoryAdapterMockTest { private static final String badData = "badData"; private static CertificateStore store; + private static MergeCallback mergeCallback; + private static InputStream inputStream; @BeforeAll - public static void mockComponents() throws BadNameException, IOException, BadDataException { + public static void mockComponents() throws BadNameException, IOException, BadDataException, InterruptedException { + mergeCallback = mock(MergeCallback.class); + inputStream = mock(InputStream.class); SharedPGPCertificateDirectory mocked = mock(SharedPGPCertificateDirectory.class); store = new SharedPGPCertificateDirectoryAdapter(mocked); // bad name @@ -46,20 +52,40 @@ public class SharedPGPCertificateDirectoryAdapterMockTest { .thenThrow(new BadDataException()); when(mocked.getByFingerprintIfChanged(eq(badData), any())) .thenThrow(new BadDataException()); + when(mocked.insert(any(), any())) + .thenThrow(new BadDataException()); + when(mocked.tryInsert(any(), any())) + .thenThrow(new BadDataException()); + when(mocked.insertWithSpecialName(eq(invalidSpecialName), any(), any())) + .thenThrow(new BadDataException()); + when(mocked.tryInsertWithSpecialName(eq(invalidSpecialName), any(), any())) + .thenThrow(new BadDataException()); } @Test public void testGetUsingFingerprint_BadNameIsMappedToIAE() { assertThrows(IllegalArgumentException.class, () -> store.getCertificate(invalidFingerprint)); + assertThrows(IllegalArgumentException.class, () -> store.getCertificateIfChanged(invalidFingerprint, "tag")); } @Test public void testGetUsingSpecialName_BadNameIsMappedToIAE() { assertThrows(IllegalArgumentException.class, () -> store.getCertificate(invalidSpecialName)); + assertThrows(IllegalArgumentException.class, () -> store.getCertificateIfChanged(invalidSpecialName, "tag")); } @Test public void testGet_BadDataIsMappedToIOE() { assertThrows(IOException.class, () -> store.getCertificate(badData)); + assertThrows(IOException.class, () -> store.getCertificateIfChanged(badData, "tag")); + } + + @Test + public void testInsert_BadDataIsMappedToIOE() { + assertThrows(IOException.class, () -> store.insertCertificate(inputStream, mergeCallback)); + assertThrows(IOException.class, () -> store.insertCertificateBySpecialName(invalidSpecialName, inputStream, mergeCallback)); + + assertThrows(IOException.class, () -> store.tryInsertCertificate(inputStream, mergeCallback)); + assertThrows(IOException.class, () -> store.tryInsertCertificateBySpecialName(invalidSpecialName, inputStream, mergeCallback)); } }