Skip to content

Commit

Permalink
Merge 702857b into d243326
Browse files Browse the repository at this point in the history
  • Loading branch information
ramahalingam committed Sep 10, 2020
2 parents d243326 + 702857b commit 236fcd0
Show file tree
Hide file tree
Showing 13 changed files with 278 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.hyperwallet.clientsdk.model;

import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hyperwallet.clientsdk.util.HyperwalletJsonConfiguration;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date;
import java.util.List;

@JsonFilter(HyperwalletJsonConfiguration.INCLUSION_FILTER)
@XmlRootElement
Expand All @@ -30,10 +32,11 @@ public enum CardType {PERSONALIZED, INSTANT_ISSUE, VIRTUAL}
private String cardPackage;
private String cardNumber;
private Brand cardBrand;

@JsonFormat(pattern = "yyyy-MM", timezone = "UTC")
private Date dateOfExpiry;

private String userToken;
private List<HyperwalletLink> links;

public HyperwalletTransferMethod.Type getType() {
return type;
Expand Down Expand Up @@ -286,4 +289,25 @@ public HyperwalletPrepaidCard clearUserToken() {
this.userToken = null;
return this;
}

public List<HyperwalletLink> getLinks() {
return links;
}

public void setLinks(List<HyperwalletLink> links) {
addField("links", links);
this.links = links;
}

public HyperwalletPrepaidCard links(List<HyperwalletLink> links) {
addField("links", links);
this.links = links;
return this;
}

public HyperwalletPrepaidCard clearLinks() {
clearField("links");
this.links = null;
return this;
}
}
131 changes: 128 additions & 3 deletions src/test/java/com/hyperwallet/clientsdk/HyperwalletIT.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.hyperwallet.clientsdk;

import com.hyperwallet.clientsdk.model.*;
import com.hyperwallet.clientsdk.model.HyperwalletTransferMethod.Type;
import org.mockserver.integration.ClientAndServer;
import org.mockserver.model.HttpRequest;
import org.mockserver.model.HttpResponse;
Expand Down Expand Up @@ -100,16 +101,97 @@ public void testGetUserStatusTransition() throws Exception {
//
// Prepaid Card
//
@Test
public void testCreatePrepaidCard() throws Exception {
String functionality = "createPrepaidCard";
initMockServer(functionality);

HyperwalletPrepaidCard prepaidCard = new HyperwalletPrepaidCard()
.userToken("usr-c4292f1a-866f-4310-a289-b916853939de")
.type(Type.PREPAID_CARD);

HyperwalletPrepaidCard returnValue;
try {
returnValue = client.createPrepaidCard(prepaidCard);
} catch (Exception e) {
mockServer.verify(parseRequest(functionality));
throw e;
}

List<HyperwalletLink> hyperwalletLinks = new ArrayList<>();
HyperwalletLink hyperwalletLink = new HyperwalletLink();
hyperwalletLink.setHref(
"https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards/trm-7e915660-8c97-47bf"
+ "-8a4f-0c1bc890d46f");
Map<String, String> mapParams = new HashMap<>();
mapParams.put("rel", "self");
hyperwalletLink.setParams(mapParams);
hyperwalletLinks.add(hyperwalletLink);

assertThat(returnValue.getToken(), is(equalTo("trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f")));
assertThat(returnValue.getType(), is(equalTo(HyperwalletTransferMethod.Type.BANK_CARD)));
assertThat(returnValue.getStatus(), is(equalTo(HyperwalletTransferMethod.Status.ACTIVATED)));

HyperwalletLink actualHyperwalletLink = returnValue.getLinks().get(0);
HyperwalletLink expectedHyperwalletLink = hyperwalletLinks.get(0);
assertThat(actualHyperwalletLink.getHref(), is(equalTo(expectedHyperwalletLink.getHref())));
assertEquals(actualHyperwalletLink.getParams(), expectedHyperwalletLink.getParams());
}

@Test
public void testGetPrepaidCard() throws Exception {
String functionality = "getPrepaidCard";
initMockServer(functionality);

HyperwalletPrepaidCard prepaidCard = new HyperwalletPrepaidCard()
.userToken("usr-c4292f1a-866f-4310-a289-b916853939de")
.token("trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f");

HyperwalletPrepaidCard returnValue;
try {
returnValue = client.getPrepaidCard(prepaidCard.getUserToken(), prepaidCard.getToken());
} catch (Exception e) {
mockServer.verify(parseRequest(functionality));
throw e;
}

List<HyperwalletLink> hyperwalletLinks = new ArrayList<>();
HyperwalletLink hyperwalletLink = new HyperwalletLink();
hyperwalletLink.setHref(
"https://api.sandbox.hyperwallet.com/rest/v4/users/usr-d868bf2d-acf1-48de-9806-8cefcb6a40ad/prepaid-cards/trm-38e07e59-69d1-40bc"
+ "-bebc-af639b847410");
Map<String, String> mapParams = new HashMap<>();
mapParams.put("rel", "self");
hyperwalletLink.setParams(mapParams);
hyperwalletLinks.add(hyperwalletLink);

assertThat(returnValue.getToken(), is(equalTo("trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f")));
assertThat(returnValue.getType(), is(equalTo(Type.PREPAID_CARD)));
assertThat(returnValue.getStatus(), is(equalTo(HyperwalletTransferMethod.Status.ACTIVATED)));
assertThat(returnValue.getCreatedOn(), is(equalTo(dateFormat.parse("2020-09-07T18:05:09 UTC"))));
assertThat(returnValue.getTransferMethodCountry(), is(equalTo("US")));
assertThat(returnValue.getTransferMethodCurrency(), is(equalTo("USD")));
assertThat(returnValue.getCardPackage(), is(equalTo("L1")));
assertThat(returnValue.getCardType(), is(equalTo(HyperwalletPrepaidCard.CardType.PERSONALIZED)));
assertThat(returnValue.getCardNumber(), is(equalTo("************0727")));
assertThat(returnValue.getCardBrand(), is(equalTo(HyperwalletPrepaidCard.Brand.VISA)));
assertThat(returnValue.getDateOfExpiry(), is(equalTo(dateFormat.parse("2024-09-01T00:00:00 UTC"))));

HyperwalletLink actualHyperwalletLink = returnValue.getLinks().get(0);
HyperwalletLink expectedHyperwalletLink = hyperwalletLinks.get(0);
assertThat(actualHyperwalletLink.getHref(), is(equalTo(expectedHyperwalletLink.getHref())));
assertEquals(actualHyperwalletLink.getParams(), expectedHyperwalletLink.getParams());
}

@Test
public void testUpdatePrepaidCard() throws Exception {
String functionality = "updatePrepaidCard";
initMockServer(functionality);

HyperwalletPrepaidCard prepaidCard = new HyperwalletPrepaidCard()
.userToken("usr-c4292f1a-866f-4310-a289-b916853939de")
.token("trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f")
.cardPackage("US8419889B2");
.userToken("usr-c4292f1a-866f-4310-a289-b916853939de")
.token("trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f")
.cardPackage("US8419889B2");

HyperwalletPrepaidCard returnValue;
try {
Expand All @@ -132,6 +214,49 @@ public void testUpdatePrepaidCard() throws Exception {
assertThat(returnValue.getDateOfExpiry(), is(nullValue()));
}

@Test
public void testListPrepaidCard() throws Exception {
String functionality = "listPrepaidCard";
initMockServer(functionality);

HyperwalletPrepaidCard prepaidCard = new HyperwalletPrepaidCard()
.userToken("usr-c4292f1a-866f-4310-a289-b916853939de");

HyperwalletList<HyperwalletPrepaidCard> returnValue;
try {
returnValue = client.listPrepaidCards(prepaidCard.getUserToken());
} catch (Exception e) {
mockServer.verify(parseRequest(functionality));
throw e;
}

List<HyperwalletLink> hyperwalletLinks = new ArrayList<>();
HyperwalletLink hyperwalletLink = new HyperwalletLink();
hyperwalletLink.setHref("https://api.sandbox.hyperwallet.com/rest/v4/users/usr-d868bf2d-acf1-48de-9806-8cefcb6a40ad/prepaid-cards?limit=100");
Map<String, String> mapParams = new HashMap<>();
mapParams.put("rel", "self");
hyperwalletLink.setParams(mapParams);
hyperwalletLinks.add(hyperwalletLink);

HyperwalletPrepaidCard hyperwalletPrepaidCardResponse = returnValue.getData().get(0);
assertThat(hyperwalletPrepaidCardResponse.getToken(), is(equalTo("trm-38e07e59-69d1-40bc-bebc-af639b847410")));
assertThat(hyperwalletPrepaidCardResponse.getType(), is(equalTo(Type.PREPAID_CARD)));
assertThat(hyperwalletPrepaidCardResponse.getStatus(), is(equalTo(HyperwalletTransferMethod.Status.ACTIVATED)));
assertThat(hyperwalletPrepaidCardResponse.getCreatedOn(), is(equalTo(dateFormat.parse("2020-09-07T18:05:09 UTC"))));
assertThat(hyperwalletPrepaidCardResponse.getTransferMethodCountry(), is(equalTo("US")));
assertThat(hyperwalletPrepaidCardResponse.getTransferMethodCurrency(), is(equalTo("USD")));
assertThat(hyperwalletPrepaidCardResponse.getCardPackage(), is(equalTo("L1")));
assertThat(hyperwalletPrepaidCardResponse.getCardType(), is(equalTo(HyperwalletPrepaidCard.CardType.PERSONALIZED)));
assertThat(hyperwalletPrepaidCardResponse.getCardNumber(), is(equalTo("************0727")));
assertThat(hyperwalletPrepaidCardResponse.getCardBrand(), is(equalTo(HyperwalletPrepaidCard.Brand.VISA)));
assertThat(hyperwalletPrepaidCardResponse.getDateOfExpiry(), is(equalTo(dateFormat.parse("2024-09-01T00:00:00 UTC"))));

HyperwalletLink actualHyperwalletLink = returnValue.getLinks().get(0);
HyperwalletLink expectedHyperwalletLink = hyperwalletLinks.get(0);
assertThat(actualHyperwalletLink.getHref(), is(equalTo(expectedHyperwalletLink.getHref())));
assertEquals(actualHyperwalletLink.getParams(), expectedHyperwalletLink.getParams());
}

//
// Bank Cards
//
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package com.hyperwallet.clientsdk.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @author fkrauthan
*/
public class HyperwalletPrepaidCardTest extends BaseModelTest<HyperwalletPrepaidCard> {
protected HyperwalletPrepaidCard createBaseModel() {
HyperwalletPrepaidCard prepaidCard = new HyperwalletPrepaidCard();
List<HyperwalletLink> hyperwalletLinkList = new ArrayList<>();
HyperwalletLink hyperwalletLink = new HyperwalletLink();
hyperwalletLinkList.add(hyperwalletLink);
prepaidCard
.token("test-token")
.type(HyperwalletTransferMethod.Type.PREPAID_CARD)
Expand All @@ -23,7 +28,8 @@ protected HyperwalletPrepaidCard createBaseModel() {
.cardBrand(HyperwalletPrepaidCard.Brand.VISA)

.dateOfExpiry(new Date())
.userToken("test-user-token");
.userToken("test-user-token")
.links(hyperwalletLinkList);
return prepaidCard;
}

Expand Down
7 changes: 7 additions & 0 deletions src/test/resources/integration/createPrepaidCard-request.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
curl -X "POST" "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards" \
-u testuser@12345678:myAccPassw0rd \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d "{
"type": "PREPAID_CARD"
}"
13 changes: 13 additions & 0 deletions src/test/resources/integration/createPrepaidCard-response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"token": "trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f",
"type": "BANK_CARD",
"status": "ACTIVATED",
"links": [
{
"params": {
"rel": "self"
},
"href": "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards/trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f"
}
]
}
3 changes: 3 additions & 0 deletions src/test/resources/integration/getPrepaidCard-request.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
curl -X "GET" "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards/trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f" \
-u testuser@12345678:myAccPassw0rd \
-H "Accept: application/json"
22 changes: 22 additions & 0 deletions src/test/resources/integration/getPrepaidCard-response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"token": "trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f",
"type": "PREPAID_CARD",
"status": "ACTIVATED",
"createdOn": "2020-09-07T18:05:09",
"transferMethodCountry": "US",
"transferMethodCurrency": "USD",
"cardType": "PERSONALIZED",
"cardPackage": "L1",
"cardNumber": "************0727",
"cardBrand": "VISA",
"dateOfExpiry": "2024-09",
"userToken": "usr-c4292f1a-866f-4310-a289-b916853939de",
"links": [
{
"params": {
"rel": "self"
},
"href": "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-d868bf2d-acf1-48de-9806-8cefcb6a40ad/prepaid-cards/trm-38e07e59-69d1-40bc-bebc-af639b847410"
}
]
}
3 changes: 3 additions & 0 deletions src/test/resources/integration/listPrepaidCard-request.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
curl -X "GET" "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards" \
-u testuser@12345678:myAccPassw0rd \
-H "Accept: application/json"
36 changes: 36 additions & 0 deletions src/test/resources/integration/listPrepaidCard-response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"hasNextPage": false,
"hasPreviousPage": false,
"limit": 100,
"data": [
{
"token": "trm-38e07e59-69d1-40bc-bebc-af639b847410",
"type": "PREPAID_CARD",
"status": "ACTIVATED",
"createdOn": "2020-09-07T18:05:09",
"transferMethodCountry": "US",
"transferMethodCurrency": "USD",
"cardType": "PERSONALIZED",
"cardPackage": "L1",
"cardNumber": "************0727",
"cardBrand": "VISA",
"dateOfExpiry": "2024-09",
"links": [
{
"params": {
"rel": "self"
},
"href": "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-d868bf2d-acf1-48de-9806-8cefcb6a40ad/prepaid-cards/trm-38e07e59-69d1-40bc-bebc-af639b847410"
}
]
}
],
"links": [
{
"params": {
"rel": "self"
},
"href": "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-d868bf2d-acf1-48de-9806-8cefcb6a40ad/prepaid-cards?limit=100"
}
]
}
10 changes: 10 additions & 0 deletions src/test/resources/integration/replacePrepaidCard-request.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
curl -X "POST" "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/prepaid-cards" \
-u testuser@12345678:myAccPassw0rd \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d "{
"type": "PREPAID_CARD",
"replacementOf":"trm-3e23841c-34fd-41b1-9b81-ac2c3ad5ab84",
"replacementReason":"DAMAGED",
"cardPackage":"L1"
}"
22 changes: 22 additions & 0 deletions src/test/resources/integration/replacePrepaidCard-response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"token": "trm-3e23841c-34fd-41b1-9b81-ac2c3ad5ab84",
"type": "PREPAID_CARD",
"status": "PRE_ACTIVATED",
"createdOn": "2020-09-10T14:31:43",
"transferMethodCountry": "US",
"transferMethodCurrency": "USD",
"cardType": "PERSONALIZED",
"cardPackage": "L1",
"cardNumber": "************0843",
"cardBrand": "VISA",
"dateOfExpiry": "2024-09",
"userToken": "usr-85e743a2-beec-4817-9a10-2e0aede9afd7",
"links": [
{
"params": {
"rel": "self"
},
"href": "https://localhost-hyperwallet.aws.paylution.net:8181/rest/v4/users/usr-85e743a2-beec-4817-9a10-2e0aede9afd7/prepaid-cards/trm-3e23841c-34fd-41b1-9b81-ac2c3ad5ab84"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ curl -X "PUT" "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-86
-H "Accept: application/json" \
-d "{
"cardPackage": "US8419889B2"
}"
}"
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
"href": "https://api.sandbox.hyperwallet.com/rest/v4/users/usr-c4292f1a-866f-4310-a289-b916853939de/bank-cards/trm-7e915660-8c97-47bf-8a4f-0c1bc890d46f"
}
]
}
}

0 comments on commit 236fcd0

Please sign in to comment.