Skip to content

Commit

Permalink
Merge 80f236b into 3714f2a
Browse files Browse the repository at this point in the history
  • Loading branch information
jkurra-hw committed Oct 6, 2020
2 parents 3714f2a + 80f236b commit be3151b
Show file tree
Hide file tree
Showing 8 changed files with 461 additions and 35 deletions.
73 changes: 73 additions & 0 deletions src/main/java/com/hyperwallet/clientsdk/Hyperwallet.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,79 @@ public HyperwalletAuthenticationToken getAuthenticationToken(String token) {
return apiClient.post(urlString, null, HyperwalletAuthenticationToken.class);
}

/**
* Create User Status transition
*
* @param userToken String
* @param transition Hyperwallet Status Transition
* @return HyperwalletStatusTransition new status for Hyperwallet User
*/
public HyperwalletStatusTransition createUserStatusTransition(String userToken, HyperwalletStatusTransition transition) {
if (userToken == null) {
throw new HyperwalletException("User token may not be present");
}
if (transition == null) {
throw new HyperwalletException("Transition is required");
}

transition = copy(transition);
transition.setCreatedOn(null);
transition.setFromStatus(null);
transition.setToStatus(null);

return apiClient.post(url + "/users/" + userToken + "/status-transitions", transition, HyperwalletStatusTransition.class);
}

/**
* Activate a User
*
* @param userToken User token
* @return The status transition
*/
public HyperwalletStatusTransition activateUser(String userToken) {
return createUserStatusTransition(userToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.ACTIVATED));
}

/**
* De-activate a User
*
* @param userToken User token
* @return The status transition
*/
public HyperwalletStatusTransition deactivateUser(String userToken) {
return createUserStatusTransition(userToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.DE_ACTIVATED));
}

/**
* Lock a User account
*
* @param userToken User token
* @return The status transition
*/
public HyperwalletStatusTransition lockUser(String userToken) {
return createUserStatusTransition(userToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.LOCKED));
}

/**
* Freeze a User account
*
* @param userToken User token
* @return The status transition
*/
public HyperwalletStatusTransition freezeUser(String userToken) {
return createUserStatusTransition(userToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.FROZEN));
}

/**
* Pre-activate a User account
*
* @param userToken User token
* @return The status transition
*/
public HyperwalletStatusTransition preactivateUser(String userToken) {
return createUserStatusTransition(userToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.PRE_ACTIVATED));
}

/**
* Get User Status Transition
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ public boolean isRequired() {
return isRequired;
}

public Field setRequired(boolean required) {
isRequired = required;
public Field setIsRequired(boolean isRequired) {
this.isRequired = isRequired;
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static enum BusinessContactRole {DIRECTOR, OWNER, OTHER}

public static enum Status {PRE_ACTIVATED, ACTIVATED, LOCKED, FROZEN, DE_ACTIVATED}

public static enum VerificationStatus {UNDER_REVIEW, VERIFIED, REQUIRED, NOT_REQUIRED}
public static enum VerificationStatus {UNDER_REVIEW, VERIFIED, REQUIRED, NOT_REQUIRED, REQUESTED}

private String token;
private Status status;
Expand Down
142 changes: 113 additions & 29 deletions src/test/java/com/hyperwallet/clientsdk/HyperwalletIT.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,7 @@
package com.hyperwallet.clientsdk;

import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.ACTIVATED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.CANCELLED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.COMPLETED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.CREATED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.DE_ACTIVATED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.QUOTED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.RECALLED;
import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.SCHEDULED;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItems;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
import static org.mockserver.model.Header.header;
import static org.mockserver.model.JsonBody.json;
import static org.testng.Assert.fail;

import com.hyperwallet.clientsdk.model.HyperwalletBankCard;
import com.hyperwallet.clientsdk.model.HyperwalletError;
import com.hyperwallet.clientsdk.model.HyperwalletList;
import com.hyperwallet.clientsdk.model.HyperwalletPaperCheck;
import com.hyperwallet.clientsdk.model.HyperwalletPayPalAccount;
import com.hyperwallet.clientsdk.model.HyperwalletPrepaidCard;
import com.hyperwallet.clientsdk.model.HyperwalletStatusTransition;
import com.hyperwallet.clientsdk.model.HyperwalletTransfer;
import com.hyperwallet.clientsdk.model.HyperwalletTransferMethod;
import com.hyperwallet.clientsdk.model.HyperwalletUser;
import com.hyperwallet.clientsdk.model.*;
import com.hyperwallet.clientsdk.model.HyperwalletUser.*;
import org.mockserver.integration.ClientAndServer;
import org.mockserver.model.HttpRequest;
import org.mockserver.model.HttpResponse;
Expand All @@ -45,6 +18,14 @@
import java.util.Map;
import java.util.Scanner;

import static com.hyperwallet.clientsdk.model.HyperwalletStatusTransition.Status.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
import static org.mockserver.model.Header.header;
import static org.mockserver.model.JsonBody.json;
import static org.testng.Assert.fail;

public class HyperwalletIT {

private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss z");
Expand Down Expand Up @@ -117,6 +98,109 @@ public void testGetUserStatusTransition() throws Exception {
assertThat(returnValue.getToStatus(), is(equalTo(DE_ACTIVATED)));
}

@Test
public void testUpdateUserVerificationStatus() throws Exception {
String functionality = "updateUser";
initMockServer(functionality);
HyperwalletUser hyperwalletUser = new HyperwalletUser();
hyperwalletUser.token("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca");
hyperwalletUser.verificationStatus(VerificationStatus.REQUESTED);

HyperwalletUser returnValue;
try {
returnValue = client.updateUser(hyperwalletUser);
} catch (Exception e) {
mockServer.verify(parseRequest(functionality));
throw e;
}

assertThat(returnValue.getToken(), is(equalTo("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca")));
assertThat(returnValue.getStatus(), is(equalTo(Status.PRE_ACTIVATED)));
assertThat(returnValue.getVerificationStatus(), is(equalTo(VerificationStatus.REQUIRED)));
assertThat(returnValue.getCreatedOn(), is(equalTo(dateFormat.parse("2020-10-01T22:22:01 UTC"))));
assertThat(returnValue.getClientUserId(), is(equalTo("sf1601571120")));
assertThat(returnValue.getProfileType(), is(equalTo(ProfileType.BUSINESS)));
assertThat(returnValue.getBusinessName(), is(equalTo("Big Baller Payments")));
assertThat(returnValue.getBusinessRegistrationId(), is(equalTo("12341212")));
assertThat(returnValue.getBusinessRegistrationStateProvince(), is(equalTo("test")));
assertThat(returnValue.getBusinessRegistrationCountry(), is(equalTo("CN")));
assertThat(returnValue.getBusinessRegistrationCountry(), is(equalTo("CN")));
assertThat(returnValue.getBusinessContactRole(), is(equalTo(BusinessContactRole.OWNER)));
assertThat(returnValue.getBusinessOperatingName(), is(equalTo("Big Baller Payments Operating")));
assertThat(returnValue.getDateOfBirth(), is(equalTo(dateFormat.parse("1980-01-01T00:00:00 UTC"))));
assertThat(returnValue.getGender(), is(equalTo(Gender.MALE)));
assertThat(returnValue.getPhoneNumber(), is(equalTo("647-90531")));
assertThat(returnValue.getMobileNumber(), is(equalTo("605-555-1323")));
assertThat(returnValue.getEmail(), is(equalTo("sf1601571120@sink.sendgrid.net")));
assertThat(returnValue.getGovernmentId(), is(equalTo("333333333")));
assertThat(returnValue.getEmployerId(), is(equalTo("222222222")));
assertThat(returnValue.getProgramToken(), is(equalTo("prg-eedaf875-01f1-4524-8b94-d4936255af78")));
}

@Test
public void testUpdateUserVerificationStatus_withoutRole() {
HyperwalletUser hyperwalletUser = new HyperwalletUser();
hyperwalletUser.token("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca");
hyperwalletUser.verificationStatus(VerificationStatus.REQUESTED);

HyperwalletUser returnValue;
try {
returnValue = client.updateUser(hyperwalletUser);
} catch (HyperwalletException e) {

assertThat(e.getErrorMessage(), is(equalTo("Not Found")));
assertThat(e.getErrorCode(), is(equalTo("404")));
}
}

@Test
public void testUpdateUserVerificationStatus_inValidStatus() {
HyperwalletUser hyperwalletUser = new HyperwalletUser();
hyperwalletUser.token("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca");
hyperwalletUser.status(Status.ACTIVATED);

HyperwalletUser returnValue;
try {
returnValue = client.updateUser(hyperwalletUser);
} catch (HyperwalletException e) {

assertThat(e.getErrorMessage(), is(equalTo("Not Found")));
assertThat(e.getErrorCode(), is(equalTo("404")));
}
}

@Test
public void testUpdateUserVerificationStatus_otherThanRequested() {
HyperwalletUser hyperwalletUser = new HyperwalletUser();
hyperwalletUser.token("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca");
hyperwalletUser.verificationStatus(VerificationStatus.VERIFIED);

HyperwalletUser returnValue;
try {
returnValue = client.updateUser(hyperwalletUser);
} catch (HyperwalletException e) {

assertThat(e.getErrorMessage(), is(equalTo("Not Found")));
assertThat(e.getErrorCode(), is(equalTo("404")));
}
}

@Test
public void testUpdateUserVerificationStatus_otherThanNotRequiredOrRequired() {
HyperwalletUser hyperwalletUser = new HyperwalletUser();
hyperwalletUser.token("usr-b8e7ff1d-a3c6-45a0-ae0a-62b74580caca");
hyperwalletUser.verificationStatus(VerificationStatus.REQUIRED);

HyperwalletUser returnValue;
try {
returnValue = client.updateUser(hyperwalletUser);
} catch (HyperwalletException e) {

assertThat(e.getErrorMessage(), is(equalTo("Not Found")));
assertThat(e.getErrorCode(), is(equalTo("404")));
}
}

//
// Prepaid Card
//
Expand Down

0 comments on commit be3151b

Please sign in to comment.