This repository was archived by the owner on Jul 7, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathFpDirectDebitTest.java
More file actions
113 lines (109 loc) · 4.65 KB
/
FpDirectDebitTest.java
File metadata and controls
113 lines (109 loc) · 4.65 KB
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
/*
* Copyright 2019 Roman Proshin
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.proshin.finapi.account;
import java.math.BigDecimal;
import org.junit.jupiter.api.Test;
import org.mockserver.model.HttpRequest;
import org.mockserver.model.HttpResponse;
import org.mockserver.model.JsonBody;
import org.proshin.finapi.TestWithMockedEndpoint;
import org.proshin.finapi.account.in.Debtor;
import org.proshin.finapi.account.in.DirectDebitParameters;
import org.proshin.finapi.fake.FakeAccessToken;
import org.proshin.finapi.primitives.LocalDateOf;
final class FpDirectDebitTest extends TestWithMockedEndpoint {
@Test
void testRequest() {
this.server()
.when(
HttpRequest.request("/api/v1/accounts/requestSepaDirectDebit")
.withMethod("POST")
.withHeader("Authorization", "Bearer access-token")
.withBody(new JsonBody('{' +
" \"accountId\": 1," +
" \"bankingPin\": \"123456\"," +
" \"storeSecrets\": true," +
" \"twoStepProcedureId\": \"955\"," +
" \"directDebitType\": \"B2B\"," +
" \"sequenceType\": \"OOFF\"," +
" \"executionDate\": \"2018-01-01\"," +
" \"singleBooking\": true," +
" \"directDebits\": [" +
" {" +
" \"debitorName\": \"Debitor\"," +
" \"debitorIban\": \"DE13700800000061110500\"," +
" \"debitorBic\": \"DRESDEFF700\"," +
" \"amount\": 99.99," +
" \"purpose\": \"Test Payment\"," +
" \"sepaPurposeCode\": \"OTHR\"," +
" \"mandateId\": \"1\"," +
" \"mandateDate\": \"2018-01-02\"," +
" \"creditorId\": \"Creditor\"," +
" \"endToEndId\": \"001100550526\"" +
" }" +
" ]" +
'}'))
)
.respond(HttpResponse.response("{}"));
new FpDirectDebit(
this.endpoint(),
new FakeAccessToken("access-token"),
"/api/v1/accounts/"
).request(
new DirectDebitParameters()
.withAccount(1L)
.withBankingPin("123456")
.withStoringSecrets()
.withTwoStepProcedure("955")
.withDirectDebitType(DirectDebitParameters.DirectDebitType.B2B)
.withSequenceType(DirectDebitParameters.SequenceType.OOFF)
.withExecutionDate(new LocalDateOf("2018-01-01").get())
.asSingleBooking()
.withDebtors(
new Debtor()
.withName("Debitor")
.withIban("DE13700800000061110500")
.withBic("DRESDEFF700")
.withAmount(new BigDecimal("99.99"))
.withPurpose("Test Payment")
.withSepaPurposeCode("OTHR")
.withMandateId("1")
.withMandateDate(new LocalDateOf("2018-01-02").get())
.withCreditorId("Creditor")
.withEndToEndId("001100550526")
)
);
}
@Test
void testExecute() {
this.server()
.when(
HttpRequest.request("/api/v1/accounts/executeSepaDirectDebit")
.withMethod("POST")
.withHeader("Authorization", "Bearer access-token")
.withBody(new JsonBody('{' +
" \"accountId\": 1," +
" \"bankingTan\": \"0123\"" +
'}'))
)
.respond(HttpResponse.response("{}"));
new FpDirectDebit(
this.endpoint(),
new FakeAccessToken("access-token"),
"/api/v1/accounts/"
).execute(1L, "0123");
}
}