forked from Mastercard/open-banking-us-openapi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVerifyIncomeAndEmploymentApiTest.java
145 lines (129 loc) · 6 KB
/
VerifyIncomeAndEmploymentApiTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.mastercard.finicity.client.api;
import com.mastercard.finicity.client.ApiException;
import com.mastercard.finicity.client.model.*;
import com.mastercard.finicity.client.test.BaseTest;
import com.mastercard.finicity.client.test.ModelFactory;
import com.mastercard.finicity.client.test.utils.AccountUtils;
import com.mastercard.finicity.client.test.utils.ConsumerUtils;
import com.mastercard.finicity.client.test.utils.PayStatementUtils;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class VerifyIncomeAndEmploymentApiTest extends BaseTest {
private static String existingAssetId;
private static String customerAccountList;
private final VerifyIncomeAndEmploymentApi api = new VerifyIncomeAndEmploymentApi(apiClient);
@BeforeAll
protected static void beforeAll() {
try {
// A consumer is required to generate reports
ConsumerUtils.getOrCreateDefaultConsumer(new ConsumersApi(apiClient), CUSTOMER_ID);
// Upload a pay statement for the tests
existingAssetId = PayStatementUtils.storeAsset(new PayStatementsApi(apiClient), CUSTOMER_ID);
// Fetch some accounts IDs to be included in reports
customerAccountList = AccountUtils.getCustomerAccountListString(new AccountsApi(apiClient), CUSTOMER_ID);
} catch (ApiException e) {
fail(e);
}
}
@Test
void generateVOIReportTest() {
try {
var constraints = new VOIReportConstraints().accountIds(customerAccountList);
var reportAck = api.generateVOIReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voi", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void generateVOEPayrollReportTest() {
try {
var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
var reportAck = api.generateVOEPayrollReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voePayroll", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void refreshVOIEPayrollReportTest() {
try {
var constraints = new PayrollReportConstraints().payrollData(ModelFactory.newPayrollData());
var reportAck = api.refreshVOIEPayrollReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voiePayroll", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void generatePayStatementReportTest() {
try {
var constraints = new PayStatementReportConstraints().paystatementReport(new PayStatementData().addAssetIdsItem(existingAssetId));
// This report's final status will be 'failure' since the asset uploaded isn't a valid statement
var reportAck = api.generatePayStatementReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("paystatement", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void generatePayStatementReportTest_UnknownAsset() {
try {
var constraints = new PayStatementReportConstraints().paystatementReport(new PayStatementData().addAssetIdsItem("Unknown ID"));
api.generatePayStatementReport(CUSTOMER_ID, constraints, null);
fail();
} catch (ApiException e) {
// {"code":10100,"message":"PAY_STATEMENT_REPORT: Asset(s) not found"}
logApiException(e);
}
}
@Test
void generateVOIEPaystubReportTest() {
try {
var voieWithStatementData = new VOIEWithStatementData().addAssetIdsItem(existingAssetId);
var constraints = new VOIEReportConstraints().voieWithStatementData(voieWithStatementData);
var reportAck = api.generateVOIEPaystubReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voieTxVerify", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void generateVOIEPaystubWithTXVerifyReportTest() {
try {
var voieWithInterviewData = new VOIEWithInterviewData().addTxVerifyInterviewItem(new TxVerifyInterview().assetId(existingAssetId));
var constraints = new VOIEWithTXVerifyReportConstraints()
.voieWithInterviewData(voieWithInterviewData)
.accountIds(customerAccountList);
var reportAck = api.generateVOIEPaystubWithTXVerifyReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voieTxVerify", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
@Test
void generateVOETransactionsReportTest() {
try {
var constraints = new VOETransactionsReportConstraints().accountIds(customerAccountList);
var reportAck = api.generateVOETransactionsReport(CUSTOMER_ID, constraints, null);
assertEquals("inProgress", reportAck.getStatus());
assertEquals("voeTransactions", reportAck.getType());
} catch (ApiException e) {
// Status code: 429, Reason: Too Many Requests
logApiException(e);
}
}
}