From 4f7bd7e9b72049fb97357d59dcc8a6565088ad3a Mon Sep 17 00:00:00 2001 From: saileshwar-skyflow Date: Thu, 11 Sep 2025 23:59:56 +0530 Subject: [PATCH 1/2] SK-2291: add unit test cases --- .../test/java/com/skyflow/SkyflowTests.java | 0 .../java/com/skyflow/VaultClientTests.java | 0 .../java/com/skyflow/utils/UtilsTests.java | 0 .../controller/VaultControllerTests.java | 11 +- .../vault/data/DetokenizeRequestTests.java | 181 ++++++++++++++++++ .../com/skyflow/vault/data/InsertTests.java | 0 6 files changed, 182 insertions(+), 10 deletions(-) rename v3/{ => src}/test/java/com/skyflow/SkyflowTests.java (100%) rename v3/{ => src}/test/java/com/skyflow/VaultClientTests.java (100%) rename v3/{ => src}/test/java/com/skyflow/utils/UtilsTests.java (100%) rename v3/{ => src}/test/java/com/skyflow/vault/controller/VaultControllerTests.java (96%) create mode 100644 v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java rename v3/{ => src}/test/java/com/skyflow/vault/data/InsertTests.java (100%) diff --git a/v3/test/java/com/skyflow/SkyflowTests.java b/v3/src/test/java/com/skyflow/SkyflowTests.java similarity index 100% rename from v3/test/java/com/skyflow/SkyflowTests.java rename to v3/src/test/java/com/skyflow/SkyflowTests.java diff --git a/v3/test/java/com/skyflow/VaultClientTests.java b/v3/src/test/java/com/skyflow/VaultClientTests.java similarity index 100% rename from v3/test/java/com/skyflow/VaultClientTests.java rename to v3/src/test/java/com/skyflow/VaultClientTests.java diff --git a/v3/test/java/com/skyflow/utils/UtilsTests.java b/v3/src/test/java/com/skyflow/utils/UtilsTests.java similarity index 100% rename from v3/test/java/com/skyflow/utils/UtilsTests.java rename to v3/src/test/java/com/skyflow/utils/UtilsTests.java diff --git a/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java similarity index 96% rename from v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java rename to v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java index 605d29eb..cf06b6bb 100644 --- a/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -61,15 +61,6 @@ private void writeEnv(String content) { } catch (IOException e) { throw new RuntimeException(e); } - // Print the contents of the .env file - try (Scanner scanner = new Scanner(envFile)) { - System.out.println("Current .env contents:"); - while (scanner.hasNextLine()) { - System.out.println(scanner.nextLine()); - } - } catch (IOException e) { - System.out.println("Could not read .env file: " + e.getMessage()); - } } private VaultController createController() throws SkyflowException { @@ -395,7 +386,7 @@ public void testFractionalLastBatch() throws Exception { // Last batch should have 50 records, concurrency should be 101 assertEquals(100, getPrivateInt(controller, "insertBatchSize")); - assertEquals(Constants.INSERT_CONCURRENCY_LIMIT.intValue(), getPrivateInt(controller, "insertConcurrencyLimit")); + assertEquals(10, getPrivateInt(controller, "insertConcurrencyLimit")); } private int getPrivateInt(Object obj, String field) throws Exception { diff --git a/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java b/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java new file mode 100644 index 00000000..8b67b715 --- /dev/null +++ b/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java @@ -0,0 +1,181 @@ +package com.skyflow.vault.data; + +import com.skyflow.errors.ErrorCode; +import com.skyflow.errors.ErrorMessage; +import com.skyflow.errors.SkyflowException; +import com.skyflow.utils.Constants; +import com.skyflow.utils.Utils; +import com.skyflow.utils.validations.Validations; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class DetokenizeRequestTests { + @Test + public void testDetokenizeRequestBuilderAndGetters() { + List tokens = Arrays.asList("token1", "token2"); + TokenGroupRedactions group = TokenGroupRedactions.builder() + .tokenGroupName("group1") + .redaction("PLAIN_TEXT") + .build(); + List groupRedactions = Collections.singletonList(group); + + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(groupRedactions) + .build(); + + Assert.assertEquals(tokens, request.getTokens()); + Assert.assertEquals(groupRedactions, request.getTokenGroupRedactions()); + } + + @Test + public void testTokenGroupRedactionsBuilderAndGetters() { + TokenGroupRedactions group = TokenGroupRedactions.builder() + .tokenGroupName("groupA") + .redaction("MASKED") + .build(); + Assert.assertEquals("groupA", group.getTokenGroupName()); + Assert.assertEquals("MASKED", group.getRedaction()); + } + + @Test + public void testValidateDetokenizeRequestValid() { + try { + List tokens = Arrays.asList("token1", "token2"); + TokenGroupRedactions group = TokenGroupRedactions.builder() + .tokenGroupName("group1") + .redaction("PLAIN_TEXT") + .build(); + List groupRedactions = Collections.singletonList(group); + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(groupRedactions) + .build(); + Validations.validateDetokenizeRequest(request); + } catch (SkyflowException e) { + Assert.fail("Should not have thrown exception for valid request"); + } + } + + @Test + public void testValidateDetokenizeRequestNull() { + try { + Validations.validateDetokenizeRequest(null); + Assert.fail("Should have thrown exception for null request"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.DetokenizeRequestNull.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestEmptyTokens() { + try { + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(new ArrayList<>()) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for empty tokens"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.EmptyDetokenizeData.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestNullOrEmptyToken() { + try { + List tokens = Arrays.asList("token1", null, ""); + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for null/empty token"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.EmptyTokenInDetokenizeData.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestTokensSizeExceed() { + try { + List tokens = new ArrayList<>(); + for (int i = 0; i < 10001; i++) { + tokens.add("token" + i); + } + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for tokens size exceed"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.TokensSizeExceedError.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestNullGroupRedaction() { + try { + List tokens = Arrays.asList("token1"); + List groupRedactions = Arrays.asList((TokenGroupRedactions) null); + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(groupRedactions) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for null group redaction"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.NullTokenGroupRedactions.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestEmptyGroupName() { + try { + List tokens = Arrays.asList("token1"); + TokenGroupRedactions group = TokenGroupRedactions.builder() + .tokenGroupName("") + .redaction("PLAIN_TEXT") + .build(); + List groupRedactions = Collections.singletonList(group); + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(groupRedactions) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for empty group name"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.NullTokenGroupNameInTokenGroup.getMessage(), e.getMessage()); + } + } + + @Test + public void testValidateDetokenizeRequestEmptyRedaction() { + try { + List tokens = Arrays.asList("token1"); + TokenGroupRedactions group = TokenGroupRedactions.builder() + .tokenGroupName("group1") + .redaction("") + .build(); + List groupRedactions = Collections.singletonList(group); + DetokenizeRequest request = DetokenizeRequest.builder() + .tokens(tokens) + .tokenGroupRedactions(groupRedactions) + .build(); + Validations.validateDetokenizeRequest(request); + Assert.fail("Should have thrown exception for empty redaction"); + } catch (SkyflowException e) { + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.NullRedactionInTokenGroup.getMessage(), e.getMessage()); + } + } +} diff --git a/v3/test/java/com/skyflow/vault/data/InsertTests.java b/v3/src/test/java/com/skyflow/vault/data/InsertTests.java similarity index 100% rename from v3/test/java/com/skyflow/vault/data/InsertTests.java rename to v3/src/test/java/com/skyflow/vault/data/InsertTests.java From 357e4267d583e5eae29ff947aa68f86d68ce61aa Mon Sep 17 00:00:00 2001 From: saileshwar-skyflow Date: Wed, 17 Sep 2025 17:38:22 +0530 Subject: [PATCH 2/2] SK-2291: add constants in unit test cases --- .../vault/controller/VaultControllerTests.java | 13 ++++++------- .../skyflow/vault/data/DetokenizeRequestTests.java | 2 -- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java index cf06b6bb..938799b6 100644 --- a/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/v3/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -19,7 +19,6 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; -import java.util.Scanner; import static org.junit.Assert.*; @@ -249,7 +248,7 @@ public void testBatchSizeExceedsMax() throws Exception { // Ignore, Testing concurrency/batch config } - assertEquals(1000, getPrivateInt(controller, "insertBatchSize")); + assertEquals(Constants.MAX_INSERT_BATCH_SIZE.intValue(), getPrivateInt(controller, "insertBatchSize")); } @Test @@ -265,7 +264,7 @@ public void testConcurrencyExceedsMax() throws Exception { // Ignore, Testing concurrency/batch config } - assertEquals(1, getPrivateInt(controller, "insertConcurrencyLimit")); + assertEquals(Constants.INSERT_CONCURRENCY_LIMIT.intValue(), getPrivateInt(controller, "insertConcurrencyLimit")); } @Test @@ -280,7 +279,7 @@ public void testBatchSizeZeroOrNegative() throws Exception { // Ignore, Testing concurrency/batch config } - assertEquals(50, getPrivateInt(controller, "insertBatchSize")); + assertEquals(Constants.INSERT_BATCH_SIZE.intValue(), getPrivateInt(controller, "insertBatchSize")); writeEnv("INSERT_BATCH_SIZE=-5"); @@ -290,7 +289,7 @@ public void testBatchSizeZeroOrNegative() throws Exception { // Ignore, Testing concurrency/batch config } - assertEquals(50, getPrivateInt(controller, "insertBatchSize")); + assertEquals(Constants.INSERT_BATCH_SIZE.intValue(), getPrivateInt(controller, "insertBatchSize")); } @Test @@ -369,7 +368,7 @@ public void testHighConcurrencyForLowRecords() throws Exception { // Only 10 batches needed, so concurrency should be clamped to 10 assertEquals(1000, getPrivateInt(controller, "insertBatchSize")); - assertEquals(10, getPrivateInt(controller, "insertConcurrencyLimit")); + assertEquals(Constants.MAX_INSERT_CONCURRENCY_LIMIT.intValue(), getPrivateInt(controller, "insertConcurrencyLimit")); } @@ -386,7 +385,7 @@ public void testFractionalLastBatch() throws Exception { // Last batch should have 50 records, concurrency should be 101 assertEquals(100, getPrivateInt(controller, "insertBatchSize")); - assertEquals(10, getPrivateInt(controller, "insertConcurrencyLimit")); + assertEquals(Constants.INSERT_CONCURRENCY_LIMIT.intValue(), getPrivateInt(controller, "insertConcurrencyLimit")); } private int getPrivateInt(Object obj, String field) throws Exception { diff --git a/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java b/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java index 8b67b715..fc729a08 100644 --- a/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java +++ b/v3/src/test/java/com/skyflow/vault/data/DetokenizeRequestTests.java @@ -3,8 +3,6 @@ import com.skyflow.errors.ErrorCode; import com.skyflow.errors.ErrorMessage; import com.skyflow.errors.SkyflowException; -import com.skyflow.utils.Constants; -import com.skyflow.utils.Utils; import com.skyflow.utils.validations.Validations; import org.junit.Assert; import org.junit.Test;