From c0b50afc1d1109659f6122928d8ee155f4422ee2 Mon Sep 17 00:00:00 2001 From: Martin Vogel <martin.vogel@sinc.de> Date: Wed, 28 Jun 2023 21:14:26 +0200 Subject: [PATCH] refactor(#664): add tests --- .../fitconnect/cli/keygen/KeyWriter.java | 2 +- .../fitconnect/cli/CommandLineClientTest.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cli/src/main/java/dev/fitko/fitconnect/cli/keygen/KeyWriter.java b/cli/src/main/java/dev/fitko/fitconnect/cli/keygen/KeyWriter.java index 84fca0762..687518b32 100644 --- a/cli/src/main/java/dev/fitko/fitconnect/cli/keygen/KeyWriter.java +++ b/cli/src/main/java/dev/fitko/fitconnect/cli/keygen/KeyWriter.java @@ -99,7 +99,7 @@ public final class KeyWriter { Files.write(path, content.getBytes(StandardCharsets.UTF_8)); } catch (final IOException e) { LOGGER.error(e.getMessage(), e); - System.exit(0); + throw new RuntimeException(e); } } } diff --git a/cli/src/test/java/dev/fitko/fitconnect/cli/CommandLineClientTest.java b/cli/src/test/java/dev/fitko/fitconnect/cli/CommandLineClientTest.java index 07c7c57b4..71e1e09ed 100644 --- a/cli/src/test/java/dev/fitko/fitconnect/cli/CommandLineClientTest.java +++ b/cli/src/test/java/dev/fitko/fitconnect/cli/CommandLineClientTest.java @@ -8,6 +8,7 @@ import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; import dev.fitko.fitconnect.api.services.Subscriber; import dev.fitko.fitconnect.cli.batch.CsvImporter; import dev.fitko.fitconnect.cli.batch.ImportRecord; +import dev.fitko.fitconnect.cli.keygen.KeyWriter; import dev.fitko.fitconnect.client.SenderClient; import dev.fitko.fitconnect.client.SubscriberClient; import dev.fitko.fitconnect.client.sender.model.Attachment; @@ -19,6 +20,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import java.nio.file.Files; import java.nio.file.Path; import java.util.HashSet; import java.util.List; @@ -26,6 +28,7 @@ import java.util.Map; import java.util.Set; import java.util.UUID; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -139,6 +142,31 @@ class CommandLineClientTest { logs.assertContains("DONE ! Finished batch import of " + importRecords.size() + " submissions"); } + @Test + void testKeyGeneration(@TempDir final Path tempDir) { + + // When + underTest.run("keygen", "--outDir=" + tempDir.toAbsolutePath()); + + // Then + logs.assertContains("Writing keys to directory " + tempDir.toAbsolutePath()); + + assertTrue(Files.exists(Path.of(tempDir.toString(), KeyWriter.PUBLIC_ENCRYPTION_KEY_NAME))); + assertTrue(Files.exists(Path.of(tempDir.toString(), KeyWriter.PRIVATE_DECRYPTION_KEY_NAME))); + assertTrue(Files.exists(Path.of(tempDir.toString(), KeyWriter.PUBLIC_SIGNATURE_VERIFICATION_KEY_NAME))); + assertTrue(Files.exists(Path.of(tempDir.toString(), KeyWriter.PRIVATE_SIGNING_KEY_NAME))); + } + + @Test + void testKeyGenerationWithConfigOption(@TempDir final Path tempDir) { + + // When + underTest.run("keygen", "--outDir=" + tempDir.toAbsolutePath(), "--withConfig=true"); + + // Then + assertTrue(Files.exists(Path.of(tempDir.toString(), "config.yml"))); + } + private Set<SubmissionForPickup> generateSubmissions(final UUID destinationId, final int count) { final Set<SubmissionForPickup> submissions = new HashSet<>(count); for (int i = 0; i < count; i++) { -- GitLab