From 91276e161508fb5222fb8d1409b4efb6916bed5a Mon Sep 17 00:00:00 2001 From: Stefan Kalscheuer Date: Sun, 13 Jul 2025 18:19:56 +0200 Subject: [PATCH] test: autoformat test code --- .../HTTPVaultConnectorBuilderTest.java | 68 +-- .../connector/HTTPVaultConnectorIT.java | 396 +++++++++--------- .../connector/model/AppRoleSecretTest.java | 20 +- .../jvault/connector/model/AppRoleTest.java | 50 +-- .../jvault/connector/model/TokenRoleTest.java | 110 ++--- .../jvault/connector/model/TokenTest.java | 40 +- .../model/response/AppRoleResponseTest.java | 42 +- .../response/AuthMethodsResponseTest.java | 66 +-- .../model/response/AuthResponseTest.java | 4 +- .../response/CredentialsResponseTest.java | 24 +- .../model/response/ErrorResponseTest.java | 18 +- .../model/response/HealthResponseTest.java | 34 +- .../model/response/HelpResponseTest.java | 10 +- .../response/MetaSecretResponseTest.java | 88 ++-- .../model/response/MetadataResponseTest.java | 64 +-- .../response/PlainSecretResponseTest.java | 116 ++--- .../model/response/SealResponseTest.java | 64 +-- .../response/SecretListResponseTest.java | 29 +- .../response/SecretVersionResponseTest.java | 18 +- .../model/response/TokenResponseTest.java | 66 +-- .../model/response/TransitResponseTest.java | 8 +- .../connector/test/VaultConfiguration.java | 18 +- 22 files changed, 675 insertions(+), 678 deletions(-) diff --git a/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorBuilderTest.java b/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorBuilderTest.java index 082ae96..98d7f74 100644 --- a/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorBuilderTest.java +++ b/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorBuilderTest.java @@ -63,12 +63,12 @@ class HTTPVaultConnectorBuilderTest { // Specify all options. HTTPVaultConnectorBuilder builder = HTTPVaultConnector.builder() - .withHost("vault2.example.com") - .withoutTLS() - .withPort(1234) - .withPrefix("/foo/") - .withTimeout(5678) - .withNumberOfRetries(9); + .withHost("vault2.example.com") + .withoutTLS() + .withPort(1234) + .withPrefix("/foo/") + .withTimeout(5678) + .withNumberOfRetries(9); connector = builder.build(); assertEquals("http://vault2.example.com:1234/foo/", getRequestHelperPrivate(connector, "baseURL"), "URL not set correctly"); @@ -79,13 +79,13 @@ class HTTPVaultConnectorBuilderTest { // Initialization from URL. assertThrows( - URISyntaxException.class, - () -> HTTPVaultConnector.builder().withBaseURL("foo:/\\1nv4l1d_UrL"), - "Initialization from invalid URL should fail" + URISyntaxException.class, + () -> HTTPVaultConnector.builder().withBaseURL("foo:/\\1nv4l1d_UrL"), + "Initialization from invalid URL should fail" ); connector = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().withBaseURL("https://vault3.example.com:5678/bar/").build(), - "Initialization from valid URL should not fail" + () -> HTTPVaultConnector.builder().withBaseURL("https://vault3.example.com:5678/bar/").build(), + "Initialization from valid URL should not fail" ); assertEquals("https://vault3.example.com:5678/bar/", getRequestHelperPrivate(connector, "baseURL"), "URL not set correctly"); @@ -106,8 +106,8 @@ class HTTPVaultConnectorBuilderTest { // Provide address only should be enough. withVaultEnv(VAULT_ADDR, null, null, null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Factory creation from minimal environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Factory creation from minimal environment failed" ); HTTPVaultConnector connector = builder.build(); @@ -119,16 +119,16 @@ class HTTPVaultConnectorBuilderTest { }); withVaultEnv(VAULT_ADDR_2, null, null, null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Factory creation from minimal environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Factory creation from minimal environment failed" ); assertEquals(VAULT_ADDR_2 + "/v1/", getRequestHelperPrivate(builder.build(), "baseURL"), "URL without port not set correctly"); return null; }); withVaultEnv(VAULT_ADDR_3, null, null, null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Factory creation from minimal environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Factory creation from minimal environment failed" ); assertEquals(VAULT_ADDR_3, getRequestHelperPrivate(builder.build(), "baseURL"), "URL with custom path not set correctly"); return null; @@ -137,8 +137,8 @@ class HTTPVaultConnectorBuilderTest { // Provide address and number of retries. withVaultEnv(VAULT_ADDR, null, VAULT_MAX_RETRIES.toString(), null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Factory creation from environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Factory creation from environment failed" ); HTTPVaultConnector connector = builder.build(); @@ -152,8 +152,8 @@ class HTTPVaultConnectorBuilderTest { // Automatic authentication. withVaultEnv(VAULT_ADDR, null, VAULT_MAX_RETRIES.toString(), VAULT_TOKEN).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Factory creation from minimal environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Factory creation from minimal environment failed" ); assertEquals(VAULT_TOKEN, getPrivate(builder, "token"), "Token not set correctly"); @@ -163,9 +163,9 @@ class HTTPVaultConnectorBuilderTest { // Invalid URL. withVaultEnv("This is not a valid URL!", null, VAULT_MAX_RETRIES.toString(), VAULT_TOKEN).execute(() -> { assertThrows( - ConnectionException.class, - () -> HTTPVaultConnector.builder().fromEnv(), - "Invalid URL from environment should raise an exception" + ConnectionException.class, + () -> HTTPVaultConnector.builder().fromEnv(), + "Invalid URL from environment should raise an exception" ); return null; @@ -182,8 +182,8 @@ class HTTPVaultConnectorBuilderTest { AtomicReference certFromPem = new AtomicReference<>(); withVaultEnv(VAULT_ADDR, pem, null, null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Builder with PEM certificate from environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Builder with PEM certificate from environment failed" ); HTTPVaultConnector connector = builder.build(); @@ -198,8 +198,8 @@ class HTTPVaultConnectorBuilderTest { AtomicReference certFromFile = new AtomicReference<>(); withVaultEnv(VAULT_ADDR, file, null, null).execute(() -> { HTTPVaultConnectorBuilder builder = assertDoesNotThrow( - () -> HTTPVaultConnector.builder().fromEnv(), - "Builder with certificate path from environment failed" + () -> HTTPVaultConnector.builder().fromEnv(), + "Builder with certificate path from environment failed" ); HTTPVaultConnector connector = builder.build(); @@ -215,9 +215,9 @@ class HTTPVaultConnectorBuilderTest { String doesNotExist = tempDir.toString() + "/doesnotexist"; withVaultEnv(VAULT_ADDR, doesNotExist, VAULT_MAX_RETRIES.toString(), null).execute(() -> { TlsException e = assertThrows( - TlsException.class, - () -> HTTPVaultConnector.builder().fromEnv(), - "Creation with unknown cert path failed" + TlsException.class, + () -> HTTPVaultConnector.builder().fromEnv(), + "Creation with unknown cert path failed" ); assertEquals(doesNotExist, assertInstanceOf(NoSuchFileException.class, e.getCause()).getFile()); @@ -227,9 +227,9 @@ class HTTPVaultConnectorBuilderTest { private SystemLambda.WithEnvironmentVariables withVaultEnv(String vaultAddr, String vaultCacert, String vaultMaxRetries, String vaultToken) { return withEnvironmentVariable("VAULT_ADDR", vaultAddr) - .and("VAULT_CACERT", vaultCacert) - .and("VAULT_MAX_RETRIES", vaultMaxRetries) - .and("VAULT_TOKEN", vaultToken); + .and("VAULT_CACERT", vaultCacert) + .and("VAULT_MAX_RETRIES", vaultMaxRetries) + .and("VAULT_TOKEN", vaultToken); } private Object getRequestHelperPrivate(HTTPVaultConnector connector, String fieldName) throws NoSuchFieldException, IllegalAccessException { diff --git a/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorIT.java b/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorIT.java index ff50859..7423556 100644 --- a/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorIT.java +++ b/src/test/java/de/stklcode/jvault/connector/HTTPVaultConnectorIT.java @@ -86,9 +86,9 @@ class HTTPVaultConnectorIT { // Initialize connector. HTTPVaultConnectorBuilder builder = HTTPVaultConnector.builder() - .withHost(config.getHost()) - .withPort(config.getPort()) - .withTLS(isTls); + .withHost(config.getHost()) + .withPort(config.getPort()) + .withTLS(isTls); if (isTls) { builder.withTrustedCA(Paths.get(getClass().getResource("/tls/ca.pem").getPath())); } @@ -134,9 +134,9 @@ class HTTPVaultConnectorIT { final String invalidPath = "secret/invalid/path"; VaultConnectorException e = assertThrows( - PermissionDeniedException.class, - () -> connector.read(invalidPath), - "Invalid secret path should raise an exception" + PermissionDeniedException.class, + () -> connector.read(invalidPath), + "Invalid secret path should raise an exception" ); // Assert that the exception does not reveal secret or credentials. @@ -147,15 +147,15 @@ class HTTPVaultConnectorIT { // Try to read accessible path with known value. SecretResponse res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/" + SECRET_KEY), - "Valid secret path could not be read" + () -> connector.read(SECRET_PATH + "/" + SECRET_KEY), + "Valid secret path could not be read" ); assertEquals(SECRET_VALUE, res.get("value"), "Known secret returned invalid value"); // Try to read accessible path with JSON value. res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_JSON), - "Valid secret path could not be read" + () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_JSON), + "Valid secret path could not be read" ); assertNotNull(res.get("value"), "Known secret returned null value"); @@ -167,8 +167,8 @@ class HTTPVaultConnectorIT { // Try to read accessible path with JSON value. res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_JSON), - "Valid secret path could not be read" + () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_JSON), + "Valid secret path could not be read" ); assertNotNull(res.get("value"), "Known secret returned null value"); @@ -180,8 +180,8 @@ class HTTPVaultConnectorIT { // Try to read accessible complex secret. res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_COMPLEX), - "Valid secret path could not be read" + () -> connector.read(SECRET_PATH + "/" + SECRET_KEY_COMPLEX), + "Valid secret path could not be read" ); assertNotNull(res.getData(), "Known secret returned null value"); assertEquals(Map.of("key1", "value1", "key2", "value2"), res.getData(), "Unexpected data"); @@ -198,8 +198,8 @@ class HTTPVaultConnectorIT { assumeTrue(connector.isAuthorized()); // Try to list secrets from valid path. List secrets = assertDoesNotThrow( - () -> connector.list(SECRET_PATH), - "Secrets could not be listed" + () -> connector.list(SECRET_PATH), + "Secrets could not be listed" ); assertNotEquals(0, secrets.size(), "Invalid number of secrets"); assertTrue(secrets.contains(SECRET_KEY), "Known secret key not found"); @@ -217,33 +217,33 @@ class HTTPVaultConnectorIT { // Try to write to null path. assertThrows( - InvalidRequestException.class, - () -> connector.write(null, "someValue"), - "Secret written to null path" + InvalidRequestException.class, + () -> connector.write(null, "someValue"), + "Secret written to null path" ); // Try to write to invalid path. assertThrows( - InvalidRequestException.class, - () -> connector.write("", "someValue"), - "Secret written to invalid path" + InvalidRequestException.class, + () -> connector.write("", "someValue"), + "Secret written to invalid path" ); // Try to write to a path the user has no access for. assertThrows( - PermissionDeniedException.class, - () -> connector.write("invalid/path", "someValue"), - "Secret written to inaccessible path" + PermissionDeniedException.class, + () -> connector.write("invalid/path", "someValue"), + "Secret written to inaccessible path" ); // Perform a valid write/read roundtrip to valid path. Also check UTF8-encoding. assertDoesNotThrow( - () -> connector.write(SECRET_PATH + "/temp", "Abc123äöü,!"), - "Failed to write secret to accessible path" + () -> connector.write(SECRET_PATH + "/temp", "Abc123äöü,!"), + "Failed to write secret to accessible path" ); SecretResponse res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/temp"), - "Written secret could not be read" + () -> connector.read(SECRET_PATH + "/temp"), + "Written secret could not be read" ); assertEquals("Abc123äöü,!", res.get("value")); } @@ -260,26 +260,26 @@ class HTTPVaultConnectorIT { // Write a test secret to vault. assertDoesNotThrow( - () -> connector.write(SECRET_PATH + "/toDelete", "secret content"), - "Secret written to inaccessible path" + () -> connector.write(SECRET_PATH + "/toDelete", "secret content"), + "Secret written to inaccessible path" ); SecretResponse res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/toDelete"), - "Written secret could not be read" + () -> connector.read(SECRET_PATH + "/toDelete"), + "Written secret could not be read" ); assumeTrue(res != null); // Delete secret. assertDoesNotThrow( - () -> connector.delete(SECRET_PATH + "/toDelete"), - "Revocation threw unexpected exception" + () -> connector.delete(SECRET_PATH + "/toDelete"), + "Revocation threw unexpected exception" ); // Try to read again. InvalidResponseException e = assertThrows( - InvalidResponseException.class, - () -> connector.read(SECRET_PATH + "/toDelete"), - "Successfully read deleted secret" + InvalidResponseException.class, + () -> connector.read(SECRET_PATH + "/toDelete"), + "Successfully read deleted secret" ); assertEquals(404, e.getStatusCode()); } @@ -296,19 +296,19 @@ class HTTPVaultConnectorIT { // Write a test secret to vault. assertDoesNotThrow( - () -> connector.write(SECRET_PATH + "/toRevoke", "secret content"), - "Secret written to inaccessible path" + () -> connector.write(SECRET_PATH + "/toRevoke", "secret content"), + "Secret written to inaccessible path" ); SecretResponse res = assertDoesNotThrow( - () -> connector.read(SECRET_PATH + "/toRevoke"), - "Written secret could not be read" + () -> connector.read(SECRET_PATH + "/toRevoke"), + "Written secret could not be read" ); assumeTrue(res != null); // Revoke secret. assertDoesNotThrow( - () -> connector.revoke(SECRET_PATH + "/toRevoke"), - "Revocation threw unexpected exception" + () -> connector.revoke(SECRET_PATH + "/toRevoke"), + "Revocation threw unexpected exception" ); } } @@ -337,8 +337,8 @@ class HTTPVaultConnectorIT { // Try to read accessible path with known value. SecretResponse res = assertDoesNotThrow( - () -> connector.readSecretData(MOUNT_KV2, SECRET2_KEY), - "Valid secret path could not be read" + () -> connector.readSecretData(MOUNT_KV2, SECRET2_KEY), + "Valid secret path could not be read" ); assertNotNull(res.getMetadata(), "Metadata not populated for KV v2 secret"); assertEquals(2, res.getMetadata().getVersion(), "Unexpected secret version"); @@ -346,8 +346,8 @@ class HTTPVaultConnectorIT { // Try to read different version of same secret. res = assertDoesNotThrow( - () -> connector.readSecretVersion(MOUNT_KV2, SECRET2_KEY, 1), - "Valid secret version could not be read" + () -> connector.readSecretVersion(MOUNT_KV2, SECRET2_KEY, 1), + "Valid secret version could not be read" ); assertEquals(1, res.getMetadata().getVersion(), "Unexpected secret version"); assertEquals(SECRET2_VALUE1, res.get("value"), "Known secret returned invalid value"); @@ -365,8 +365,8 @@ class HTTPVaultConnectorIT { // First get the current version of the secret. MetadataResponse res = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading secret metadata failed" ); int currentVersion = res.getMetadata().getCurrentVersion(); @@ -374,25 +374,25 @@ class HTTPVaultConnectorIT { Map data = new HashMap<>(); data.put("value", SECRET2_VALUE3); SecretVersionResponse res2 = assertDoesNotThrow( - () -> connector.writeSecretData(MOUNT_KV2, SECRET2_KEY, data), - "Writing secret to KV v2 store failed" + () -> connector.writeSecretData(MOUNT_KV2, SECRET2_KEY, data), + "Writing secret to KV v2 store failed" ); assertEquals(currentVersion + 1, res2.getMetadata().getVersion(), "Version not updated after writing secret"); int currentVersion2 = res2.getMetadata().getVersion(); // Verify the content. SecretResponse res3 = assertDoesNotThrow( - () -> connector.readSecretData(MOUNT_KV2, SECRET2_KEY), - "Reading secret from KV v2 store failed" + () -> connector.readSecretData(MOUNT_KV2, SECRET2_KEY), + "Reading secret from KV v2 store failed" ); assertEquals(SECRET2_VALUE3, res3.get("value"), "Data not updated correctly"); // Now try with explicit CAS value (invalid). Map data4 = singletonMap("value", SECRET2_VALUE4); assertThrows( - InvalidResponseException.class, - () -> connector.writeSecretData(MOUNT_KV2, SECRET2_KEY, data4, currentVersion2 - 1), - "Writing secret to KV v2 with invalid CAS value succeeded" + InvalidResponseException.class, + () -> connector.writeSecretData(MOUNT_KV2, SECRET2_KEY, data4, currentVersion2 - 1), + "Writing secret to KV v2 with invalid CAS value succeeded" ); // And finally with a correct CAS value. @@ -412,22 +412,22 @@ class HTTPVaultConnectorIT { // Read current metadata first. MetadataResponse res = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading secret metadata failed" ); Integer maxVersions = res.getMetadata().getMaxVersions(); assumeTrue(10 == res.getMetadata().getMaxVersions(), "Unexpected maximum number of versions"); // Now update the metadata. assertDoesNotThrow( - () -> connector.updateSecretMetadata(MOUNT_KV2, SECRET2_KEY, maxVersions + 1, true), - "Updating secret metadata failed" + () -> connector.updateSecretMetadata(MOUNT_KV2, SECRET2_KEY, maxVersions + 1, true), + "Updating secret metadata failed" ); // And verify the result. res = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading secret metadata failed" ); assertEquals(maxVersions + 1, res.getMetadata().getMaxVersions(), "Unexpected maximum number of versions"); } @@ -444,8 +444,8 @@ class HTTPVaultConnectorIT { // Try to read accessible path with known value. MetadataResponse res = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Valid secret path could not be read" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Valid secret path could not be read" ); assertNotNull(res.getMetadata(), "Metadata not populated for KV v2 secret"); assertEquals(2, res.getMetadata().getCurrentVersion(), "Unexpected secret version"); @@ -467,79 +467,79 @@ class HTTPVaultConnectorIT { // Try to delete non-existing versions. assertDoesNotThrow( - () -> connector.deleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 5, 42), - "Revealed non-existence of secret versions" + () -> connector.deleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 5, 42), + "Revealed non-existence of secret versions" ); assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Revealed non-existence of secret versions" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Revealed non-existence of secret versions" ); // Now delete existing version and verify. assertDoesNotThrow( - () -> connector.deleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 1), - "Deleting existing version failed" + () -> connector.deleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 1), + "Deleting existing version failed" ); MetadataResponse meta = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading deleted secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading deleted secret metadata failed" ); assertNotNull( - meta.getMetadata().getVersions().get(1).getDeletionTime(), - "Expected deletion time for secret 1" + meta.getMetadata().getVersions().get(1).getDeletionTime(), + "Expected deletion time for secret 1" ); // Undelete the just deleted version. assertDoesNotThrow( - () -> connector.undeleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 1), - "Undeleting existing version failed" + () -> connector.undeleteSecretVersions(MOUNT_KV2, SECRET2_KEY, 1), + "Undeleting existing version failed" ); meta = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading deleted secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading deleted secret metadata failed" ); assertNull( - meta.getMetadata().getVersions().get(1).getDeletionTime(), - "Expected deletion time for secret 1 to be reset" + meta.getMetadata().getVersions().get(1).getDeletionTime(), + "Expected deletion time for secret 1 to be reset" ); // Now destroy it. assertDoesNotThrow( - () -> connector.destroySecretVersions(MOUNT_KV2, SECRET2_KEY, 1), - "Destroying existing version failed" + () -> connector.destroySecretVersions(MOUNT_KV2, SECRET2_KEY, 1), + "Destroying existing version failed" ); meta = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading destroyed secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading destroyed secret metadata failed" ); assertTrue( - meta.getMetadata().getVersions().get(1).isDestroyed(), - "Expected secret 1 to be marked destroyed" + meta.getMetadata().getVersions().get(1).isDestroyed(), + "Expected secret 1 to be marked destroyed" ); // Delete latest version. assertDoesNotThrow( - () -> connector.deleteLatestSecretVersion(MOUNT_KV2, SECRET2_KEY), - "Deleting latest version failed" + () -> connector.deleteLatestSecretVersion(MOUNT_KV2, SECRET2_KEY), + "Deleting latest version failed" ); meta = assertDoesNotThrow( - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading deleted secret metadata failed" + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading deleted secret metadata failed" ); assertNotNull( - meta.getMetadata().getVersions().get(2).getDeletionTime(), - "Expected secret 2 to be deleted" + meta.getMetadata().getVersions().get(2).getDeletionTime(), + "Expected secret 2 to be deleted" ); // Delete all versions. assertDoesNotThrow( - () -> connector.deleteAllSecretVersions(MOUNT_KV2, SECRET2_KEY), - "Deleting latest version failed" + () -> connector.deleteAllSecretVersions(MOUNT_KV2, SECRET2_KEY), + "Deleting latest version failed" ); assertThrows( - InvalidResponseException.class, - () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), - "Reading metadata of deleted secret should not succeed" + InvalidResponseException.class, + () -> connector.readSecretMetadata(MOUNT_KV2, SECRET2_KEY), + "Reading metadata of deleted secret should not succeed" ); } } @@ -566,17 +566,17 @@ class HTTPVaultConnectorIT { // Authenticate with correct credentials. assertDoesNotThrow( - () -> connector.authAppRole(APPROLE_ROLE, APPROLE_SECRET), - "Failed to authenticate using AppRole" + () -> connector.authAppRole(APPROLE_ROLE, APPROLE_SECRET), + "Failed to authenticate using AppRole" ); assertTrue(connector.isAuthorized(), "Authorization flag not set after AppRole login"); // Authenticate with valid secret ID against unknown role. final String invalidRole = "foo"; InvalidResponseException e = assertThrows( - InvalidResponseException.class, - () -> connector.authAppRole(invalidRole, APPROLE_SECRET), - "Successfully logged in with unknown role" + InvalidResponseException.class, + () -> connector.authAppRole(invalidRole, APPROLE_SECRET), + "Successfully logged in with unknown role" ); // Assert that the exception does not reveal role ID or secret. assertFalse(stackTrace(e).contains(invalidRole)); @@ -585,9 +585,9 @@ class HTTPVaultConnectorIT { // Authenticate without wrong secret ID. final String invalidSecret = "foo"; e = assertThrows( - InvalidResponseException.class, - () -> connector.authAppRole(APPROLE_ROLE, "foo"), - "Successfully logged in without secret ID" + InvalidResponseException.class, + () -> connector.authAppRole(APPROLE_ROLE, "foo"), + "Successfully logged in without secret ID" ); // Assert that the exception does not reveal role ID or secret. assertFalse(stackTrace(e).contains(APPROLE_ROLE)); @@ -595,17 +595,17 @@ class HTTPVaultConnectorIT { // Authenticate without secret ID. e = assertThrows( - InvalidResponseException.class, - () -> connector.authAppRole(APPROLE_ROLE), - "Successfully logged in without secret ID" + InvalidResponseException.class, + () -> connector.authAppRole(APPROLE_ROLE), + "Successfully logged in without secret ID" ); // Assert that the exception does not reveal role ID. assertFalse(stackTrace(e).contains(APPROLE_ROLE)); // Authenticate with secret ID on role with CIDR whitelist. assertDoesNotThrow( - () -> connector.authAppRole(APPROLE_ROLE2, APPROLE_SECRET), - "Failed to log in without secret ID" + () -> connector.authAppRole(APPROLE_ROLE2, APPROLE_SECRET), + "Failed to log in without secret ID" ); assertTrue(connector.isAuthorized(), "Authorization flag not set after AppRole login"); } @@ -687,8 +687,8 @@ class HTTPVaultConnectorIT { // Update role model with custom flags. AppRole role2 = AppRole.builder(roleName) - .withTokenPeriod(321) - .build(); + .withTokenPeriod(321) + .build(); // Create role. boolean res3 = assertDoesNotThrow(() -> connector.createAppRole(role2), "Role creation failed"); @@ -717,8 +717,8 @@ class HTTPVaultConnectorIT { // Create role by name with policies. assertDoesNotThrow( - () -> connector.createAppRole(roleName3, Collections.singletonList("testpolicy")), - "Creation of role by name failed" + () -> connector.createAppRole(roleName3, Collections.singletonList("testpolicy")), + "Creation of role by name failed" ); res = assertDoesNotThrow(() -> connector.lookupAppRole(roleName3), "Creation of role by name failed"); // Note: As of Vault 0.8.3 default policy is not added automatically, so this test should return 1, not 2. @@ -727,9 +727,9 @@ class HTTPVaultConnectorIT { // Delete role. assertDoesNotThrow(() -> connector.deleteAppRole(roleName3), "Deletion of role failed"); assertThrows( - InvalidResponseException.class, - () -> connector.lookupAppRole(roleName3), - "Deleted role could be looked up" + InvalidResponseException.class, + () -> connector.lookupAppRole(roleName3), + "Deleted role could be looked up" ); } @@ -745,35 +745,35 @@ class HTTPVaultConnectorIT { // Create default (random) secret for existing role. AppRoleSecretResponse res = assertDoesNotThrow( - () -> connector.createAppRoleSecret(APPROLE_ROLE_NAME), - "AppRole secret creation failed" + () -> connector.createAppRoleSecret(APPROLE_ROLE_NAME), + "AppRole secret creation failed" ); assertNotNull(res.getSecret(), "No secret returned"); // Create secret with custom ID. String secretID = "customSecretId"; res = assertDoesNotThrow( - () -> connector.createAppRoleSecret(APPROLE_ROLE_NAME, secretID), - "AppRole secret creation failed" + () -> connector.createAppRoleSecret(APPROLE_ROLE_NAME, secretID), + "AppRole secret creation failed" ); assertEquals(secretID, res.getSecret().getId(), "Unexpected secret ID returned"); // Lookup secret. res = assertDoesNotThrow( - () -> connector.lookupAppRoleSecret(APPROLE_ROLE_NAME, secretID), - "AppRole secret lookup failed" + () -> connector.lookupAppRoleSecret(APPROLE_ROLE_NAME, secretID), + "AppRole secret lookup failed" ); assertNotNull(res.getSecret(), "No secret information returned"); // Destroy secret. assertDoesNotThrow( - () -> connector.destroyAppRoleSecret(APPROLE_ROLE_NAME, secretID), - "AppRole secret destruction failed" + () -> connector.destroyAppRoleSecret(APPROLE_ROLE_NAME, secretID), + "AppRole secret destruction failed" ); assertThrows( - InvalidResponseException.class, - () -> connector.lookupAppRoleSecret(APPROLE_ROLE_NAME, secretID), - "Destroyed AppRole secret successfully read" + InvalidResponseException.class, + () -> connector.lookupAppRoleSecret(APPROLE_ROLE_NAME, secretID), + "Destroyed AppRole secret successfully read" ); } } @@ -791,17 +791,17 @@ class HTTPVaultConnectorIT { void authTokenTest() { final String invalidToken = "52135869df23a5e64c5d33a9785af5edb456b8a4a235d1fe135e6fba1c35edf6"; VaultConnectorException e = assertThrows( - VaultConnectorException.class, - () -> connector.authToken(invalidToken), - "Logged in with invalid token" + VaultConnectorException.class, + () -> connector.authToken(invalidToken), + "Logged in with invalid token" ); // Assert that the exception does not reveal the token. assertFalse(stackTrace(e).contains(invalidToken)); TokenResponse res = assertDoesNotThrow( - () -> connector.authToken(TOKEN_ROOT), - "Login failed with valid token" + () -> connector.authToken(TOKEN_ROOT), + "Login failed with valid token" ); assertNotNull(res, "Login failed with valid token"); assertTrue(connector.isAuthorized(), "Login failed with valid token"); @@ -819,10 +819,10 @@ class HTTPVaultConnectorIT { // Create token. Token token = Token.builder() - .withId("test-id") - .withType(Token.Type.SERVICE) - .withDisplayName("test name") - .build(); + .withId("test-id") + .withType(Token.Type.SERVICE) + .withDisplayName("test name") + .build(); // Create token. AuthResponse res = assertDoesNotThrow(() -> connector.createToken(token), "Token creation failed"); @@ -841,12 +841,12 @@ class HTTPVaultConnectorIT { // Create token with attributes. Token token2 = Token.builder() - .withId("test-id2") - .withDisplayName("test name 2") - .withPolicies(Collections.singletonList("testpolicy")) - .withoutDefaultPolicy() - .withMeta("foo", "bar") - .build(); + .withId("test-id2") + .withDisplayName("test name 2") + .withPolicies(Collections.singletonList("testpolicy")) + .withoutDefaultPolicy() + .withMeta("foo", "bar") + .build(); res = assertDoesNotThrow(() -> connector.createToken(token2), "Token creation failed"); assertEquals("test-id2", res.getAuth().getClientToken(), "Invalid token ID returned"); assertEquals(List.of("testpolicy"), res.getAuth().getPolicies(), "Invalid policies returned"); @@ -856,18 +856,18 @@ class HTTPVaultConnectorIT { // Overwrite token should fail as of Vault 0.8.0. Token token3 = Token.builder() - .withId("test-id2") - .withDisplayName("test name 3") - .withPolicies(Arrays.asList("pol1", "pol2")) - .withDefaultPolicy() - .withMeta("test", "success") - .withMeta("key", "value") - .withTtl(1234L) - .build(); + .withId("test-id2") + .withDisplayName("test name 3") + .withPolicies(Arrays.asList("pol1", "pol2")) + .withDefaultPolicy() + .withMeta("test", "success") + .withMeta("key", "value") + .withTtl(1234L) + .build(); InvalidResponseException e = assertThrows( - InvalidResponseException.class, - () -> connector.createToken(token3), - "Overwriting token should fail as of Vault 0.8.0" + InvalidResponseException.class, + () -> connector.createToken(token3), + "Overwriting token should fail as of Vault 0.8.0" ); assertEquals(400, e.getStatusCode()); // Assert that the exception does not reveal token ID. @@ -875,16 +875,16 @@ class HTTPVaultConnectorIT { // Create token with batch type. Token token4 = Token.builder() - .withDisplayName("test name 3") - .withPolicy("batchpolicy") - .withoutDefaultPolicy() - .withType(Token.Type.BATCH) - .build(); + .withDisplayName("test name 3") + .withPolicy("batchpolicy") + .withoutDefaultPolicy() + .withType(Token.Type.BATCH) + .build(); res = assertDoesNotThrow(() -> connector.createToken(token4), "Token creation failed"); assertTrue( - // Expecting batch token. "hvb." Prefix as of Vault 1.10, "b." before. - res.getAuth().getClientToken().startsWith("b.") || res.getAuth().getClientToken().startsWith("hvb."), - "Unexpected token prefix" + // Expecting batch token. "hvb." Prefix as of Vault 1.10, "b." before. + res.getAuth().getClientToken().startsWith("b.") || res.getAuth().getClientToken().startsWith("hvb."), + "Unexpected token prefix" ); assertEquals(1, res.getAuth().getPolicies().size(), "Invalid number of policies returned"); assertTrue(res.getAuth().getPolicies().contains("batchpolicy"), "Custom policy policy not set"); @@ -905,9 +905,9 @@ class HTTPVaultConnectorIT { // Create token with attributes. Token token = Token.builder() - .withId("my-token") - .withType(Token.Type.SERVICE) - .build(); + .withId("my-token") + .withType(Token.Type.SERVICE) + .build(); assertDoesNotThrow(() -> connector.createToken(token), "Token creation failed"); authRoot(); @@ -936,15 +936,15 @@ class HTTPVaultConnectorIT { final TokenRole role = TokenRole.builder().build(); boolean creationRes = assertDoesNotThrow( - () -> connector.createOrUpdateTokenRole(roleName, role), - "Token role creation failed" + () -> connector.createOrUpdateTokenRole(roleName, role), + "Token role creation failed" ); assertTrue(creationRes, "Token role creation failed"); // Read the role. TokenRoleResponse res = assertDoesNotThrow( - () -> connector.readTokenRole(roleName), - "Reading token role failed" + () -> connector.readTokenRole(roleName), + "Reading token role failed" ); assertNotNull(res, "Token role response must not be null"); assertNotNull(res.getData(), "Token role must not be null"); @@ -955,16 +955,16 @@ class HTTPVaultConnectorIT { // Update the role, i.e. change some attributes. final TokenRole role2 = TokenRole.builder() - .forName(roleName) - .withPathSuffix("suffix") - .orphan(true) - .renewable(false) - .withTokenNumUses(42) - .build(); + .forName(roleName) + .withPathSuffix("suffix") + .orphan(true) + .renewable(false) + .withTokenNumUses(42) + .build(); creationRes = assertDoesNotThrow( - () -> connector.createOrUpdateTokenRole(role2), - "Token role update failed" + () -> connector.createOrUpdateTokenRole(role2), + "Token role update failed" ); assertTrue(creationRes, "Token role update failed"); @@ -1072,8 +1072,8 @@ class HTTPVaultConnectorIT { assumeTrue(connector.isAuthorized()); List supportedBackends = assertDoesNotThrow( - () -> connector.getAuthBackends(), - "Could not list supported auth backends" + () -> connector.getAuthBackends(), + "Could not list supported auth backends" ); assertEquals(3, supportedBackends.size()); @@ -1089,17 +1089,17 @@ class HTTPVaultConnectorIT { final String invalidUser = "foo"; final String invalidPass = "bar"; VaultConnectorException e = assertThrows( - VaultConnectorException.class, - () -> connector.authUserPass(invalidUser, invalidPass), - "Logged in with invalid credentials" + VaultConnectorException.class, + () -> connector.authUserPass(invalidUser, invalidPass), + "Logged in with invalid credentials" ); // Assert that the exception does not reveal credentials. assertFalse(stackTrace(e).contains(invalidUser)); assertFalse(stackTrace(e).contains(invalidPass)); AuthResponse res = assertDoesNotThrow( - () -> connector.authUserPass(USER_VALID, PASS_VALID), - "Login failed with valid credentials: Exception thrown" + () -> connector.authUserPass(USER_VALID, PASS_VALID), + "Login failed with valid credentials: Exception thrown" ); assertNotNull(res.getAuth(), "Login failed with valid credentials: Response not available"); assertTrue(connector.isAuthorized(), "Login failed with valid credentials: Connector not authorized"); @@ -1113,14 +1113,14 @@ class HTTPVaultConnectorIT { @DisplayName("TLS connection test") void tlsConnectionTest() { assertThrows( - VaultConnectorException.class, - () -> connector.authToken("52135869df23a5e64c5d33a9785af5edb456b8a4a235d1fe135e6fba1c35edf6"), - "Logged in with invalid token" + VaultConnectorException.class, + () -> connector.authToken("52135869df23a5e64c5d33a9785af5edb456b8a4a235d1fe135e6fba1c35edf6"), + "Logged in with invalid token" ); TokenResponse res = assertDoesNotThrow( - () -> connector.authToken(TOKEN_ROOT), - "Login failed with valid token" + () -> connector.authToken(TOKEN_ROOT), + "Login failed with valid token" ); assertNotNull(res, "Login failed with valid token"); assertTrue(connector.isAuthorized(), "Login failed with valid token"); @@ -1207,16 +1207,16 @@ class HTTPVaultConnectorIT { // Generate vault local unencrypted configuration. VaultConfiguration config = new VaultConfiguration() - .withHost("localhost") - .withPort(getFreePort()) - .withDataLocation(dataDir.toPath()) - .disableMlock(); + .withHost("localhost") + .withPort(getFreePort()) + .withDataLocation(dataDir.toPath()) + .disableMlock(); // Enable TLS with custom certificate and key, if required. if (tls) { config.enableTLS() - .withCert(getClass().getResource("/tls/server.pem").getPath()) - .withKey(getClass().getResource("/tls/server.key").getPath()); + .withCert(getClass().getResource("/tls/server.pem").getPath()) + .withKey(getClass().getResource("/tls/server.key").getPath()); } // Write configuration file. @@ -1282,10 +1282,8 @@ class HTTPVaultConnectorIT { return socket.getLocalPort(); } catch (IOException e) { - e.printStackTrace(); + throw new IllegalStateException("Unable to find a free TCP port", e); } - - throw new IllegalStateException("Unable to find a free TCP port"); } /** diff --git a/src/test/java/de/stklcode/jvault/connector/model/AppRoleSecretTest.java b/src/test/java/de/stklcode/jvault/connector/model/AppRoleSecretTest.java index 084cc73..fb3d34b 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/AppRoleSecretTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/AppRoleSecretTest.java @@ -35,8 +35,8 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue; class AppRoleSecretTest extends AbstractModelTest { private static final String TEST_ID = "abc123"; private static final Map TEST_META = Map.of( - "foo", "bar", - "number", 1337 + "foo", "bar", + "number", 1337 ); private static final List TEST_CIDR = List.of("203.0.113.0/24", "198.51.100.0/24"); @@ -122,8 +122,8 @@ class AppRoleSecretTest extends AbstractModelTest { String secretJson2 = commaSeparatedToList(secretJson); AppRoleSecret secret2 = assertDoesNotThrow( - () -> objectMapper.readValue(secretJson2, AppRoleSecret.class), - "Deserialization failed" + () -> objectMapper.readValue(secretJson2, AppRoleSecret.class), + "Deserialization failed" ); assertEquals(secret2.getId(), secret.getId()); assertEquals(secret2.getMetadata(), secret.getMetadata()); @@ -144,8 +144,8 @@ class AppRoleSecretTest extends AbstractModelTest { assumeTrue(secret.getTtl() == 12345); String secretJson3 = assertDoesNotThrow(() -> objectMapper.writeValueAsString(secret), "Serialization failed"); secret2 = assertDoesNotThrow( - () -> objectMapper.readValue(commaSeparatedToList(secretJson3), AppRoleSecret.class), - "Deserialization failed" + () -> objectMapper.readValue(commaSeparatedToList(secretJson3), AppRoleSecret.class), + "Deserialization failed" ); assertEquals(secret2.getId(), secret.getId()); assertEquals(secret2.getMetadata(), secret.getMetadata()); @@ -159,9 +159,9 @@ class AppRoleSecretTest extends AbstractModelTest { // Those fields should be deserialized from JSON though. String secretJson4 = "{\"secret_id\":\"abc123\",\"metadata\":{\"number\":1337,\"foo\":\"bar\"}," + - "\"cidr_list\":[\"203.0.113.0/24\",\"198.51.100.0/24\"],\"secret_id_accessor\":\"TEST_ACCESSOR\"," + - "\"creation_time\":\"TEST_CREATION\",\"expiration_time\":\"TEST_EXPIRATION\"," + - "\"last_updated_time\":\"TEST_LASTUPDATE\",\"secret_id_num_uses\":678,\"secret_id_ttl\":12345}"; + "\"cidr_list\":[\"203.0.113.0/24\",\"198.51.100.0/24\"],\"secret_id_accessor\":\"TEST_ACCESSOR\"," + + "\"creation_time\":\"TEST_CREATION\",\"expiration_time\":\"TEST_EXPIRATION\"," + + "\"last_updated_time\":\"TEST_LASTUPDATE\",\"secret_id_num_uses\":678,\"secret_id_ttl\":12345}"; secret2 = assertDoesNotThrow(() -> objectMapper.readValue(secretJson4, AppRoleSecret.class), "Deserialization failed"); assertEquals("TEST_ACCESSOR", secret2.getAccessor()); assertEquals("TEST_CREATION", secret2.getCreationTime()); @@ -181,6 +181,6 @@ class AppRoleSecretTest extends AbstractModelTest { private static String commaSeparatedToList(String json) { return json.replaceAll("\"cidr_list\":\"([^\"]*)\"", "\"cidr_list\":[$1]") - .replaceAll("(\\d+\\.\\d+\\.\\d+\\.\\d+/\\d+)", "\"$1\""); + .replaceAll("(\\d+\\.\\d+\\.\\d+\\.\\d+/\\d+)", "\"$1\""); } } diff --git a/src/test/java/de/stklcode/jvault/connector/model/AppRoleTest.java b/src/test/java/de/stklcode/jvault/connector/model/AppRoleTest.java index 9c582d8..9b20856 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/AppRoleTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/AppRoleTest.java @@ -53,7 +53,7 @@ class AppRoleTest extends AbstractModelTest { private static final Token.Type TOKEN_TYPE = Token.Type.DEFAULT_SERVICE; private static final String JSON_MIN = "{\"role_name\":\"" + NAME + "\"}"; private static final String JSON_FULL = String.format("{\"role_name\":\"%s\",\"role_id\":\"%s\",\"bind_secret_id\":%s,\"secret_id_bound_cidrs\":\"%s\",\"secret_id_num_uses\":%d,\"secret_id_ttl\":%d,\"local_secret_ids\":%s,\"token_ttl\":%d,\"token_max_ttl\":%d,\"token_policies\":\"%s\",\"token_bound_cidrs\":\"%s\",\"token_explicit_max_ttl\":%d,\"token_no_default_policy\":%s,\"token_num_uses\":%d,\"token_period\":%d,\"token_type\":\"%s\"}", - NAME, ID, BIND_SECRET_ID, CIDR_1, SECRET_ID_NUM_USES, SECRET_ID_TTL, LOCAL_SECRET_IDS, TOKEN_TTL, TOKEN_MAX_TTL, POLICY, CIDR_1, TOKEN_EXPLICIT_MAX_TTL, TOKEN_NO_DEFAULT_POLICY, TOKEN_NUM_USES, TOKEN_PERIOD, TOKEN_TYPE.value()); + NAME, ID, BIND_SECRET_ID, CIDR_1, SECRET_ID_NUM_USES, SECRET_ID_TTL, LOCAL_SECRET_IDS, TOKEN_TTL, TOKEN_MAX_TTL, POLICY, CIDR_1, TOKEN_EXPLICIT_MAX_TTL, TOKEN_NO_DEFAULT_POLICY, TOKEN_NUM_USES, TOKEN_PERIOD, TOKEN_TYPE.value()); AppRoleTest() { super(AppRole.class); @@ -62,22 +62,22 @@ class AppRoleTest extends AbstractModelTest { @Override protected AppRole createFull() { return AppRole.builder(NAME) - .withId(ID) - .withBindSecretID(BIND_SECRET_ID) - .withSecretIdBoundCidrs(BOUND_CIDR_LIST) - .withTokenPolicies(POLICIES) - .withSecretIdNumUses(SECRET_ID_NUM_USES) - .withSecretIdTtl(SECRET_ID_TTL) - .withLocalSecretIds(LOCAL_SECRET_IDS) - .withTokenTtl(TOKEN_TTL) - .withTokenMaxTtl(TOKEN_MAX_TTL) - .withTokenBoundCidrs(BOUND_CIDR_LIST) - .withTokenExplicitMaxTtl(TOKEN_EXPLICIT_MAX_TTL) - .withTokenNoDefaultPolicy(TOKEN_NO_DEFAULT_POLICY) - .withTokenNumUses(TOKEN_NUM_USES) - .withTokenPeriod(TOKEN_PERIOD) - .withTokenType(TOKEN_TYPE) - .build(); + .withId(ID) + .withBindSecretID(BIND_SECRET_ID) + .withSecretIdBoundCidrs(BOUND_CIDR_LIST) + .withTokenPolicies(POLICIES) + .withSecretIdNumUses(SECRET_ID_NUM_USES) + .withSecretIdTtl(SECRET_ID_TTL) + .withLocalSecretIds(LOCAL_SECRET_IDS) + .withTokenTtl(TOKEN_TTL) + .withTokenMaxTtl(TOKEN_MAX_TTL) + .withTokenBoundCidrs(BOUND_CIDR_LIST) + .withTokenExplicitMaxTtl(TOKEN_EXPLICIT_MAX_TTL) + .withTokenNoDefaultPolicy(TOKEN_NO_DEFAULT_POLICY) + .withTokenNumUses(TOKEN_NUM_USES) + .withTokenPeriod(TOKEN_PERIOD) + .withTokenType(TOKEN_TYPE) + .build(); } @BeforeAll @@ -159,11 +159,11 @@ class AppRoleTest extends AbstractModelTest { assertEquals(1, role.getTokenBoundCidrs().size()); assertEquals(CIDR_2, role.getTokenBoundCidrs().get(0)); role = AppRole.builder(NAME) - .withSecretIdBoundCidrs(BOUND_CIDR_LIST) - .withSecretBoundCidr(CIDR_2) - .withTokenBoundCidrs(BOUND_CIDR_LIST) - .withTokenBoundCidr(CIDR_2) - .build(); + .withSecretIdBoundCidrs(BOUND_CIDR_LIST) + .withSecretBoundCidr(CIDR_2) + .withTokenBoundCidrs(BOUND_CIDR_LIST) + .withTokenBoundCidr(CIDR_2) + .build(); assertEquals(2, role.getSecretIdBoundCidrs().size()); assertTrue(role.getSecretIdBoundCidrs().containsAll(List.of(CIDR_1, CIDR_2))); assertEquals(2, role.getTokenBoundCidrs().size()); @@ -174,9 +174,9 @@ class AppRoleTest extends AbstractModelTest { assertEquals(1, role.getTokenPolicies().size()); assertEquals(POLICY_2, role.getTokenPolicies().get(0)); role = AppRole.builder(NAME) - .withTokenPolicies(POLICIES) - .withTokenPolicy(POLICY_2) - .build(); + .withTokenPolicies(POLICIES) + .withTokenPolicy(POLICY_2) + .build(); assertEquals(2, role.getTokenPolicies().size()); assertTrue(role.getTokenPolicies().containsAll(List.of(POLICY, POLICY_2))); } diff --git a/src/test/java/de/stklcode/jvault/connector/model/TokenRoleTest.java b/src/test/java/de/stklcode/jvault/connector/model/TokenRoleTest.java index 93f3eae..d5037fd 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/TokenRoleTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/TokenRoleTest.java @@ -66,21 +66,21 @@ class TokenRoleTest extends AbstractModelTest { private static final Token.Type TOKEN_TYPE = Token.Type.SERVICE; private static final String JSON_FULL = "{" + - "\"name\":\"" + NAME + "\"," + - "\"allowed_policies\":[\"" + ALLOWED_POLICY_1 + "\",\"" + ALLOWED_POLICY_2 + "\",\"" + ALLOWED_POLICY_3 + "\"]," + - "\"allowed_policies_glob\":[\"" + ALLOWED_POLICY_GLOB_1 + "\",\"" + ALLOWED_POLICY_GLOB_2 + "\",\"" + ALLOWED_POLICY_GLOB_3 + "\"]," + - "\"disallowed_policies\":[\"" + DISALLOWED_POLICY_1 + "\",\"" + DISALLOWED_POLICY_2 + "\",\"" + DISALLOWED_POLICY_3 + "\"]," + - "\"disallowed_policies_glob\":[\"" + DISALLOWED_POLICY_GLOB_1 + "\",\"" + DISALLOWED_POLICY_GLOB_2 + "\",\"" + DISALLOWED_POLICY_GLOB_3 + "\"]," + - "\"orphan\":" + ORPHAN + "," + - "\"renewable\":" + RENEWABLE + "," + - "\"path_suffix\":\"" + PATH_SUFFIX + "\"," + - "\"allowed_entity_aliases\":[\"" + ALLOWED_ENTITY_ALIAS_1 + "\",\"" + ALLOWED_ENTITY_ALIAS_3 + "\",\"" + ALLOWED_ENTITY_ALIAS_2 + "\"]," + - "\"token_bound_cidrs\":[\"" + TOKEN_BOUND_CIDR_3 + "\",\"" + TOKEN_BOUND_CIDR_2 + "\",\"" + TOKEN_BOUND_CIDR_1 + "\"]," + - "\"token_explicit_max_ttl\":" + TOKEN_EXPLICIT_MAX_TTL + "," + - "\"token_no_default_policy\":" + TOKEN_NO_DEFAULT_POLICY + "," + - "\"token_num_uses\":" + TOKEN_NUM_USES + "," + - "\"token_period\":" + TOKEN_PERIOD + "," + - "\"token_type\":\"" + TOKEN_TYPE.value() + "\"}"; + "\"name\":\"" + NAME + "\"," + + "\"allowed_policies\":[\"" + ALLOWED_POLICY_1 + "\",\"" + ALLOWED_POLICY_2 + "\",\"" + ALLOWED_POLICY_3 + "\"]," + + "\"allowed_policies_glob\":[\"" + ALLOWED_POLICY_GLOB_1 + "\",\"" + ALLOWED_POLICY_GLOB_2 + "\",\"" + ALLOWED_POLICY_GLOB_3 + "\"]," + + "\"disallowed_policies\":[\"" + DISALLOWED_POLICY_1 + "\",\"" + DISALLOWED_POLICY_2 + "\",\"" + DISALLOWED_POLICY_3 + "\"]," + + "\"disallowed_policies_glob\":[\"" + DISALLOWED_POLICY_GLOB_1 + "\",\"" + DISALLOWED_POLICY_GLOB_2 + "\",\"" + DISALLOWED_POLICY_GLOB_3 + "\"]," + + "\"orphan\":" + ORPHAN + "," + + "\"renewable\":" + RENEWABLE + "," + + "\"path_suffix\":\"" + PATH_SUFFIX + "\"," + + "\"allowed_entity_aliases\":[\"" + ALLOWED_ENTITY_ALIAS_1 + "\",\"" + ALLOWED_ENTITY_ALIAS_3 + "\",\"" + ALLOWED_ENTITY_ALIAS_2 + "\"]," + + "\"token_bound_cidrs\":[\"" + TOKEN_BOUND_CIDR_3 + "\",\"" + TOKEN_BOUND_CIDR_2 + "\",\"" + TOKEN_BOUND_CIDR_1 + "\"]," + + "\"token_explicit_max_ttl\":" + TOKEN_EXPLICIT_MAX_TTL + "," + + "\"token_no_default_policy\":" + TOKEN_NO_DEFAULT_POLICY + "," + + "\"token_num_uses\":" + TOKEN_NUM_USES + "," + + "\"token_period\":" + TOKEN_PERIOD + "," + + "\"token_type\":\"" + TOKEN_TYPE.value() + "\"}"; TokenRoleTest() { super(TokenRole.class); @@ -89,28 +89,28 @@ class TokenRoleTest extends AbstractModelTest { @Override protected TokenRole createFull() { return TokenRole.builder() - .forName(NAME) - .withAllowedPolicies(ALLOWED_POLICIES) - .withAllowedPolicy(ALLOWED_POLICY_3) - .withAllowedPolicyGlob(ALLOWED_POLICY_GLOB_1) - .withAllowedPoliciesGlob(ALLOWED_POLICIES_GLOB) - .withDisallowedPolicy(DISALLOWED_POLICY_1) - .withDisallowedPolicies(DISALLOWED_POLICIES) - .withDisallowedPoliciesGlob(DISALLOWED_POLICIES_GLOB) - .withDisallowedPolicyGlob(DISALLOWED_POLICY_GLOB_3) - .orphan(ORPHAN) - .renewable(RENEWABLE) - .withPathSuffix(PATH_SUFFIX) - .withAllowedEntityAliases(ALLOWED_ENTITY_ALIASES) - .withAllowedEntityAlias(ALLOWED_ENTITY_ALIAS_2) - .withTokenBoundCidr(TOKEN_BOUND_CIDR_3) - .withTokenBoundCidrs(TOKEN_BOUND_CIDRS) - .withTokenExplicitMaxTtl(TOKEN_EXPLICIT_MAX_TTL) - .withTokenNoDefaultPolicy(TOKEN_NO_DEFAULT_POLICY) - .withTokenNumUses(TOKEN_NUM_USES) - .withTokenPeriod(TOKEN_PERIOD) - .withTokenType(TOKEN_TYPE) - .build(); + .forName(NAME) + .withAllowedPolicies(ALLOWED_POLICIES) + .withAllowedPolicy(ALLOWED_POLICY_3) + .withAllowedPolicyGlob(ALLOWED_POLICY_GLOB_1) + .withAllowedPoliciesGlob(ALLOWED_POLICIES_GLOB) + .withDisallowedPolicy(DISALLOWED_POLICY_1) + .withDisallowedPolicies(DISALLOWED_POLICIES) + .withDisallowedPoliciesGlob(DISALLOWED_POLICIES_GLOB) + .withDisallowedPolicyGlob(DISALLOWED_POLICY_GLOB_3) + .orphan(ORPHAN) + .renewable(RENEWABLE) + .withPathSuffix(PATH_SUFFIX) + .withAllowedEntityAliases(ALLOWED_ENTITY_ALIASES) + .withAllowedEntityAlias(ALLOWED_ENTITY_ALIAS_2) + .withTokenBoundCidr(TOKEN_BOUND_CIDR_3) + .withTokenBoundCidrs(TOKEN_BOUND_CIDRS) + .withTokenExplicitMaxTtl(TOKEN_EXPLICIT_MAX_TTL) + .withTokenNoDefaultPolicy(TOKEN_NO_DEFAULT_POLICY) + .withTokenNumUses(TOKEN_NUM_USES) + .withTokenPeriod(TOKEN_PERIOD) + .withTokenType(TOKEN_TYPE) + .build(); } /** @@ -141,24 +141,24 @@ class TokenRoleTest extends AbstractModelTest { @Test void buildNullTest() throws JsonProcessingException { TokenRole role = TokenRole.builder() - .forName(null) - .withAllowedPolicies(null) - .withAllowedPolicy(null) - .withDisallowedPolicy(null) - .withDisallowedPolicies(null) - .orphan(null) - .renewable(null) - .withPathSuffix(null) - .withAllowedEntityAliases(null) - .withAllowedEntityAlias(null) - .withTokenBoundCidr(null) - .withTokenBoundCidrs(null) - .withTokenExplicitMaxTtl(null) - .withTokenNoDefaultPolicy(null) - .withTokenNumUses(null) - .withTokenPeriod(null) - .withTokenType(null) - .build(); + .forName(null) + .withAllowedPolicies(null) + .withAllowedPolicy(null) + .withDisallowedPolicy(null) + .withDisallowedPolicies(null) + .orphan(null) + .renewable(null) + .withPathSuffix(null) + .withAllowedEntityAliases(null) + .withAllowedEntityAlias(null) + .withTokenBoundCidr(null) + .withTokenBoundCidrs(null) + .withTokenExplicitMaxTtl(null) + .withTokenNoDefaultPolicy(null) + .withTokenNumUses(null) + .withTokenPeriod(null) + .withTokenType(null) + .build(); assertNull(role.getAllowedPolicies()); assertNull(role.getDisallowedPolicies()); diff --git a/src/test/java/de/stklcode/jvault/connector/model/TokenTest.java b/src/test/java/de/stklcode/jvault/connector/model/TokenTest.java index bdd8f59..652bf5d 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/TokenTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/TokenTest.java @@ -59,20 +59,20 @@ class TokenTest extends AbstractModelTest { @Override protected Token createFull() { return Token.builder() - .withId(ID) - .withType(Token.Type.SERVICE) - .withDisplayName(DISPLAY_NAME) - .withNoParent(NO_PARENT) - .withNoDefaultPolicy(NO_DEFAULT_POLICY) - .withTtl(TTL) - .withExplicitMaxTtl(EXPLICIT_MAX_TTL) - .withNumUses(NUM_USES) - .withPolicies(POLICIES) - .withMeta(META) - .withRenewable(RENEWABLE) - .withPeriod(PERIOD) - .withEntityAlias(ENTITY_ALIAS) - .build(); + .withId(ID) + .withType(Token.Type.SERVICE) + .withDisplayName(DISPLAY_NAME) + .withNoParent(NO_PARENT) + .withNoDefaultPolicy(NO_DEFAULT_POLICY) + .withTtl(TTL) + .withExplicitMaxTtl(EXPLICIT_MAX_TTL) + .withNumUses(NUM_USES) + .withPolicies(POLICIES) + .withMeta(META) + .withRenewable(RENEWABLE) + .withPeriod(PERIOD) + .withEntityAlias(ENTITY_ALIAS) + .build(); } @BeforeAll @@ -159,9 +159,9 @@ class TokenTest extends AbstractModelTest { assertEquals(1, token.getPolicies().size()); assertEquals(List.of(POLICY_2), token.getPolicies()); token = Token.builder() - .withPolicies(POLICY, POLICY_2) - .withPolicy(POLICY_3) - .build(); + .withPolicies(POLICY, POLICY_2) + .withPolicy(POLICY_3) + .build(); assertEquals(3, token.getPolicies().size()); assertTrue(token.getPolicies().containsAll(List.of(POLICY, POLICY_2, POLICY_3))); @@ -171,9 +171,9 @@ class TokenTest extends AbstractModelTest { assertEquals(Set.of(META_KEY_2), token.getMeta().keySet()); assertEquals(META_VALUE_2, token.getMeta().get(META_KEY_2)); token = Token.builder() - .withMeta(META) - .withMeta(META_KEY_2, META_VALUE_2) - .build(); + .withMeta(META) + .withMeta(META_KEY_2, META_VALUE_2) + .build(); assertEquals(2, token.getMeta().size()); assertEquals(META_VALUE, token.getMeta().get(META_KEY)); assertEquals(META_VALUE_2, token.getMeta().get(META_KEY_2)); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/AppRoleResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/AppRoleResponseTest.java index 2f6657e..461d668 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/AppRoleResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/AppRoleResponseTest.java @@ -40,25 +40,25 @@ class AppRoleResponseTest extends AbstractModelTest { private static final Boolean ROLE_BIND_SECRET = true; private static final String RES_JSON = "{\n" + - " \"auth\": null,\n" + - " \"warnings\": null,\n" + - " \"wrap_info\": null,\n" + - " \"data\": {\n" + - " \"token_ttl\": " + ROLE_TOKEN_TTL + ",\n" + - " \"token_max_ttl\": " + ROLE_TOKEN_MAX_TTL + ",\n" + - " \"secret_id_ttl\": " + ROLE_SECRET_TTL + ",\n" + - " \"secret_id_num_uses\": " + ROLE_SECRET_NUM_USES + ",\n" + - " \"token_policies\": [\n" + - " \"" + ROLE_POLICY + "\"\n" + - " ],\n" + - " \"token_period\": " + ROLE_PERIOD + ",\n" + - " \"bind_secret_id\": " + ROLE_BIND_SECRET + ",\n" + - " \"bound_cidr_list\": \"\"\n" + - " },\n" + - " \"lease_duration\": 0,\n" + - " \"renewable\": false,\n" + - " \"lease_id\": \"\"\n" + - "}"; + " \"auth\": null,\n" + + " \"warnings\": null,\n" + + " \"wrap_info\": null,\n" + + " \"data\": {\n" + + " \"token_ttl\": " + ROLE_TOKEN_TTL + ",\n" + + " \"token_max_ttl\": " + ROLE_TOKEN_MAX_TTL + ",\n" + + " \"secret_id_ttl\": " + ROLE_SECRET_TTL + ",\n" + + " \"secret_id_num_uses\": " + ROLE_SECRET_NUM_USES + ",\n" + + " \"token_policies\": [\n" + + " \"" + ROLE_POLICY + "\"\n" + + " ],\n" + + " \"token_period\": " + ROLE_PERIOD + ",\n" + + " \"bind_secret_id\": " + ROLE_BIND_SECRET + ",\n" + + " \"bound_cidr_list\": \"\"\n" + + " },\n" + + " \"lease_duration\": 0,\n" + + " \"renewable\": false,\n" + + " \"lease_id\": \"\"\n" + + "}"; AppRoleResponseTest() { super(AppRoleResponse.class); @@ -88,8 +88,8 @@ class AppRoleResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { AppRoleResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_JSON, AppRoleResponse.class), - "AuthResponse deserialization failed" + () -> objectMapper.readValue(RES_JSON, AppRoleResponse.class), + "AuthResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); // Extract role data. diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/AuthMethodsResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/AuthMethodsResponseTest.java index b2d5238..50d0954 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/AuthMethodsResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/AuthMethodsResponseTest.java @@ -51,37 +51,37 @@ class AuthMethodsResponseTest extends AbstractModelTest { private static final String TK_RUNNING_PLUGIN_VERSION = "v1.15.3+builtin.vault"; private static final String RES_JSON = "{\n" + - " \"data\": {" + - " \"" + GH_PATH + "\": {\n" + - " \"uuid\": \"" + GH_UUID + "\",\n" + - " \"type\": \"" + GH_TYPE + "\",\n" + - " \"accessor\": \"" + GH_ACCESSOR + "\",\n" + - " \"description\": \"" + GH_DESCR + "\",\n" + - " \"external_entropy_access\": false,\n" + - " \"local\": false,\n" + - " \"seal_wrap\": false\n" + - " },\n" + - " \"" + TK_PATH + "\": {\n" + - " \"config\": {\n" + - " \"default_lease_ttl\": " + TK_LEASE_TTL + ",\n" + - " \"force_no_cache\": " + TK_FORCE_NO_CACHE + ",\n" + - " \"max_lease_ttl\": " + TK_MAX_LEASE_TTL + ",\n" + - " \"token_type\": \"" + TK_TOKEN_TYPE + "\"\n" + - " },\n" + - " \"description\": \"" + TK_DESCR + "\",\n" + - " \"options\": null,\n" + - " \"plugin_version\": \"\",\n" + - " \"running_plugin_version\": \"" + TK_RUNNING_PLUGIN_VERSION + "\",\n" + - " \"running_sha256\": \"\",\n" + - " \"type\": \"" + TK_TYPE + "\",\n" + - " \"uuid\": \"" + TK_UUID + "\",\n" + - " \"accessor\": \"" + TK_ACCESSOR + "\",\n" + - " \"external_entropy_access\": false,\n" + - " \"local\": true,\n" + - " \"seal_wrap\": false\n" + - " }\n" + - " }\n" + - "}"; + " \"data\": {" + + " \"" + GH_PATH + "\": {\n" + + " \"uuid\": \"" + GH_UUID + "\",\n" + + " \"type\": \"" + GH_TYPE + "\",\n" + + " \"accessor\": \"" + GH_ACCESSOR + "\",\n" + + " \"description\": \"" + GH_DESCR + "\",\n" + + " \"external_entropy_access\": false,\n" + + " \"local\": false,\n" + + " \"seal_wrap\": false\n" + + " },\n" + + " \"" + TK_PATH + "\": {\n" + + " \"config\": {\n" + + " \"default_lease_ttl\": " + TK_LEASE_TTL + ",\n" + + " \"force_no_cache\": " + TK_FORCE_NO_CACHE + ",\n" + + " \"max_lease_ttl\": " + TK_MAX_LEASE_TTL + ",\n" + + " \"token_type\": \"" + TK_TOKEN_TYPE + "\"\n" + + " },\n" + + " \"description\": \"" + TK_DESCR + "\",\n" + + " \"options\": null,\n" + + " \"plugin_version\": \"\",\n" + + " \"running_plugin_version\": \"" + TK_RUNNING_PLUGIN_VERSION + "\",\n" + + " \"running_sha256\": \"\",\n" + + " \"type\": \"" + TK_TYPE + "\",\n" + + " \"uuid\": \"" + TK_UUID + "\",\n" + + " \"accessor\": \"" + TK_ACCESSOR + "\",\n" + + " \"external_entropy_access\": false,\n" + + " \"local\": true,\n" + + " \"seal_wrap\": false\n" + + " }\n" + + " }\n" + + "}"; AuthMethodsResponseTest() { super(AuthMethodsResponse.class); @@ -111,8 +111,8 @@ class AuthMethodsResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { AuthMethodsResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_JSON, AuthMethodsResponse.class), - "AuthResponse deserialization failed" + () -> objectMapper.readValue(RES_JSON, AuthMethodsResponse.class), + "AuthResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); // Extract auth data. diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/AuthResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/AuthResponseTest.java index d466f3d..6522666 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/AuthResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/AuthResponseTest.java @@ -119,8 +119,8 @@ class AuthResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { AuthResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_JSON, AuthResponse.class), - "AuthResponse deserialization failed" + () -> objectMapper.readValue(RES_JSON, AuthResponse.class), + "AuthResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); // Extract auth data. diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/CredentialsResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/CredentialsResponseTest.java index 3502cf5..3602bd0 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/CredentialsResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/CredentialsResponseTest.java @@ -31,16 +31,16 @@ class CredentialsResponseTest extends AbstractModelTest { private static final String VAL_USER = "testUserName"; private static final String VAL_PASS = "5up3r5ecr3tP455"; private static final String JSON = "{\n" + - " \"request_id\": \"68315073-6658-e3ff-2da7-67939fb91bbd\",\n" + - " \"lease_id\": \"\",\n" + - " \"lease_duration\": 2764800,\n" + - " \"renewable\": false,\n" + - " \"data\": {\n" + - " \"username\": \"" + VAL_USER + "\",\n" + - " \"password\": \"" + VAL_PASS + "\"\n" + - " },\n" + - " \"warnings\": null\n" + - "}"; + " \"request_id\": \"68315073-6658-e3ff-2da7-67939fb91bbd\",\n" + + " \"lease_id\": \"\",\n" + + " \"lease_duration\": 2764800,\n" + + " \"renewable\": false,\n" + + " \"data\": {\n" + + " \"username\": \"" + VAL_USER + "\",\n" + + " \"password\": \"" + VAL_PASS + "\"\n" + + " },\n" + + " \"warnings\": null\n" + + "}"; CredentialsResponseTest() { super(CredentialsResponse.class); @@ -65,8 +65,8 @@ class CredentialsResponseTest extends AbstractModelTest { assertNull(res.getPassword(), "Password not present in data map should not return anything"); res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON, CredentialsResponse.class), - "Deserialization of CredentialsResponse failed" + () -> objectMapper.readValue(JSON, CredentialsResponse.class), + "Deserialization of CredentialsResponse failed" ); assertEquals(VAL_USER, res.getUsername(), "Incorrect username"); assertEquals(VAL_PASS, res.getPassword(), "Incorrect password"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/ErrorResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/ErrorResponseTest.java index c809348..f83df4f 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/ErrorResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/ErrorResponseTest.java @@ -53,15 +53,15 @@ class ErrorResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { ErrorResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON, ErrorResponse.class), - "ErrorResponse deserialization failed" + () -> objectMapper.readValue(JSON, ErrorResponse.class), + "ErrorResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(List.of(ERROR_1, ERROR_2), res.getErrors(), "Unexpected error messages"); assertEquals( - JSON, - assertDoesNotThrow(() -> objectMapper.writeValueAsString(res), "ErrorResponse serialization failed"), - "Unexpected JSON string after serialization" + JSON, + assertDoesNotThrow(() -> objectMapper.writeValueAsString(res), "ErrorResponse serialization failed"), + "Unexpected JSON string after serialization" ); } @@ -69,14 +69,14 @@ class ErrorResponseTest extends AbstractModelTest { @Test void testToString() { ErrorResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON, ErrorResponse.class), - "ErrorResponse deserialization failed" + () -> objectMapper.readValue(JSON, ErrorResponse.class), + "ErrorResponse deserialization failed" ); assertEquals(ERROR_1, res.toString()); res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON_EMPTY, ErrorResponse.class), - "ErrorResponse deserialization failed with empty list" + () -> objectMapper.readValue(JSON_EMPTY, ErrorResponse.class), + "ErrorResponse deserialization failed with empty list" ); assertEquals("error response", res.toString()); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/HealthResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/HealthResponseTest.java index 0df614d..86becda 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/HealthResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/HealthResponseTest.java @@ -44,21 +44,21 @@ class HealthResponseTest extends AbstractModelTest { private static final Boolean ENTERPRISE = false; private static final String RES_JSON = "{\n" + - " \"cluster_id\": \"" + CLUSTER_ID + "\",\n" + - " \"cluster_name\": \"" + CLUSTER_NAME + "\",\n" + - " \"version\": \"" + VERSION + "\",\n" + - " \"server_time_utc\": " + SERVER_TIME_UTC + ",\n" + - " \"standby\": " + STANDBY + ",\n" + - " \"sealed\": " + SEALED + ",\n" + - " \"initialized\": " + INITIALIZED + ",\n" + - " \"replication_performance_mode\": \"" + REPL_PERF_MODE + "\",\n" + - " \"replication_dr_mode\": \"" + REPL_DR_MODE + "\",\n" + - " \"performance_standby\": " + PERF_STANDBY + ",\n" + - " \"echo_duration_ms\": " + ECHO_DURATION + ",\n" + - " \"clock_skew_ms\": " + CLOCK_SKEW + ",\n" + - " \"replication_primary_canary_age_ms\": " + REPL_PRIM_CANARY_AGE + ",\n" + - " \"enterprise\": " + ENTERPRISE + "\n" + - "}"; + " \"cluster_id\": \"" + CLUSTER_ID + "\",\n" + + " \"cluster_name\": \"" + CLUSTER_NAME + "\",\n" + + " \"version\": \"" + VERSION + "\",\n" + + " \"server_time_utc\": " + SERVER_TIME_UTC + ",\n" + + " \"standby\": " + STANDBY + ",\n" + + " \"sealed\": " + SEALED + ",\n" + + " \"initialized\": " + INITIALIZED + ",\n" + + " \"replication_performance_mode\": \"" + REPL_PERF_MODE + "\",\n" + + " \"replication_dr_mode\": \"" + REPL_DR_MODE + "\",\n" + + " \"performance_standby\": " + PERF_STANDBY + ",\n" + + " \"echo_duration_ms\": " + ECHO_DURATION + ",\n" + + " \"clock_skew_ms\": " + CLOCK_SKEW + ",\n" + + " \"replication_primary_canary_age_ms\": " + REPL_PRIM_CANARY_AGE + ",\n" + + " \"enterprise\": " + ENTERPRISE + "\n" + + "}"; HealthResponseTest() { super(HealthResponse.class); @@ -78,8 +78,8 @@ class HealthResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { HealthResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_JSON, HealthResponse.class), - "Health deserialization failed" + () -> objectMapper.readValue(RES_JSON, HealthResponse.class), + "Health deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(CLUSTER_ID, res.getClusterID(), "Incorrect cluster ID"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/HelpResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/HelpResponseTest.java index 05026d7..39e6ac2 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/HelpResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/HelpResponseTest.java @@ -49,15 +49,15 @@ class HelpResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { HelpResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON, HelpResponse.class), - "HelpResponse deserialization failed" + () -> objectMapper.readValue(JSON, HelpResponse.class), + "HelpResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(HELP, res.getHelp(), "Unexpected help text"); assertEquals( - JSON, - assertDoesNotThrow(() -> objectMapper.writeValueAsString(res), "HelpResponse serialization failed"), - "Unexpected JSON string after serialization" + JSON, + assertDoesNotThrow(() -> objectMapper.writeValueAsString(res), "HelpResponse serialization failed"), + "Unexpected JSON string after serialization" ); } } diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/MetaSecretResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/MetaSecretResponseTest.java index 129b6ba..65c3087 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/MetaSecretResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/MetaSecretResponseTest.java @@ -46,47 +46,47 @@ class MetaSecretResponseTest extends AbstractModelTest { private static final String CUSTOM_META_VAL = "bar"; private static final String SECRET_JSON_V2 = "{\n" + - " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + - " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + - " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + - " \"renewable\": " + SECRET_RENEWABLE + ",\n" + - " \"data\": {\n" + - " \"data\": {\n" + - " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + - " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + - " },\n" + - " \"metadata\": {\n" + - " \"created_time\": \"" + SECRET_META_CREATED + "\",\n" + - " \"custom_metadata\": null,\n" + - " \"deletion_time\": \"\",\n" + - " \"destroyed\": false,\n" + - " \"version\": 1\n" + - " }\n" + - " },\n" + - " \"warnings\": " + SECRET_WARNINGS + "\n" + - "}"; + " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + + " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + + " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + + " \"renewable\": " + SECRET_RENEWABLE + ",\n" + + " \"data\": {\n" + + " \"data\": {\n" + + " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + + " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + + " },\n" + + " \"metadata\": {\n" + + " \"created_time\": \"" + SECRET_META_CREATED + "\",\n" + + " \"custom_metadata\": null,\n" + + " \"deletion_time\": \"\",\n" + + " \"destroyed\": false,\n" + + " \"version\": 1\n" + + " }\n" + + " },\n" + + " \"warnings\": " + SECRET_WARNINGS + "\n" + + "}"; private static final String SECRET_JSON_V2_2 = "{\n" + - " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + - " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + - " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + - " \"renewable\": " + SECRET_RENEWABLE + ",\n" + - " \"data\": {\n" + - " \"data\": {\n" + - " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + - " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + - " },\n" + - " \"metadata\": {\n" + - " \"created_time\": \"" + SECRET_META_CREATED + "\",\n" + - " \"custom_metadata\": {" + - " \"" + CUSTOM_META_KEY + "\": \"" + CUSTOM_META_VAL + "\"" + - " },\n" + - " \"deletion_time\": \"" + SECRET_META_DELETED + "\",\n" + - " \"destroyed\": true,\n" + - " \"version\": 2\n" + - " }\n" + - " },\n" + - " \"warnings\": " + SECRET_WARNINGS + "\n" + - "}"; + " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + + " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + + " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + + " \"renewable\": " + SECRET_RENEWABLE + ",\n" + + " \"data\": {\n" + + " \"data\": {\n" + + " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + + " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + + " },\n" + + " \"metadata\": {\n" + + " \"created_time\": \"" + SECRET_META_CREATED + "\",\n" + + " \"custom_metadata\": {" + + " \"" + CUSTOM_META_KEY + "\": \"" + CUSTOM_META_VAL + "\"" + + " },\n" + + " \"deletion_time\": \"" + SECRET_META_DELETED + "\",\n" + + " \"destroyed\": true,\n" + + " \"version\": 2\n" + + " }\n" + + " },\n" + + " \"warnings\": " + SECRET_WARNINGS + "\n" + + "}"; MetaSecretResponseTest() { super(MetaSecretResponse.class); @@ -107,8 +107,8 @@ class MetaSecretResponseTest extends AbstractModelTest { void jsonRoundtrip() { // KV v2 secret. MetaSecretResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(SECRET_JSON_V2, MetaSecretResponse.class), - "SecretResponse deserialization failed" + () -> objectMapper.readValue(SECRET_JSON_V2, MetaSecretResponse.class), + "SecretResponse deserialization failed" ); assertSecretData(res); assertNotNull(res.getMetadata(), "SecretResponse does not contain metadata"); @@ -120,8 +120,8 @@ class MetaSecretResponseTest extends AbstractModelTest { // Deleted KV v2 secret. res = assertDoesNotThrow( - () -> objectMapper.readValue(SECRET_JSON_V2_2, MetaSecretResponse.class), - "SecretResponse deserialization failed" + () -> objectMapper.readValue(SECRET_JSON_V2_2, MetaSecretResponse.class), + "SecretResponse deserialization failed" ); assertSecretData(res); assertNotNull(res.getMetadata(), "SecretResponse does not contain metadata"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/MetadataResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/MetadataResponseTest.java index e2bc51d..2f811fa 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/MetadataResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/MetadataResponseTest.java @@ -42,36 +42,36 @@ class MetadataResponseTest extends AbstractModelTest { private static final String DELETE_VERSION_AFTER = "0s"; private static final String META_JSON = "{\n" + - " \"data\": {\n" + - " \"cas_required\": " + CAS_REQUIRED + ",\n" + - " \"created_time\": \"" + V1_TIME + "\",\n" + - " \"current_version\": " + CURRENT_VERSION + ",\n" + - " \"custom_metadata\": {" + - " \"" + CUSTOM_META_KEY + "\": \"" + CUSTOM_META_VAL + "\"" + - " },\n" + - " \"delete_version_after\": \"" + DELETE_VERSION_AFTER + "\"," + - " \"max_versions\": " + MAX_VERSIONS + ",\n" + - " \"oldest_version\": " + OLDEST_VERSION + ",\n" + - " \"updated_time\": \"" + V3_TIME + "\",\n" + - " \"versions\": {\n" + - " \"1\": {\n" + - " \"created_time\": \"" + V1_TIME + "\",\n" + - " \"deletion_time\": \"" + V2_TIME + "\",\n" + - " \"destroyed\": true\n" + - " },\n" + - " \"2\": {\n" + - " \"created_time\": \"" + V2_TIME + "\",\n" + - " \"deletion_time\": \"\",\n" + - " \"destroyed\": false\n" + - " },\n" + - " \"3\": {\n" + - " \"created_time\": \"" + V3_TIME + "\",\n" + - " \"deletion_time\": \"\",\n" + - " \"destroyed\": false\n" + - " }\n" + - " }\n" + - " }\n" + - "}"; + " \"data\": {\n" + + " \"cas_required\": " + CAS_REQUIRED + ",\n" + + " \"created_time\": \"" + V1_TIME + "\",\n" + + " \"current_version\": " + CURRENT_VERSION + ",\n" + + " \"custom_metadata\": {" + + " \"" + CUSTOM_META_KEY + "\": \"" + CUSTOM_META_VAL + "\"" + + " },\n" + + " \"delete_version_after\": \"" + DELETE_VERSION_AFTER + "\"," + + " \"max_versions\": " + MAX_VERSIONS + ",\n" + + " \"oldest_version\": " + OLDEST_VERSION + ",\n" + + " \"updated_time\": \"" + V3_TIME + "\",\n" + + " \"versions\": {\n" + + " \"1\": {\n" + + " \"created_time\": \"" + V1_TIME + "\",\n" + + " \"deletion_time\": \"" + V2_TIME + "\",\n" + + " \"destroyed\": true\n" + + " },\n" + + " \"2\": {\n" + + " \"created_time\": \"" + V2_TIME + "\",\n" + + " \"deletion_time\": \"\",\n" + + " \"destroyed\": false\n" + + " },\n" + + " \"3\": {\n" + + " \"created_time\": \"" + V3_TIME + "\",\n" + + " \"deletion_time\": \"\",\n" + + " \"destroyed\": false\n" + + " }\n" + + " }\n" + + " }\n" + + "}"; MetadataResponseTest() { super(MetadataResponse.class); @@ -91,8 +91,8 @@ class MetadataResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { MetadataResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(META_JSON, MetadataResponse.class), - "MetadataResponse deserialization failed" + () -> objectMapper.readValue(META_JSON, MetadataResponse.class), + "MetadataResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertNotNull(res.getMetadata(), "Parsed metadata is NULL"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/PlainSecretResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/PlainSecretResponseTest.java index 2431ef0..a0a22a8 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/PlainSecretResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/PlainSecretResponseTest.java @@ -42,16 +42,16 @@ class PlainSecretResponseTest extends AbstractModelTest { private static final String SECRET_DATA_V2 = "world"; private static final List SECRET_WARNINGS = null; private static final String SECRET_JSON = "{\n" + - " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + - " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + - " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + - " \"renewable\": " + SECRET_RENEWABLE + ",\n" + - " \"data\": {\n" + - " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + - " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + - " },\n" + - " \"warnings\": " + SECRET_WARNINGS + "\n" + - "}"; + " \"request_id\": \"" + SECRET_REQUEST_ID + "\",\n" + + " \"lease_id\": \"" + SECRET_LEASE_ID + "\",\n" + + " \"lease_duration\": " + SECRET_LEASE_DURATION + ",\n" + + " \"renewable\": " + SECRET_RENEWABLE + ",\n" + + " \"data\": {\n" + + " \"" + SECRET_DATA_K1 + "\": \"" + SECRET_DATA_V1 + "\",\n" + + " \"" + SECRET_DATA_K2 + "\": \"" + SECRET_DATA_V2 + "\"\n" + + " },\n" + + " \"warnings\": " + SECRET_WARNINGS + "\n" + + "}"; PlainSecretResponseTest() { super(PlainSecretResponse.class); @@ -71,8 +71,8 @@ class PlainSecretResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { SecretResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(SECRET_JSON, PlainSecretResponse.class), - "SecretResponse deserialization failed" + () -> objectMapper.readValue(SECRET_JSON, PlainSecretResponse.class), + "SecretResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); @@ -103,74 +103,74 @@ class PlainSecretResponseTest extends AbstractModelTest { final var complexVal = new ComplexType("val1", 678); SecretResponse res = assertDoesNotThrow( - () -> objectMapper.readValue( - "{\n" + - " \"request_id\": \"req-id\",\n" + - " \"lease_id\": \"lea-id\",\n" + - " \"lease_duration\": " + 123456 + ",\n" + - " \"renewable\": true,\n" + - " \"data\": {\n" + - " \"" + stringKey + "\": \"" + stringVal + "\",\n" + - " \"" + numberKey + "\": \"" + numberVal + "\",\n" + - " \"" + listKey + "\": [\"" + String.join("\", \"", listVal) + "\"],\n" + - " \"" + complexKey + "\": {" + - " \"field1\": \"" + complexVal.field1 + "\",\n" + - " \"field2\": " + complexVal.field2 + "\n" + - " },\n" + - " \"" + complexKey + "Json\": \"" + objectMapper.writeValueAsString(complexVal).replace("\"", "\\\"") + "\"\n" + - " }\n" + - "}", - PlainSecretResponse.class - ), - "SecretResponse deserialization failed" + () -> objectMapper.readValue( + "{\n" + + " \"request_id\": \"req-id\",\n" + + " \"lease_id\": \"lea-id\",\n" + + " \"lease_duration\": " + 123456 + ",\n" + + " \"renewable\": true,\n" + + " \"data\": {\n" + + " \"" + stringKey + "\": \"" + stringVal + "\",\n" + + " \"" + numberKey + "\": \"" + numberVal + "\",\n" + + " \"" + listKey + "\": [\"" + String.join("\", \"", listVal) + "\"],\n" + + " \"" + complexKey + "\": {" + + " \"field1\": \"" + complexVal.field1 + "\",\n" + + " \"field2\": " + complexVal.field2 + "\n" + + " },\n" + + " \"" + complexKey + "Json\": \"" + objectMapper.writeValueAsString(complexVal).replace("\"", "\\\"") + "\"\n" + + " }\n" + + "}", + PlainSecretResponse.class + ), + "SecretResponse deserialization failed" ); assertEquals(stringVal, res.get(stringKey), "unexpected value for string (implicit)"); assertEquals( - stringVal, - assertDoesNotThrow(() -> res.get(stringKey, String.class), "getting string failed"), - "unexpected value for string (explicit)" + stringVal, + assertDoesNotThrow(() -> res.get(stringKey, String.class), "getting string failed"), + "unexpected value for string (explicit)" ); assertEquals(String.valueOf(numberVal), res.get(numberKey), "unexpected value for number (implicit)"); assertEquals( - numberVal, - assertDoesNotThrow(() -> res.get(numberKey, Double.class), "getting number failed"), - "unexpected value for number (explicit)" + numberVal, + assertDoesNotThrow(() -> res.get(numberKey, Double.class), "getting number failed"), + "unexpected value for number (explicit)" ); assertEquals( - String.valueOf(numberVal), - assertDoesNotThrow(() -> res.get(numberKey, String.class), "getting number as string failed"), - "unexpected value for number as string (explicit)" + String.valueOf(numberVal), + assertDoesNotThrow(() -> res.get(numberKey, String.class), "getting number as string failed"), + "unexpected value for number as string (explicit)" ); assertEquals(listVal, res.get(listKey), "unexpected value for list (implicit)"); assertEquals( - listVal, - assertDoesNotThrow(() -> res.get(listKey, ArrayList.class), "getting list failed"), - "unexpected value for list (explicit)" + listVal, + assertDoesNotThrow(() -> res.get(listKey, ArrayList.class), "getting list failed"), + "unexpected value for list (explicit)" ); assertEquals(complexVal.toMap(), res.get(complexKey), "unexpected value for complex type (implicit)"); assertEquals( - complexVal.toMap(), - assertDoesNotThrow(() -> res.get(complexKey, HashMap.class), "getting complex type as map failed"), - "unexpected value for complex type as map (explicit)" + complexVal.toMap(), + assertDoesNotThrow(() -> res.get(complexKey, HashMap.class), "getting complex type as map failed"), + "unexpected value for complex type as map (explicit)" ); assertEquals( - complexVal, - assertDoesNotThrow(() -> res.get(complexKey, ComplexType.class), "getting complex type failed"), - "unexpected value for complex type (explicit)" + complexVal, + assertDoesNotThrow(() -> res.get(complexKey, ComplexType.class), "getting complex type failed"), + "unexpected value for complex type (explicit)" ); assertThrows( - InvalidResponseException.class, - () -> res.get(complexKey, Integer.class), - "getting complex type as integer should fail" + InvalidResponseException.class, + () -> res.get(complexKey, Integer.class), + "getting complex type as integer should fail" ); assertEquals( - complexVal, - assertDoesNotThrow(() -> res.get(complexKey + "Json", ComplexType.class), "getting complex type from JSON string failed"), - "unexpected value for complex type from JSON string" + complexVal, + assertDoesNotThrow(() -> res.get(complexKey + "Json", ComplexType.class), "getting complex type from JSON string failed"), + "unexpected value for complex type from JSON string" ); } @@ -196,8 +196,8 @@ class PlainSecretResponseTest extends AbstractModelTest { private Map toMap() { return Map.of( - "field1", field1, - "field2", field2 + "field1", field1, + "field2", field2 ); } diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/SealResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/SealResponseTest.java index 7410259..90a2190 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/SealResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/SealResponseTest.java @@ -45,36 +45,36 @@ class SealResponseTest extends AbstractModelTest { private static final String STORAGE_TYPE = "file"; private static final String RES_SEALED = "{\n" + - " \"type\": \"" + TYPE + "\",\n" + - " \"sealed\": true,\n" + - " \"initialized\": true,\n" + - " \"t\": " + THRESHOLD + ",\n" + - " \"n\": " + SHARES + ",\n" + - " \"progress\": " + PROGRESS_SEALED + ",\n" + - " \"nonce\": \"\",\n" + - " \"version\": \"" + VERSION + "\",\n" + - " \"build_date\": \"" + BUILD_DATE + "\",\n" + - " \"migration\": \"" + MIGRATION + "\",\n" + - " \"recovery_seal\": \"" + RECOVERY_SEAL + "\",\n" + - " \"storage_type\": \"" + STORAGE_TYPE + "\"\n" + - "}"; + " \"type\": \"" + TYPE + "\",\n" + + " \"sealed\": true,\n" + + " \"initialized\": true,\n" + + " \"t\": " + THRESHOLD + ",\n" + + " \"n\": " + SHARES + ",\n" + + " \"progress\": " + PROGRESS_SEALED + ",\n" + + " \"nonce\": \"\",\n" + + " \"version\": \"" + VERSION + "\",\n" + + " \"build_date\": \"" + BUILD_DATE + "\",\n" + + " \"migration\": \"" + MIGRATION + "\",\n" + + " \"recovery_seal\": \"" + RECOVERY_SEAL + "\",\n" + + " \"storage_type\": \"" + STORAGE_TYPE + "\"\n" + + "}"; private static final String RES_UNSEALED = "{\n" + - " \"type\": \"" + TYPE + "\",\n" + - " \"sealed\": false,\n" + - " \"initialized\": true,\n" + - " \"t\": " + THRESHOLD + ",\n" + - " \"n\": " + SHARES + ",\n" + - " \"progress\": " + PROGRESS_UNSEALED + ",\n" + - " \"version\": \"" + VERSION + "\",\n" + - " \"build_date\": \"" + BUILD_DATE + "\",\n" + - " \"cluster_name\": \"" + CLUSTER_NAME + "\",\n" + - " \"cluster_id\": \"" + CLUSTER_ID + "\",\n" + - " \"nonce\": \"" + NONCE + "\",\n" + - " \"migration\": \"" + MIGRATION + "\",\n" + - " \"recovery_seal\": \"" + RECOVERY_SEAL + "\",\n" + - " \"storage_type\": \"" + STORAGE_TYPE + "\"\n" + - "}"; + " \"type\": \"" + TYPE + "\",\n" + + " \"sealed\": false,\n" + + " \"initialized\": true,\n" + + " \"t\": " + THRESHOLD + ",\n" + + " \"n\": " + SHARES + ",\n" + + " \"progress\": " + PROGRESS_UNSEALED + ",\n" + + " \"version\": \"" + VERSION + "\",\n" + + " \"build_date\": \"" + BUILD_DATE + "\",\n" + + " \"cluster_name\": \"" + CLUSTER_NAME + "\",\n" + + " \"cluster_id\": \"" + CLUSTER_ID + "\",\n" + + " \"nonce\": \"" + NONCE + "\",\n" + + " \"migration\": \"" + MIGRATION + "\",\n" + + " \"recovery_seal\": \"" + RECOVERY_SEAL + "\",\n" + + " \"storage_type\": \"" + STORAGE_TYPE + "\"\n" + + "}"; SealResponseTest() { super(SealResponse.class); @@ -95,8 +95,8 @@ class SealResponseTest extends AbstractModelTest { void jsonRoundtripSealed() { // First test sealed Vault's response. SealResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_SEALED, SealResponse.class), - "SealResponse deserialization failed" + () -> objectMapper.readValue(RES_SEALED, SealResponse.class), + "SealResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(TYPE, res.getType(), "Incorrect seal type"); @@ -118,8 +118,8 @@ class SealResponseTest extends AbstractModelTest { // Not test unsealed Vault's response. res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_UNSEALED, SealResponse.class), - "SealResponse deserialization failed" + () -> objectMapper.readValue(RES_UNSEALED, SealResponse.class), + "SealResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(TYPE, res.getType(), "Incorrect seal type"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java index af4f45a..0c1c8a0 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/SecretListResponseTest.java @@ -21,7 +21,8 @@ import org.junit.jupiter.api.Test; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * JUnit Test for {@link SecretListResponse} model. @@ -33,17 +34,17 @@ class SecretListResponseTest extends AbstractModelTest { private static final String KEY1 = "key1"; private static final String KEY2 = "key-2"; private static final String JSON = "{\n" + - " \"auth\": null,\n" + - " \"data\": {\n" + - " \"keys\": [" + - " \"" + KEY1 + "\",\n" + - " \"" + KEY2 + "\"\n" + - " ]\n" + - " },\n" + - " \"lease_duration\": 2764800,\n" + - " \"lease_id\": \"\",\n" + - " \"renewable\": false\n" + - "}"; + " \"auth\": null,\n" + + " \"data\": {\n" + + " \"keys\": [" + + " \"" + KEY1 + "\",\n" + + " \"" + KEY2 + "\"\n" + + " ]\n" + + " },\n" + + " \"lease_duration\": 2764800,\n" + + " \"lease_id\": \"\",\n" + + " \"renewable\": false\n" + + "}"; SecretListResponseTest() { super(SecretListResponse.class); @@ -63,8 +64,8 @@ class SecretListResponseTest extends AbstractModelTest { @Test void getKeysTest() { SecretListResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(JSON, SecretListResponse.class), - "SecretListResponse deserialization failed" + () -> objectMapper.readValue(JSON, SecretListResponse.class), + "SecretListResponse deserialization failed" ); assertEquals(List.of(KEY1, KEY2), res.getKeys(), "Unexpected secret keys"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/SecretVersionResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/SecretVersionResponseTest.java index d590f7e..803986a 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/SecretVersionResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/SecretVersionResponseTest.java @@ -33,13 +33,13 @@ class SecretVersionResponseTest extends AbstractModelTest private static final Integer VERSION = 42; private static final String META_JSON = "{\n" + - " \"data\": {\n" + - " \"created_time\": \"" + CREATION_TIME + "\",\n" + - " \"deletion_time\": \"" + DELETION_TIME + "\",\n" + - " \"destroyed\": false,\n" + - " \"version\": " + VERSION + "\n" + - " }\n" + - "}"; + " \"data\": {\n" + + " \"created_time\": \"" + CREATION_TIME + "\",\n" + + " \"deletion_time\": \"" + DELETION_TIME + "\",\n" + + " \"destroyed\": false,\n" + + " \"version\": " + VERSION + "\n" + + " }\n" + + "}"; SecretVersionResponseTest() { super(SecretVersionResponse.class); @@ -59,8 +59,8 @@ class SecretVersionResponseTest extends AbstractModelTest @Test void jsonRoundtrip() { SecretVersionResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(META_JSON, SecretVersionResponse.class), - "SecretVersionResponse deserialization failed" + () -> objectMapper.readValue(META_JSON, SecretVersionResponse.class), + "SecretVersionResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertNotNull(res.getMetadata(), "Parsed metadata is NULL"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/TokenResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/TokenResponseTest.java index 0e09f33..d8271cd 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/TokenResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/TokenResponseTest.java @@ -57,37 +57,37 @@ class TokenResponseTest extends AbstractModelTest { private static final String MOUNT_TYPE = "token"; private static final String RES_JSON = "{\n" + - " \"lease_id\": \"\",\n" + - " \"renewable\": " + RES_RENEWABLE + ",\n" + - " \"lease_duration\": " + RES_LEASE_DURATION + ",\n" + - " \"data\": {\n" + - " \"accessor\": \"" + TOKEN_ACCESSOR + "\",\n" + - " \"creation_time\": " + TOKEN_CREATION_TIME + ",\n" + - " \"creation_ttl\": " + TOKEN_TTL + ",\n" + - " \"display_name\": \"" + TOKEN_DISPLAY_NAME + "\",\n" + - " \"entity_id\": \"" + TOKEN_ENTITY_ID + "\",\n" + - " \"expire_time\": \"" + TOKEN_EXPIRE_TIME + "\",\n" + - " \"explicit_max_ttl\": \"" + TOKEN_EXPLICIT_MAX_TTL + "\",\n" + - " \"id\": \"" + TOKEN_ID + "\",\n" + - " \"issue_time\": \"" + TOKEN_ISSUE_TIME + "\",\n" + - " \"meta\": {\n" + - " \"" + TOKEN_META_KEY + "\": \"" + TOKEN_META_VALUE + "\"\n" + - " },\n" + - " \"num_uses\": " + TOKEN_NUM_USES + ",\n" + - " \"orphan\": " + TOKEN_ORPHAN + ",\n" + - " \"path\": \"" + TOKEN_PATH + "\",\n" + - " \"policies\": [\n" + - " \"" + TOKEN_POLICY_1 + "\", \n" + - " \"" + TOKEN_POLICY_2 + "\"\n" + - " ],\n" + - " \"renewable\": " + TOKEN_RENEWABLE + ",\n" + - " \"ttl\": " + RES_TTL + ",\n" + - " \"type\": \"" + TOKEN_TYPE + "\"\n" + - " },\n" + - " \"warnings\": null,\n" + - " \"auth\": null,\n" + - " \"mount_type\": \"" + MOUNT_TYPE + "\"\n" + - "}"; + " \"lease_id\": \"\",\n" + + " \"renewable\": " + RES_RENEWABLE + ",\n" + + " \"lease_duration\": " + RES_LEASE_DURATION + ",\n" + + " \"data\": {\n" + + " \"accessor\": \"" + TOKEN_ACCESSOR + "\",\n" + + " \"creation_time\": " + TOKEN_CREATION_TIME + ",\n" + + " \"creation_ttl\": " + TOKEN_TTL + ",\n" + + " \"display_name\": \"" + TOKEN_DISPLAY_NAME + "\",\n" + + " \"entity_id\": \"" + TOKEN_ENTITY_ID + "\",\n" + + " \"expire_time\": \"" + TOKEN_EXPIRE_TIME + "\",\n" + + " \"explicit_max_ttl\": \"" + TOKEN_EXPLICIT_MAX_TTL + "\",\n" + + " \"id\": \"" + TOKEN_ID + "\",\n" + + " \"issue_time\": \"" + TOKEN_ISSUE_TIME + "\",\n" + + " \"meta\": {\n" + + " \"" + TOKEN_META_KEY + "\": \"" + TOKEN_META_VALUE + "\"\n" + + " },\n" + + " \"num_uses\": " + TOKEN_NUM_USES + ",\n" + + " \"orphan\": " + TOKEN_ORPHAN + ",\n" + + " \"path\": \"" + TOKEN_PATH + "\",\n" + + " \"policies\": [\n" + + " \"" + TOKEN_POLICY_1 + "\", \n" + + " \"" + TOKEN_POLICY_2 + "\"\n" + + " ],\n" + + " \"renewable\": " + TOKEN_RENEWABLE + ",\n" + + " \"ttl\": " + RES_TTL + ",\n" + + " \"type\": \"" + TOKEN_TYPE + "\"\n" + + " },\n" + + " \"warnings\": null,\n" + + " \"auth\": null,\n" + + " \"mount_type\": \"" + MOUNT_TYPE + "\"\n" + + "}"; TokenResponseTest() { super(TokenResponse.class); @@ -117,8 +117,8 @@ class TokenResponseTest extends AbstractModelTest { @Test void jsonRoundtrip() { TokenResponse res = assertDoesNotThrow( - () -> objectMapper.readValue(RES_JSON, TokenResponse.class), - "TokenResponse deserialization failed" + () -> objectMapper.readValue(RES_JSON, TokenResponse.class), + "TokenResponse deserialization failed" ); assertNotNull(res, "Parsed response is NULL"); assertEquals(RES_LEASE_DURATION, res.getLeaseDuration(), "Incorrect lease duration"); diff --git a/src/test/java/de/stklcode/jvault/connector/model/response/TransitResponseTest.java b/src/test/java/de/stklcode/jvault/connector/model/response/TransitResponseTest.java index 0510e1c..4a0e587 100644 --- a/src/test/java/de/stklcode/jvault/connector/model/response/TransitResponseTest.java +++ b/src/test/java/de/stklcode/jvault/connector/model/response/TransitResponseTest.java @@ -46,11 +46,9 @@ class TransitResponseTest extends AbstractModelTest { "\"sum\": \"" + SUM + "\"" ), TransitResponse.class - ); - } catch (JsonProcessingException e) { - fail("Creation of full model failed", e); - return null; - } + ), + "Creation of full model failed" + ); } @Test diff --git a/src/test/java/de/stklcode/jvault/connector/test/VaultConfiguration.java b/src/test/java/de/stklcode/jvault/connector/test/VaultConfiguration.java index 1233d04..22c3c9a 100644 --- a/src/test/java/de/stklcode/jvault/connector/test/VaultConfiguration.java +++ b/src/test/java/de/stklcode/jvault/connector/test/VaultConfiguration.java @@ -93,14 +93,14 @@ public class VaultConfiguration { @Override public String toString() { return "storage \"file\" {\n" + - " path = \"" + dataLocation + "\"\n" + - "}\n" + - "listener \"tcp\" {\n" + - " address = \"" + host + ":" + port + "\"\n" + - ((disableTLS) ? " tls_disable = 1\n" : "") + - ((certFile != null) ? " tls_cert_file = \"" + certFile + "\"\n" : "") + - ((keyFile != null) ? " tls_key_file = \"" + keyFile + "\"\n" : "") + - "}\n" + - ((disableMlock) ? "disable_mlock = true" : ""); + " path = \"" + dataLocation + "\"\n" + + "}\n" + + "listener \"tcp\" {\n" + + " address = \"" + host + ":" + port + "\"\n" + + ((disableTLS) ? " tls_disable = 1\n" : "") + + ((certFile != null) ? " tls_cert_file = \"" + certFile + "\"\n" : "") + + ((keyFile != null) ? " tls_key_file = \"" + keyFile + "\"\n" : "") + + "}\n" + + ((disableMlock) ? "disable_mlock = true" : ""); } }