mangopay-v4 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +30 -0
- data/.rspec +4 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +13 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +380 -0
- data/bin/mangopay +9 -0
- data/lib/mangopay.rb +133 -0
- data/lib/mangopay/api/api.rb +9 -0
- data/lib/mangopay/api/api_methods.rb +137 -0
- data/lib/mangopay/api/auth_token_manager.rb +173 -0
- data/lib/mangopay/api/http_client.rb +325 -0
- data/lib/mangopay/api/service/bank_accounts.rb +146 -0
- data/lib/mangopay/api/service/cards.rb +152 -0
- data/lib/mangopay/api/service/client_wallets.rb +89 -0
- data/lib/mangopay/api/service/clients.rb +68 -0
- data/lib/mangopay/api/service/dispute_documents.rb +158 -0
- data/lib/mangopay/api/service/disputes.rb +187 -0
- data/lib/mangopay/api/service/e_money.rb +42 -0
- data/lib/mangopay/api/service/events.rb +47 -0
- data/lib/mangopay/api/service/hooks.rb +93 -0
- data/lib/mangopay/api/service/kyc_documents.rb +153 -0
- data/lib/mangopay/api/service/mandates.rb +142 -0
- data/lib/mangopay/api/service/oauth_tokens.rb +25 -0
- data/lib/mangopay/api/service/pay_ins.rb +260 -0
- data/lib/mangopay/api/service/pay_outs.rb +54 -0
- data/lib/mangopay/api/service/pre_authorizations.rb +69 -0
- data/lib/mangopay/api/service/refunds.rb +62 -0
- data/lib/mangopay/api/service/reports.rb +151 -0
- data/lib/mangopay/api/service/repudiations.rb +32 -0
- data/lib/mangopay/api/service/responses.rb +102 -0
- data/lib/mangopay/api/service/settlement_transfers.rb +55 -0
- data/lib/mangopay/api/service/transactions.rb +183 -0
- data/lib/mangopay/api/service/transfers.rb +54 -0
- data/lib/mangopay/api/service/ubo_declarations.rb +70 -0
- data/lib/mangopay/api/service/users.rb +163 -0
- data/lib/mangopay/api/service/wallets.rb +99 -0
- data/lib/mangopay/api/uri_provider.rb +35 -0
- data/lib/mangopay/common/json_tag_converter.rb +68 -0
- data/lib/mangopay/common/jsonifier.rb +249 -0
- data/lib/mangopay/common/log_provider.rb +34 -0
- data/lib/mangopay/common/rate_limit_interval.rb +17 -0
- data/lib/mangopay/common/read_only_fields.rb +27 -0
- data/lib/mangopay/common/response_error.rb +61 -0
- data/lib/mangopay/common/sort_direction.rb +15 -0
- data/lib/mangopay/common/sort_field.rb +13 -0
- data/lib/mangopay/common/template_url_options.rb +9 -0
- data/lib/mangopay/configuration.rb +39 -0
- data/lib/mangopay/environment.rb +66 -0
- data/lib/mangopay/model/address.rb +27 -0
- data/lib/mangopay/model/declared_ubo.rb +21 -0
- data/lib/mangopay/model/dispute_reason.rb +15 -0
- data/lib/mangopay/model/document_page_consult.rb +15 -0
- data/lib/mangopay/model/e_money.rb +18 -0
- data/lib/mangopay/model/entity/account/bank_account.rb +26 -0
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +27 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/other_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/account/us_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/card.rb +45 -0
- data/lib/mangopay/model/entity/card_registration.rb +43 -0
- data/lib/mangopay/model/entity/client.rb +63 -0
- data/lib/mangopay/model/entity/client_wallet.rb +23 -0
- data/lib/mangopay/model/entity/dispute.rb +50 -0
- data/lib/mangopay/model/entity/dispute_document.rb +29 -0
- data/lib/mangopay/model/entity/entity_base.rb +18 -0
- data/lib/mangopay/model/entity/hook.rb +26 -0
- data/lib/mangopay/model/entity/kyc_document.rb +28 -0
- data/lib/mangopay/model/entity/mandate.rb +51 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +22 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +33 -0
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +13 -0
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +40 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +23 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +38 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +16 -0
- data/lib/mangopay/model/entity/pay_out.rb +22 -0
- data/lib/mangopay/model/entity/pre_authorization.rb +68 -0
- data/lib/mangopay/model/entity/refund.rb +18 -0
- data/lib/mangopay/model/entity/report.rb +51 -0
- data/lib/mangopay/model/entity/repudiation.rb +18 -0
- data/lib/mangopay/model/entity/settlement_transfer.rb +17 -0
- data/lib/mangopay/model/entity/transaction.rb +52 -0
- data/lib/mangopay/model/entity/transfer.rb +13 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +32 -0
- data/lib/mangopay/model/entity/user/legal_user.rb +53 -0
- data/lib/mangopay/model/entity/user/natural_user.rb +50 -0
- data/lib/mangopay/model/entity/user/user.rb +18 -0
- data/lib/mangopay/model/entity/wallet.rb +28 -0
- data/lib/mangopay/model/enum/account_type.rb +24 -0
- data/lib/mangopay/model/enum/card_status.rb +15 -0
- data/lib/mangopay/model/enum/card_type.rb +33 -0
- data/lib/mangopay/model/enum/card_validity.rb +19 -0
- data/lib/mangopay/model/enum/country_iso.rb +759 -0
- data/lib/mangopay/model/enum/culture_code.rb +44 -0
- data/lib/mangopay/model/enum/currency_iso.rb +552 -0
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +16 -0
- data/lib/mangopay/model/enum/declared_ubo_status.rb +18 -0
- data/lib/mangopay/model/enum/deposit_type.rb +15 -0
- data/lib/mangopay/model/enum/direct_debit_type.rb +13 -0
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +25 -0
- data/lib/mangopay/model/enum/dispute_document_type.rb +23 -0
- data/lib/mangopay/model/enum/dispute_reason_type.rb +33 -0
- data/lib/mangopay/model/enum/dispute_status.rb +21 -0
- data/lib/mangopay/model/enum/dispute_type.rb +15 -0
- data/lib/mangopay/model/enum/document_status.rb +21 -0
- data/lib/mangopay/model/enum/download_format.rb +11 -0
- data/lib/mangopay/model/enum/event_type.rb +74 -0
- data/lib/mangopay/model/enum/funds_type.rb +15 -0
- data/lib/mangopay/model/enum/hook_status.rb +13 -0
- data/lib/mangopay/model/enum/hook_validity.rb +15 -0
- data/lib/mangopay/model/enum/income_range.rb +21 -0
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +37 -0
- data/lib/mangopay/model/enum/kyc_document_type.rb +19 -0
- data/lib/mangopay/model/enum/kyc_level.rb +13 -0
- data/lib/mangopay/model/enum/legal_person_type.rb +15 -0
- data/lib/mangopay/model/enum/mandate_culture_code.rb +23 -0
- data/lib/mangopay/model/enum/mandate_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/mandate_scheme.rb +13 -0
- data/lib/mangopay/model/enum/mandate_status.rb +24 -0
- data/lib/mangopay/model/enum/mandate_type.rb +11 -0
- data/lib/mangopay/model/enum/natural_user_capacity.rb +15 -0
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +18 -0
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +21 -0
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +11 -0
- data/lib/mangopay/model/enum/payment_status.rb +21 -0
- data/lib/mangopay/model/enum/person_type.rb +15 -0
- data/lib/mangopay/model/enum/platform_type.rb +23 -0
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/pre_authorization_status.rb +18 -0
- data/lib/mangopay/model/enum/refund_reason_type.rb +21 -0
- data/lib/mangopay/model/enum/report_status.rb +17 -0
- data/lib/mangopay/model/enum/report_type.rb +13 -0
- data/lib/mangopay/model/enum/secure_mode.rb +16 -0
- data/lib/mangopay/model/enum/transaction_nature.rb +17 -0
- data/lib/mangopay/model/enum/transaction_status.rb +15 -0
- data/lib/mangopay/model/enum/transaction_type.rb +15 -0
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +19 -0
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +21 -0
- data/lib/mangopay/model/event.rb +18 -0
- data/lib/mangopay/model/model.rb +194 -0
- data/lib/mangopay/model/money.rb +17 -0
- data/lib/mangopay/model/pay_in_web_extended_view.rb +31 -0
- data/lib/mangopay/model/refund_reason.rb +15 -0
- data/lib/mangopay/model/report_filter.rb +83 -0
- data/lib/mangopay/model/request/cancel_request.rb +16 -0
- data/lib/mangopay/model/request/complete_registration_request.rb +13 -0
- data/lib/mangopay/model/request/currency_request.rb +13 -0
- data/lib/mangopay/model/request/deactivation_request.rb +10 -0
- data/lib/mangopay/model/request/filter_request.rb +38 -0
- data/lib/mangopay/model/request/submit_document_request.rb +14 -0
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +14 -0
- data/lib/mangopay/model/request/upload_file_request.rb +9 -0
- data/lib/mangopay/model/response_replica.rb +27 -0
- data/lib/mangopay/util/custom_formatter.rb +12 -0
- data/lib/mangopay/util/custom_logger.rb +34 -0
- data/lib/mangopay/util/enum.rb +52 -0
- data/lib/mangopay/util/file_encoder.rb +16 -0
- data/lib/mangopay/util/non_instantiable.rb +6 -0
- data/lib/mangopay/util/storage_strategy.rb +10 -0
- data/lib/mangopay/util/void_logger.rb +6 -0
- data/mangopay.gemspec +32 -0
- data/spec/context/address_context.rb +25 -0
- data/spec/context/bank_account_context.rb +138 -0
- data/spec/context/card_context.rb +46 -0
- data/spec/context/client_context.rb +45 -0
- data/spec/context/dispute_context.rb +37 -0
- data/spec/context/dispute_document_context.rb +20 -0
- data/spec/context/hook_context.rb +16 -0
- data/spec/context/kyc_document_context.rb +23 -0
- data/spec/context/mandate_context.rb +27 -0
- data/spec/context/pay_in_context.rb +225 -0
- data/spec/context/pay_out_context.rb +39 -0
- data/spec/context/pre_authorization_context.rb +41 -0
- data/spec/context/refund_context.rb +33 -0
- data/spec/context/report_context.rb +22 -0
- data/spec/context/repudiation_context.rb +19 -0
- data/spec/context/settlement_transfer_context.rb +28 -0
- data/spec/context/transfer_context.rb +51 -0
- data/spec/context/ubo_declaration_context.rb +25 -0
- data/spec/context/user_context.rb +83 -0
- data/spec/context/wallet_context.rb +53 -0
- data/spec/mangopay/bank_accounts_spec.rb +229 -0
- data/spec/mangopay/cards_spec.rb +135 -0
- data/spec/mangopay/client_wallets_spec.rb +148 -0
- data/spec/mangopay/clients_spec.rb +55 -0
- data/spec/mangopay/configuration_spec.rb +126 -0
- data/spec/mangopay/dispute_documents_spec.rb +174 -0
- data/spec/mangopay/disputes_spec.rb +265 -0
- data/spec/mangopay/e_money_spec.rb +38 -0
- data/spec/mangopay/events_spec.rb +50 -0
- data/spec/mangopay/hooks_spec.rb +71 -0
- data/spec/mangopay/kyc_documents_spec.rb +180 -0
- data/spec/mangopay/mandates_spec.rb +219 -0
- data/spec/mangopay/oauth_tokens_spec.rb +41 -0
- data/spec/mangopay/pay_ins_spec.rb +181 -0
- data/spec/mangopay/pay_outs_spec.rb +39 -0
- data/spec/mangopay/pre_authorizations_spec.rb +58 -0
- data/spec/mangopay/refunds_spec.rb +40 -0
- data/spec/mangopay/reports_spec.rb +121 -0
- data/spec/mangopay/responses_spec.rb +295 -0
- data/spec/mangopay/settlement_transfers_spec.rb +37 -0
- data/spec/mangopay/transactions_spec.rb +233 -0
- data/spec/mangopay/transfers_spec.rb +38 -0
- data/spec/mangopay/ubo_declarations_spec.rb +65 -0
- data/spec/mangopay/users_spec.rb +146 -0
- data/spec/mangopay/wallets_spec.rb +104 -0
- data/spec/resources/logo.png +0 -0
- data/spec/resources/test_pdf.pdf +0 -0
- data/spec/spec_helper.rb +72 -0
- metadata +349 -0
@@ -0,0 +1,174 @@
|
|
1
|
+
require_relative '../../lib/mangopay/api/service/dispute_documents'
|
2
|
+
require_relative '../context/dispute_document_context'
|
3
|
+
require_relative '../../lib/mangopay/common/sort_field'
|
4
|
+
require_relative '../../lib/mangopay/common/sort_direction'
|
5
|
+
|
6
|
+
describe MangoApi::DisputeDocuments do
|
7
|
+
include_context 'dispute_document_context'
|
8
|
+
|
9
|
+
describe '.create' do
|
10
|
+
|
11
|
+
context 'given a valid object' do
|
12
|
+
id = DISPUTE_PERSISTED.id
|
13
|
+
document = DISPUTE_DOCUMENT_DATA
|
14
|
+
|
15
|
+
it 'creates the dispute document entity' do
|
16
|
+
expect { MangoApi::DisputeDocuments.create(document, id) }.to(raise_error { |err|
|
17
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
18
|
+
expect(err.type).to eq 'dispute_can_not_currently_accept_documents'
|
19
|
+
})
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.upload_page' do
|
25
|
+
|
26
|
+
context "given a valid file's path" do
|
27
|
+
path = File.join(File.dirname(__FILE__), '..', 'resources', 'test_pdf.pdf')
|
28
|
+
|
29
|
+
it "uploads the file as one of the dispute document's pages" do
|
30
|
+
expect do
|
31
|
+
MangoApi::DisputeDocuments.upload_page(DISPUTE_DOCUMENT_PERSISTED.id,
|
32
|
+
DISPUTE_DOCUMENT_PERSISTED.dispute_id,
|
33
|
+
path)
|
34
|
+
end.to(raise_error do |err|
|
35
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
36
|
+
expect(err.type).to eq 'dispute_can_not_currently_accept_documents'
|
37
|
+
end)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '.submit' do
|
43
|
+
|
44
|
+
context "given an existing entity's ID" do
|
45
|
+
created = DISPUTE_DOCUMENT_PERSISTED
|
46
|
+
id = created.id
|
47
|
+
|
48
|
+
it 'submits the corresponding entity for approval' do
|
49
|
+
expect { MangoApi::DisputeDocuments.submit(id, created.dispute_id) }.to(raise_error do |err|
|
50
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
51
|
+
expect(err.type).to eq 'cant_validate_empty_document'
|
52
|
+
end)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '.get' do
|
58
|
+
|
59
|
+
context "given an existing entity's ID" do
|
60
|
+
document = DISPUTE_DOCUMENT_PERSISTED
|
61
|
+
id = document.id
|
62
|
+
|
63
|
+
it 'retrieves the corresponding entity' do
|
64
|
+
retrieved = MangoApi::DisputeDocuments.get id
|
65
|
+
|
66
|
+
expect(retrieved).to be_kind_of MangoModel::DisputeDocument
|
67
|
+
expect(retrieved.id).to eq id
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.of_dispute' do
|
73
|
+
|
74
|
+
context "given an existing dispute entity's ID" do
|
75
|
+
id = DISPUTE_PERSISTED.id
|
76
|
+
|
77
|
+
context 'not having specified filters' do
|
78
|
+
it 'retrieves list with default parameters' do
|
79
|
+
results = MangoApi::DisputeDocuments.of_dispute id
|
80
|
+
|
81
|
+
expect(results).to be_kind_of Array
|
82
|
+
results.each do |result|
|
83
|
+
expect(result).to be_kind_of MangoModel::DisputeDocument
|
84
|
+
expect(result.id).not_to be_nil
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'having specified filters' do
|
90
|
+
per_page = 5
|
91
|
+
|
92
|
+
it 'retrieves a list with specified parameters' do
|
93
|
+
results = MangoApi::DisputeDocuments.of_dispute id do |filter|
|
94
|
+
filter.page = 1
|
95
|
+
filter.per_page = per_page
|
96
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
97
|
+
filter.sort_direction = MangoPay::SortDirection::DESC
|
98
|
+
end
|
99
|
+
|
100
|
+
expect(results).to be_kind_of Array
|
101
|
+
expect(results.length).to eq per_page
|
102
|
+
results.each.with_index do |result, index|
|
103
|
+
expect(result).to be_kind_of MangoModel::DisputeDocument
|
104
|
+
expect(result.id).not_to be_nil
|
105
|
+
next if index == results.length - 1
|
106
|
+
first_date = result.creation_date
|
107
|
+
second_date = results[index + 1].creation_date
|
108
|
+
expect(first_date >= second_date).to be_truthy
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe '.all' do
|
116
|
+
|
117
|
+
context 'from a correctly-configured environment' do
|
118
|
+
context 'not having specified filters' do
|
119
|
+
default_per_page = 10
|
120
|
+
|
121
|
+
it 'retrieves list with default parameters' do
|
122
|
+
results = MangoApi::DisputeDocuments.all
|
123
|
+
|
124
|
+
expect(results).to be_kind_of Array
|
125
|
+
expect(results.length).to eq default_per_page
|
126
|
+
results.each do |result|
|
127
|
+
expect(result).to be_kind_of MangoModel::DisputeDocument
|
128
|
+
expect(result.id).not_to be_nil
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
context 'having specified filters' do
|
134
|
+
per_page = 11
|
135
|
+
|
136
|
+
it 'retrieves list with specified parameters' do
|
137
|
+
results = MangoApi::DisputeDocuments.all do |filter|
|
138
|
+
filter.page = 1
|
139
|
+
filter.per_page = per_page
|
140
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
141
|
+
filter.sort_direction = MangoPay::SortDirection::DESC
|
142
|
+
end
|
143
|
+
|
144
|
+
expect(results).to be_kind_of Array
|
145
|
+
expect(results.length).to eq per_page
|
146
|
+
results.each.with_index do |result, index|
|
147
|
+
expect(result).to be_kind_of MangoModel::DisputeDocument
|
148
|
+
expect(result.id).not_to be_nil
|
149
|
+
next if index == results.length - 1
|
150
|
+
first_date = result.creation_date
|
151
|
+
second_date = results[index + 1].creation_date
|
152
|
+
expect(first_date >= second_date).to be_truthy
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe '.consult' do
|
160
|
+
|
161
|
+
context "given an existing entity's ID" do
|
162
|
+
id = DISPUTE_DOCUMENT_PERSISTED.id
|
163
|
+
|
164
|
+
it 'creates the document page consult entities' do
|
165
|
+
results = MangoApi::DisputeDocuments.consult id
|
166
|
+
|
167
|
+
expect(results).to be_kind_of Array
|
168
|
+
results.each do |result|
|
169
|
+
expect(result).to be_kind_of MangoModel::DocumentPageConsult
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,265 @@
|
|
1
|
+
require_relative '../../lib/mangopay/api/service/disputes'
|
2
|
+
require_relative '../../lib/mangopay/api/service/repudiations'
|
3
|
+
require_relative '../context/dispute_context'
|
4
|
+
require_relative '../context/repudiation_context'
|
5
|
+
require_relative '../../lib/mangopay/common/sort_field'
|
6
|
+
require_relative '../../lib/mangopay/common/sort_direction'
|
7
|
+
|
8
|
+
describe MangoApi::Disputes do
|
9
|
+
include_context 'dispute_context'
|
10
|
+
include_context 'repudiation_context'
|
11
|
+
|
12
|
+
describe '.update' do
|
13
|
+
|
14
|
+
context 'given a valid object' do
|
15
|
+
tag = 'Updated tag'
|
16
|
+
existing = DISPUTE_PERSISTED
|
17
|
+
existing.tag = tag
|
18
|
+
|
19
|
+
it 'updates the corresponding entity' do
|
20
|
+
updated = MangoApi::Disputes.update existing
|
21
|
+
|
22
|
+
expect(updated).to be_kind_of MangoModel::Dispute
|
23
|
+
expect(updated.id).to eq existing.id
|
24
|
+
expect(updated.tag).to eq tag
|
25
|
+
expect(its_the_same_dispute(existing, updated)).to be_truthy
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '.close' do
|
31
|
+
|
32
|
+
context "given an existing entity's ID" do
|
33
|
+
id = DISPUTE_PERSISTED.id
|
34
|
+
|
35
|
+
it 'closes the corresponding dispute entity' do
|
36
|
+
expect { MangoApi::Disputes.close id }.to(raise_error { |err|
|
37
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
38
|
+
expect(err.type).to eq 'dispute_cant_be_closed'
|
39
|
+
})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '.submit' do
|
45
|
+
|
46
|
+
context 'given a valid object' do
|
47
|
+
dispute = DISPUTE_PERSISTED
|
48
|
+
|
49
|
+
it 'contests the corresponding dispute entity' do
|
50
|
+
expect { MangoApi::Disputes.submit dispute }.to(raise_error { |err|
|
51
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
52
|
+
expect(err.type).to eq 'dispute_contest_deadline_passed'
|
53
|
+
})
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe '.resubmit' do
|
59
|
+
|
60
|
+
context "given an existing entity's ID" do
|
61
|
+
id = DISPUTE_PERSISTED.id
|
62
|
+
|
63
|
+
it 'resubmits the corresponding dispute entity' do
|
64
|
+
expect { MangoApi::Disputes.resubmit id }.to(raise_error { |err|
|
65
|
+
expect(err).to be_kind_of MangoPay::ResponseError
|
66
|
+
expect(err.type).to eq 'dispute_contest_deadline_passed'
|
67
|
+
})
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.get' do
|
73
|
+
|
74
|
+
context "given an existing entity's ID" do
|
75
|
+
existing = DISPUTE_PERSISTED
|
76
|
+
id = existing.id
|
77
|
+
|
78
|
+
it 'retrieves the corresponding entity' do
|
79
|
+
retrieved = MangoApi::Disputes.get id
|
80
|
+
|
81
|
+
expect(retrieved).to be_kind_of MangoModel::Dispute
|
82
|
+
expect(retrieved.id).to eq id
|
83
|
+
expect(its_the_same_dispute(existing, retrieved)).to be_truthy
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe '.of_user' do
|
89
|
+
|
90
|
+
context "given an existing user entity's ID" do
|
91
|
+
id = NATURAL_USER_PERSISTED.id
|
92
|
+
|
93
|
+
context 'not having specified filters' do
|
94
|
+
it 'retrieves list with default parameters' do
|
95
|
+
results = MangoApi::Disputes.of_user id
|
96
|
+
|
97
|
+
expect(results).to be_kind_of Array
|
98
|
+
results.each do |result|
|
99
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
100
|
+
expect(result.id).not_to be_nil
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'having specified filters' do
|
106
|
+
it 'retrieves list with specified parameters' do
|
107
|
+
results = MangoApi::Disputes.of_user id do |filter|
|
108
|
+
filter.page = 1
|
109
|
+
filter.per_page = 5
|
110
|
+
filter.status = MangoModel::DisputeStatus::CREATED
|
111
|
+
end
|
112
|
+
|
113
|
+
expect(results).to be_kind_of Array
|
114
|
+
results.each do |result|
|
115
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
116
|
+
expect(result.id).not_to be_nil
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe '.of_wallet' do
|
124
|
+
|
125
|
+
context "given an existing wallet entity's ID" do
|
126
|
+
id = WALLET_PERSISTED.id
|
127
|
+
|
128
|
+
context 'not having specified filters' do
|
129
|
+
it 'retrieves list with default parameters' do
|
130
|
+
results = MangoApi::Disputes.of_wallet id
|
131
|
+
|
132
|
+
expect(results).to be_kind_of Array
|
133
|
+
results.each do |result|
|
134
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
135
|
+
expect(result.id).not_to be_nil
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context 'having specified filters' do
|
141
|
+
it 'retrieves list with specified parameters' do
|
142
|
+
results = MangoApi::Disputes.of_wallet id do |filter|
|
143
|
+
filter.page = 1
|
144
|
+
filter.per_page = 5
|
145
|
+
end
|
146
|
+
|
147
|
+
expect(results).to be_kind_of Array
|
148
|
+
results.each do |result|
|
149
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
150
|
+
expect(result.id).not_to be_nil
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe '.pending_settlement' do
|
158
|
+
|
159
|
+
context 'from a correctly-configured environment' do
|
160
|
+
context 'not having specified filters' do
|
161
|
+
default_per_page = 10
|
162
|
+
|
163
|
+
it 'retrieves list with default parameters' do
|
164
|
+
results = MangoApi::Disputes.pending_settlement
|
165
|
+
|
166
|
+
expect(results).to be_kind_of Array
|
167
|
+
expect(results.length).to eq default_per_page
|
168
|
+
results.each do |result|
|
169
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
170
|
+
expect(result.id).not_to be_nil
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
context 'having specified filters' do
|
176
|
+
per_page = 11
|
177
|
+
|
178
|
+
it 'retrieves list with specified parameters' do
|
179
|
+
results = MangoApi::Disputes.pending_settlement do |filter|
|
180
|
+
filter.page = 1
|
181
|
+
filter.per_page = per_page
|
182
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
183
|
+
filter.sort_direction = MangoPay::SortDirection::DESC
|
184
|
+
end
|
185
|
+
|
186
|
+
expect(results).to be_kind_of Array
|
187
|
+
expect(results.length).to eq per_page
|
188
|
+
results.each.with_index do |result, index|
|
189
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
190
|
+
expect(result.id).not_to be_nil
|
191
|
+
next if index == results.length - 1
|
192
|
+
first_date = result.creation_date
|
193
|
+
second_date = results[index + 1].creation_date
|
194
|
+
expect(first_date >= second_date).to be_truthy
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
describe '.all' do
|
202
|
+
|
203
|
+
context 'from a correctly-configured environment' do
|
204
|
+
context 'not having specified filters' do
|
205
|
+
default_per_page = 10
|
206
|
+
|
207
|
+
it 'retrieves list with default parameters' do
|
208
|
+
results = MangoApi::Disputes.all
|
209
|
+
|
210
|
+
expect(results).to be_kind_of Array
|
211
|
+
expect(results.length).to eq default_per_page
|
212
|
+
results.each do |result|
|
213
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
214
|
+
expect(result.id).not_to be_nil
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context 'having specified filters' do
|
220
|
+
per_page = 11
|
221
|
+
status = MangoModel::DisputeStatus::CLOSED
|
222
|
+
|
223
|
+
it 'retrieves list with specified parameters' do
|
224
|
+
results = MangoApi::Disputes.all do |filter|
|
225
|
+
filter.page = 1
|
226
|
+
filter.per_page = per_page
|
227
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
228
|
+
filter.sort_direction = MangoPay::SortDirection::DESC
|
229
|
+
filter.status = status
|
230
|
+
end
|
231
|
+
|
232
|
+
expect(results).to be_kind_of Array
|
233
|
+
expect(results.length).to eq per_page
|
234
|
+
results.each.with_index do |result, index|
|
235
|
+
expect(result).to be_kind_of MangoModel::Dispute
|
236
|
+
expect(result.id).not_to be_nil
|
237
|
+
expect(result.status).to be status
|
238
|
+
next if index == results.length - 1
|
239
|
+
first_date = result.creation_date
|
240
|
+
second_date = results[index + 1].creation_date
|
241
|
+
expect(first_date >= second_date).to be_truthy
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
describe MangoApi::Repudiations do
|
250
|
+
|
251
|
+
describe '.get' do
|
252
|
+
|
253
|
+
context "given an existing entity's ID" do
|
254
|
+
id = REPUDIATION_PERSISTED.id
|
255
|
+
|
256
|
+
it 'retrieves the corresponding entity' do
|
257
|
+
expect(id).not_to be_nil, 'there is no repudiation to retrieve'
|
258
|
+
retrieved = MangoApi::Repudiations.get id
|
259
|
+
|
260
|
+
expect(retrieved).to be_kind_of MangoModel::Repudiation
|
261
|
+
expect(retrieved.id).not_to be_nil
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative '../context/user_context'
|
2
|
+
require_relative '../../lib/mangopay/api/service/e_money'
|
3
|
+
|
4
|
+
describe MangoApi::EMoney do
|
5
|
+
include_context 'user_context'
|
6
|
+
|
7
|
+
describe '.of_user' do
|
8
|
+
|
9
|
+
describe "given an existing user entity's ID" do
|
10
|
+
id = NATURAL_USER_PERSISTED.id
|
11
|
+
|
12
|
+
context 'not having specified currency' do
|
13
|
+
default_currency = MangoModel::CurrencyIso::EUR
|
14
|
+
|
15
|
+
it 'retrieves the corresponding e-money entity in default currency' do
|
16
|
+
retrieved = MangoApi::EMoney.of_user id
|
17
|
+
|
18
|
+
expect(retrieved).to be_kind_of MangoModel::EMoney
|
19
|
+
expect(retrieved.credited_e_money.currency).to be default_currency
|
20
|
+
expect(retrieved.debited_e_money.currency).to be default_currency
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# TODO: Results always come in EUR
|
25
|
+
# context 'having specified currency' do
|
26
|
+
# currency = MangoModel::CurrencyIso::GBP
|
27
|
+
#
|
28
|
+
# it 'retrieves the corresponding e-money entity in specified currency' do
|
29
|
+
# retrieved = MangoApi::EMoney.of_user id, currency
|
30
|
+
#
|
31
|
+
# expect(retrieved).to be_kind_of MangoModel::EMoney
|
32
|
+
# expect(retrieved.credited_e_money.currency).to be currency
|
33
|
+
# expect(retrieved.debited_e_money.currency).to be currency
|
34
|
+
# end
|
35
|
+
# end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|