From 8b86a7b3d5b798474b4710628130ff8934120ed8 Mon Sep 17 00:00:00 2001 From: Wallace Soares Date: Tue, 22 Oct 2024 11:57:28 -0300 Subject: [PATCH] Adds custom properties to Sign up (#252) --- src/main/java/com/incognia/api/IncogniaAPI.java | 1 + .../com/incognia/onboarding/PostSignupRequestBody.java | 7 +++++++ .../com/incognia/onboarding/RegisterSignupRequest.java | 2 ++ src/test/java/com/incognia/api/IncogniaAPITest.java | 7 +++++++ .../com/incognia/api/clients/TokenAwareDispatcher.java | 3 +++ 5 files changed, 20 insertions(+) diff --git a/src/main/java/com/incognia/api/IncogniaAPI.java b/src/main/java/com/incognia/api/IncogniaAPI.java index c5ac908..e3a39ea 100644 --- a/src/main/java/com/incognia/api/IncogniaAPI.java +++ b/src/main/java/com/incognia/api/IncogniaAPI.java @@ -149,6 +149,7 @@ public SignupAssessment registerSignup(RegisterSignupRequest request) throws Inc .policyId(request.getPolicyId()) .accountId(request.getAccountId()) .additionalLocations(request.getAdditionalLocations()) + .customProperties(request.getCustomProperties()) .build(); return tokenAwareNetworkingClient.doPost( "api/v2/onboarding/signups", postSignupRequestBody, SignupAssessment.class); diff --git a/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java b/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java index 2b125d8..0a03c75 100644 --- a/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java +++ b/src/main/java/com/incognia/onboarding/PostSignupRequestBody.java @@ -1,9 +1,12 @@ package com.incognia.onboarding; +import com.fasterxml.jackson.annotation.JsonInclude; import com.incognia.common.AdditionalLocation; import com.incognia.common.Coordinates; import com.incognia.common.StructuredAddress; +import java.util.Collections; import java.util.List; +import java.util.Map; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -22,4 +25,8 @@ public class PostSignupRequestBody { String policyId; String accountId; List additionalLocations; + + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @Builder.Default + Map customProperties = Collections.emptyMap(); } diff --git a/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java b/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java index cccf0e2..4ab0a05 100644 --- a/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java +++ b/src/main/java/com/incognia/onboarding/RegisterSignupRequest.java @@ -3,6 +3,7 @@ import com.incognia.common.AdditionalLocation; import com.incognia.common.Address; import java.util.List; +import java.util.Map; import lombok.Builder; import lombok.Value; import org.jetbrains.annotations.Nullable; @@ -17,4 +18,5 @@ public class RegisterSignupRequest { String policyId; String accountId; List additionalLocations; + Map customProperties; } diff --git a/src/test/java/com/incognia/api/IncogniaAPITest.java b/src/test/java/com/incognia/api/IncogniaAPITest.java index e0e1a94..ad6e40a 100644 --- a/src/test/java/com/incognia/api/IncogniaAPITest.java +++ b/src/test/java/com/incognia/api/IncogniaAPITest.java @@ -88,6 +88,8 @@ void testRegisterSignup_whenDataIsValid() { String policyId = UUID.randomUUID().toString(); String externalId = "external-id"; Address address = AddressFixture.ADDRESS_ADDRESS_LINE; + Map map = new HashMap<>(); + map.put("custom-property", "custom-value"); TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET); dispatcher.setExpectedAddressLine(address.getAddressLine()); @@ -95,6 +97,7 @@ void testRegisterSignup_whenDataIsValid() { dispatcher.setExpectedExternalId(externalId); dispatcher.setExpectedPolicyId(policyId); dispatcher.setExpectedAccountId(accountId); + dispatcher.setExpectedCustomProperties(map); mockServer.setDispatcher(dispatcher); RegisterSignupRequest registerSignupRequest = RegisterSignupRequest.builder() @@ -103,6 +106,7 @@ void testRegisterSignup_whenDataIsValid() { .policyId(policyId) .externalId(externalId) .address(address) + .customProperties(map) .build(); SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest); assertThat(signupAssessment) @@ -157,6 +161,7 @@ void testRegisterSignup_withEmptyAddress() { dispatcher.setExpectedExternalId(externalId); dispatcher.setExpectedPolicyId(policyId); dispatcher.setExpectedAccountId(accountId); + dispatcher.setExpectedCustomProperties(null); mockServer.setDispatcher(dispatcher); RegisterSignupRequest registerSignupRequest = RegisterSignupRequest.builder() @@ -164,6 +169,7 @@ void testRegisterSignup_withEmptyAddress() { .accountId(accountId) .policyId(policyId) .externalId(externalId) + .customProperties(null) .build(); SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest); assertThat(signupAssessment) @@ -268,6 +274,7 @@ void testRegisterSignup_whenEmptyRequestToken() { RegisterSignupRequest.builder() .requestToken("") .address(AddressFixture.ADDRESS_ADDRESS_LINE) + .customProperties(null) .build())) .isInstanceOf(IllegalArgumentException.class) .hasMessage("'request token' cannot be empty"); diff --git a/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java b/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java index 6581729..f04936f 100644 --- a/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java +++ b/src/test/java/com/incognia/api/clients/TokenAwareDispatcher.java @@ -9,6 +9,7 @@ import com.incognia.transaction.PostTransactionRequestBody; import java.nio.charset.StandardCharsets; import java.util.Base64; +import java.util.Map; import java.util.UUID; import lombok.Getter; import lombok.Setter; @@ -37,6 +38,7 @@ public class TokenAwareDispatcher extends Dispatcher { @Setter private String expectedAccountId; @Setter private String expectedPolicyId; @Setter private String expectedAddressLine; + @Setter private Map expectedCustomProperties; @Setter private String expectedSessionToken; @Setter private String expectedRequestToken; @Setter private UUID expectedSignupId; @@ -139,6 +141,7 @@ private MockResponse handlePostSignup(@NotNull RecordedRequest request) assertThat(postSignupRequestBody.getExternalId()).isEqualTo(expectedExternalId); assertThat(postSignupRequestBody.getPolicyId()).isEqualTo(expectedPolicyId); assertThat(postSignupRequestBody.getAddressLine()).isEqualTo(expectedAddressLine); + assertThat(postSignupRequestBody.getCustomProperties()).isEqualTo(expectedCustomProperties); String response = ResourceUtils.getResourceFileAsString( postSignupRequestBody.getAddressLine() != null