diff options
| author | Shulhan <ms@kilabit.info> | 2023-01-20 17:42:08 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2023-01-20 18:33:08 +0700 |
| commit | dfecbfbb0bc1a3f7fc01dc9c715cbaf02dad1455 (patch) | |
| tree | 5d498d37ed5c4c94847e328eb8fc0a685903ece9 | |
| parent | 87bfed9d1039de643b63e51bd6958c86d0ababaf (diff) | |
| download | duitku-dfecbfbb0bc1a3f7fc01dc9c715cbaf02dad1455.tar.xz | |
all: move test files for disbursement under its own directory
While at it, compare the test response directly by overwriting
CustRefNumber and DisburseID.
| -rw-r--r-- | client_test.go | 121 | ||||
| -rw-r--r-- | testdata/disbursement/checkbalance_test.txt (renamed from testdata/disbursement_checkbalance_test.txt) | 0 | ||||
| -rw-r--r-- | testdata/disbursement/listbank_test.txt (renamed from testdata/disbursement_listbank_test.txt) | 2 | ||||
| -rw-r--r-- | testdata/disbursement/rtol_inquiry_test.txt (renamed from testdata/disbursement_rtol_inquiry_test.txt) | 16 | ||||
| -rw-r--r-- | testdata/disbursement/rtol_transfer_test.txt | 41 | ||||
| -rw-r--r-- | testdata/disbursement_rtol_transfer_test.txt | 19 |
6 files changed, 122 insertions, 77 deletions
diff --git a/client_test.go b/client_test.go index 3db7dd2..a6ae299 100644 --- a/client_test.go +++ b/client_test.go @@ -12,36 +12,33 @@ import ( func TestClient_CheckBalance(t *testing.T) { var ( - tdata *test.Data - balance *Balance - err error - exp []byte - got []byte + tdata *test.Data + gotBalance *Balance + expBalance *Balance + err error + exp []byte ) - tdata, err = test.LoadData(`testdata/disbursement_checkbalance_test.txt`) + tdata, err = test.LoadData(`testdata/disbursement/checkbalance_test.txt`) if err != nil { t.Fatal(err) } - balance, err = testClient.CheckBalance() + gotBalance, err = testClient.CheckBalance() if err != nil { t.Fatal(err) } - // Set the value to zero, since their value may be different on each - // run. - balance.Current.Scan(0) - balance.Effective.Scan(0) - - got, err = json.MarshalIndent(balance, ``, ` `) + exp = tdata.Output[`response.json`] + err = json.Unmarshal(exp, &expBalance) if err != nil { t.Fatal(err) } - exp = tdata.Output[`response.json`] + expBalance.Current = gotBalance.Current + expBalance.Effective = gotBalance.Effective - test.Assert(t, `CheckBalance`, string(exp), string(got)) + test.Assert(t, `CheckBalance`, gotBalance, expBalance) } func TestClient_ClearingInquiry_sandbox(t *testing.T) { @@ -121,8 +118,6 @@ func TestClient_ClearingTransfer_sandbox(t *testing.T) { } func TestClient_InquiryStatus_sandbox(t *testing.T) { - t.Skip(`This test require external call to server`) - var ( tdata *test.Data @@ -202,78 +197,101 @@ func TestClient_InquiryStatus_sandbox(t *testing.T) { } func TestClient_RtolInquiry_sandbox(t *testing.T) { - t.Skip(`This test require external call to server`) - var ( - inquiryReq RtolInquiry err error tdata *test.Data - inquiryRes *RtolInquiryResponse + reqInquiry *RtolInquiry + gotInquiry *RtolInquiryResponse + expInquiry *RtolInquiryResponse + rawb []byte ) - tdata, err = test.LoadData(`testdata/disbursement_rtol_inquiry_test.txt`) + tdata, err = test.LoadData(`testdata/disbursement/rtol_inquiry_test.txt`) if err != nil { t.Fatal(err) } - err = json.Unmarshal(tdata.Input[`request.json`], &inquiryReq) + rawb = tdata.Input[`request.json`] + err = json.Unmarshal(rawb, &reqInquiry) if err != nil { t.Fatal(err) } - inquiryRes, err = testClient.RtolInquiry(&inquiryReq) + gotInquiry, err = testClient.RtolInquiry(reqInquiry) if err != nil { t.Fatal(err) } - - // We cannot compare the response, because for each call to server - // it will return different CustRefNumber and DisburseID. - - t.Logf(`inquiryRes: %+v`, inquiryRes) - - test.Assert(t, `AccountName`, `Test Account`, inquiryRes.AccountName) + rawb = tdata.Output[`response.json`] + err = json.Unmarshal(rawb, &expInquiry) + if err != nil { + t.Fatal(err) + } + // Set dynamic field values in expected response. + expInquiry.CustRefNumber = gotInquiry.CustRefNumber + expInquiry.DisburseID = gotInquiry.DisburseID + test.Assert(t, `RtolInquiry`, expInquiry, gotInquiry) } func TestClient_RtolTransfer_sandbox(t *testing.T) { - t.Skip(`This test require external call to server`) - var ( - err error - tdata *test.Data - inquiryReq *RtolInquiry - inquiryRes *RtolInquiryResponse - transferReq *RtolTransfer - transferRes *RtolTransferResponse + err error + tdata *test.Data + + reqInquiry *RtolInquiry + gotInquiry *RtolInquiryResponse + expInquiry *RtolInquiryResponse + + reqTransfer *RtolTransfer + gotTransfer *RtolTransferResponse + expTransfer *RtolTransferResponse + + rawb []byte ) - tdata, err = test.LoadData(`testdata/disbursement_rtol_transfer_test.txt`) + tdata, err = test.LoadData(`testdata/disbursement/rtol_transfer_test.txt`) if err != nil { t.Fatal(err) } - err = json.Unmarshal(tdata.Input[`request_inquiry.json`], &inquiryReq) + // Do inquiry ... + + rawb = tdata.Input[`inquiry_request.json`] + err = json.Unmarshal(rawb, &reqInquiry) if err != nil { t.Fatal(err) } - inquiryRes, err = testClient.RtolInquiry(inquiryReq) + gotInquiry, err = testClient.RtolInquiry(reqInquiry) if err != nil { t.Fatal(err) } - transferReq = NewRtolTransfer(inquiryReq, inquiryRes) - - transferRes, err = testClient.RtolTransfer(transferReq) + rawb = tdata.Output[`inquiry_response.json`] + err = json.Unmarshal(rawb, &expInquiry) if err != nil { t.Fatal(err) } + expInquiry.CustRefNumber = gotInquiry.CustRefNumber + expInquiry.DisburseID = gotInquiry.DisburseID + test.Assert(t, `RtolInquiry`, expInquiry, gotInquiry) - // We cannot compare the response, because for each call to server - // it will return different CustRefNumber and DisburseID. + // Do transfer ... - t.Logf(`RtolTransfer response: %+v`, transferRes) + reqTransfer = NewRtolTransfer(reqInquiry, gotInquiry) - test.Assert(t, `AccountName`, `Test Account`, inquiryRes.AccountName) + gotTransfer, err = testClient.RtolTransfer(reqTransfer) + if err != nil { + t.Fatal(err) + } + + rawb = tdata.Output[`transfer_response.json`] + err = json.Unmarshal(rawb, &expTransfer) + if err != nil { + t.Fatal(err) + } + expTransfer.CustRefNumber = gotTransfer.CustRefNumber + expTransfer.DisburseID = gotTransfer.DisburseID + test.Assert(t, `RtolTransfer`, expTransfer, gotTransfer) } func TestClient_ListBank(t *testing.T) { @@ -285,7 +303,7 @@ func TestClient_ListBank(t *testing.T) { got []byte ) - tdata, err = test.LoadData(`testdata/disbursement_listbank_test.txt`) + tdata, err = test.LoadData(`testdata/disbursement/listbank_test.txt`) if err != nil { t.Fatal(err) } @@ -300,9 +318,6 @@ func TestClient_ListBank(t *testing.T) { t.Fatal(err) } - t.Logf(`%s`, got) - exp = tdata.Output[`response.json`] - test.Assert(t, `ListBank`, string(exp), string(got)) } diff --git a/testdata/disbursement_checkbalance_test.txt b/testdata/disbursement/checkbalance_test.txt index 817995a..817995a 100644 --- a/testdata/disbursement_checkbalance_test.txt +++ b/testdata/disbursement/checkbalance_test.txt diff --git a/testdata/disbursement_listbank_test.txt b/testdata/disbursement/listbank_test.txt index d0dcf70..fc4d341 100644 --- a/testdata/disbursement_listbank_test.txt +++ b/testdata/disbursement/listbank_test.txt @@ -7,8 +7,6 @@ Some JSON is sorted using jq, for example $ jq 'sort_by(.bankCode)' listbank.json -and formatted using prettier (default options). - <<< response.json [ { diff --git a/testdata/disbursement_rtol_inquiry_test.txt b/testdata/disbursement/rtol_inquiry_test.txt index 3180299..e12739f 100644 --- a/testdata/disbursement_rtol_inquiry_test.txt +++ b/testdata/disbursement/rtol_inquiry_test.txt @@ -7,13 +7,23 @@ Ref: https://docs.duitku.com/disbursement/en/#transfer-online >>> request.json { - "userId": 3551, - "email": "test@chakratechnology.com", "amountTransfer": 10000, "bankAccount": "8760673566", "bankCode": "002", "purpose": "Test Transfer Online Inquiry with duitku.", - "timestamp": 1506486841000, "senderId": 123456789, "senderName": "John Doe" } + +<<< response.json +{ + "email": "test@chakratechnology.com", + "bankCode": "002", + "bankAccount": "8760673566", + "amountTransfer": 10000, + "accountName": "Test Account", + "custRefNumber": "<replaced>", + "disburseId": 0, + "responseCode": "00", + "responseDesc": "Success" +} diff --git a/testdata/disbursement/rtol_transfer_test.txt b/testdata/disbursement/rtol_transfer_test.txt new file mode 100644 index 0000000..948e938 --- /dev/null +++ b/testdata/disbursement/rtol_transfer_test.txt @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: 2022 M. Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: GPL-3.0-or-later + +Test disbursement online transfer. + +Ref: https://docs.duitku.com/disbursement/en/#transfer-online + +>>> inquiry_request.json +{ + "amountTransfer": 10000, + "bankAccount": "8760673566", + "bankCode": "002", + "purpose": "Test Transfer Online Inquiry with duitku.", + "senderId": 123456789, + "senderName": "John Doe" +} + +<<< inquiry_response.json +{ + "email": "test@chakratechnology.com", + "bankCode": "002", + "bankAccount": "8760673566", + "amountTransfer": 10000, + "accountName": "Test Account", + "custRefNumber": "<replaced>", + "disburseId": 0, + "responseCode": "00", + "responseDesc": "Success" +} + +<<< transfer_response.json +{ + "email": "test@chakratechnology.com", + "bankCode": "002", + "bankAccount": "8760673566", + "amountTransfer": 10000, + "accountName": "Test Account", + "custRefNumber": "<replaced>", + "responseCode": "00", + "responseDesc": "Success" +} diff --git a/testdata/disbursement_rtol_transfer_test.txt b/testdata/disbursement_rtol_transfer_test.txt deleted file mode 100644 index b37926d..0000000 --- a/testdata/disbursement_rtol_transfer_test.txt +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-FileCopyrightText: 2022 M. Shulhan <ms@kilabit.info> -// SPDX-License-Identifier: GPL-3.0-or-later - -Test disbursement online transfer. - -Ref: https://docs.duitku.com/disbursement/en/#transfer-online - ->>> request_inquiry.json -{ - "userId": 3551, - "email": "test@chakratechnology.com", - "amountTransfer": 10000, - "bankAccount": "8760673566", - "bankCode": "002", - "purpose": "Test Transfer Online Inquiry with duitku.", - "timestamp": 1506486841000, - "senderId": 123456789, - "senderName": "John Doe" -} |
