Skip to content

Commit

Permalink
Adds custom properties to Sign up (#252)
Browse files Browse the repository at this point in the history
  • Loading branch information
soareswallace authored Oct 22, 2024
1 parent d53f506 commit 8b86a7b
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/com/incognia/api/IncogniaAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -22,4 +25,8 @@ public class PostSignupRequestBody {
String policyId;
String accountId;
List<AdditionalLocation> additionalLocations;

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Builder.Default
Map<String, Object> customProperties = Collections.emptyMap();
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -17,4 +18,5 @@ public class RegisterSignupRequest {
String policyId;
String accountId;
List<AdditionalLocation> additionalLocations;
Map<String, Object> customProperties;
}
7 changes: 7 additions & 0 deletions src/test/java/com/incognia/api/IncogniaAPITest.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,16 @@ void testRegisterSignup_whenDataIsValid() {
String policyId = UUID.randomUUID().toString();
String externalId = "external-id";
Address address = AddressFixture.ADDRESS_ADDRESS_LINE;
Map<String, Object> map = new HashMap<>();
map.put("custom-property", "custom-value");

TokenAwareDispatcher dispatcher = new TokenAwareDispatcher(token, CLIENT_ID, CLIENT_SECRET);
dispatcher.setExpectedAddressLine(address.getAddressLine());
dispatcher.setExpectedRequestToken(requestToken);
dispatcher.setExpectedExternalId(externalId);
dispatcher.setExpectedPolicyId(policyId);
dispatcher.setExpectedAccountId(accountId);
dispatcher.setExpectedCustomProperties(map);
mockServer.setDispatcher(dispatcher);
RegisterSignupRequest registerSignupRequest =
RegisterSignupRequest.builder()
Expand All @@ -103,6 +106,7 @@ void testRegisterSignup_whenDataIsValid() {
.policyId(policyId)
.externalId(externalId)
.address(address)
.customProperties(map)
.build();
SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest);
assertThat(signupAssessment)
Expand Down Expand Up @@ -157,13 +161,15 @@ void testRegisterSignup_withEmptyAddress() {
dispatcher.setExpectedExternalId(externalId);
dispatcher.setExpectedPolicyId(policyId);
dispatcher.setExpectedAccountId(accountId);
dispatcher.setExpectedCustomProperties(null);
mockServer.setDispatcher(dispatcher);
RegisterSignupRequest registerSignupRequest =
RegisterSignupRequest.builder()
.requestToken(requestToken)
.accountId(accountId)
.policyId(policyId)
.externalId(externalId)
.customProperties(null)
.build();
SignupAssessment signupAssessment = client.registerSignup(registerSignupRequest);
assertThat(signupAssessment)
Expand Down Expand Up @@ -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");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -37,6 +38,7 @@ public class TokenAwareDispatcher extends Dispatcher {
@Setter private String expectedAccountId;
@Setter private String expectedPolicyId;
@Setter private String expectedAddressLine;
@Setter private Map<String, Object> expectedCustomProperties;
@Setter private String expectedSessionToken;
@Setter private String expectedRequestToken;
@Setter private UUID expectedSignupId;
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 8b86a7b

Please sign in to comment.