mangopay-v4 4.0.0 → 4.0.1
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 +5 -5
- data/.gitignore +29 -29
- data/.rspec +3 -3
- data/.rubocop.yml +1 -1
- data/.travis.yml +21 -13
- data/Gemfile +2 -2
- data/LICENSE +20 -20
- data/README.md +379 -379
- data/bin/mangopay +9 -9
- data/lib/mangopay.rb +132 -132
- data/lib/mangopay/api/api.rb +8 -8
- data/lib/mangopay/api/api_methods.rb +160 -136
- data/lib/mangopay/api/auth_token_manager.rb +173 -173
- data/lib/mangopay/api/http_client.rb +324 -324
- data/lib/mangopay/api/service/bank_accounts.rb +145 -145
- data/lib/mangopay/api/service/banking_aliases.rb +83 -0
- data/lib/mangopay/api/service/cards.rb +151 -151
- data/lib/mangopay/api/service/client_wallets.rb +88 -88
- data/lib/mangopay/api/service/clients.rb +67 -67
- data/lib/mangopay/api/service/dispute_documents.rb +157 -157
- data/lib/mangopay/api/service/disputes.rb +186 -186
- data/lib/mangopay/api/service/e_money.rb +63 -41
- data/lib/mangopay/api/service/events.rb +46 -46
- data/lib/mangopay/api/service/hooks.rb +92 -92
- data/lib/mangopay/api/service/kyc_documents.rb +152 -152
- data/lib/mangopay/api/service/mandates.rb +141 -141
- data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
- data/lib/mangopay/api/service/pay_ins.rb +369 -259
- data/lib/mangopay/api/service/pay_outs.rb +53 -53
- data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
- data/lib/mangopay/api/service/refunds.rb +159 -61
- data/lib/mangopay/api/service/reports.rb +150 -150
- data/lib/mangopay/api/service/repudiations.rb +31 -31
- data/lib/mangopay/api/service/responses.rb +101 -101
- data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
- data/lib/mangopay/api/service/transactions.rb +246 -182
- data/lib/mangopay/api/service/transfers.rb +53 -53
- data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
- data/lib/mangopay/api/service/users.rb +162 -162
- data/lib/mangopay/api/service/wallets.rb +98 -98
- data/lib/mangopay/api/uri_provider.rb +32 -34
- data/lib/mangopay/common/json_tag_converter.rb +70 -67
- data/lib/mangopay/common/jsonifier.rb +266 -248
- data/lib/mangopay/common/log_provider.rb +33 -33
- data/lib/mangopay/common/rate_limit_interval.rb +16 -16
- data/lib/mangopay/common/read_only_fields.rb +26 -26
- data/lib/mangopay/common/response_error.rb +61 -61
- data/lib/mangopay/common/sort_direction.rb +14 -14
- data/lib/mangopay/common/sort_field.rb +12 -12
- data/lib/mangopay/common/template_url_options.rb +8 -8
- data/lib/mangopay/configuration.rb +38 -38
- data/lib/mangopay/environment.rb +65 -65
- data/lib/mangopay/model/address.rb +26 -26
- data/lib/mangopay/model/billing.rb +13 -0
- data/lib/mangopay/model/birthplace.rb +15 -0
- data/lib/mangopay/model/declared_ubo.rb +20 -20
- data/lib/mangopay/model/dispute_reason.rb +14 -14
- data/lib/mangopay/model/document_page_consult.rb +14 -14
- data/lib/mangopay/model/e_money.rb +17 -17
- data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
- data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/banking_alias.rb +27 -0
- data/lib/mangopay/model/entity/card.rb +44 -44
- data/lib/mangopay/model/entity/card_registration.rb +42 -42
- data/lib/mangopay/model/entity/client.rb +65 -62
- data/lib/mangopay/model/entity/client_wallet.rb +22 -22
- data/lib/mangopay/model/entity/dispute.rb +49 -49
- data/lib/mangopay/model/entity/dispute_document.rb +28 -28
- data/lib/mangopay/model/entity/entity_base.rb +17 -17
- data/lib/mangopay/model/entity/hook.rb +25 -25
- data/lib/mangopay/model/entity/kyc_document.rb +27 -27
- data/lib/mangopay/model/entity/mandate.rb +50 -50
- data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
- data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
- data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
- data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
- data/lib/mangopay/model/entity/pay_out.rb +21 -21
- data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
- data/lib/mangopay/model/entity/refund.rb +17 -17
- data/lib/mangopay/model/entity/report.rb +50 -50
- data/lib/mangopay/model/entity/repudiation.rb +17 -17
- data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
- data/lib/mangopay/model/entity/transaction.rb +51 -51
- data/lib/mangopay/model/entity/transfer.rb +12 -12
- data/lib/mangopay/model/entity/ubo.rb +30 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
- data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
- data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
- data/lib/mangopay/model/entity/user/user.rb +17 -17
- data/lib/mangopay/model/entity/wallet.rb +27 -27
- data/lib/mangopay/model/enum/account_type.rb +23 -23
- data/lib/mangopay/model/enum/avs_result.rb +19 -0
- data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
- data/lib/mangopay/model/enum/business_type.rb +17 -0
- data/lib/mangopay/model/enum/card_status.rb +14 -14
- data/lib/mangopay/model/enum/card_type.rb +32 -32
- data/lib/mangopay/model/enum/card_validity.rb +18 -18
- data/lib/mangopay/model/enum/country_iso.rb +758 -758
- data/lib/mangopay/model/enum/culture_code.rb +43 -43
- data/lib/mangopay/model/enum/currency_iso.rb +551 -551
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
- data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
- data/lib/mangopay/model/enum/deposit_type.rb +14 -14
- data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
- data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
- data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
- data/lib/mangopay/model/enum/dispute_status.rb +20 -20
- data/lib/mangopay/model/enum/dispute_type.rb +14 -14
- data/lib/mangopay/model/enum/document_status.rb +20 -20
- data/lib/mangopay/model/enum/download_format.rb +10 -10
- data/lib/mangopay/model/enum/event_type.rb +76 -73
- data/lib/mangopay/model/enum/funds_type.rb +14 -14
- data/lib/mangopay/model/enum/hook_status.rb +12 -12
- data/lib/mangopay/model/enum/hook_validity.rb +14 -14
- data/lib/mangopay/model/enum/income_range.rb +20 -20
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
- data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
- data/lib/mangopay/model/enum/kyc_level.rb +12 -12
- data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
- data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
- data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
- data/lib/mangopay/model/enum/mandate_status.rb +23 -23
- data/lib/mangopay/model/enum/mandate_type.rb +10 -10
- data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
- data/lib/mangopay/model/enum/payment_status.rb +20 -20
- data/lib/mangopay/model/enum/person_type.rb +14 -14
- data/lib/mangopay/model/enum/platform_type.rb +22 -22
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
- data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
- data/lib/mangopay/model/enum/report_status.rb +16 -16
- data/lib/mangopay/model/enum/report_type.rb +12 -12
- data/lib/mangopay/model/enum/sector.rb +29 -0
- data/lib/mangopay/model/enum/secure_mode.rb +15 -15
- data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
- data/lib/mangopay/model/enum/transaction_status.rb +14 -14
- data/lib/mangopay/model/enum/transaction_type.rb +14 -14
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
- data/lib/mangopay/model/event.rb +17 -17
- data/lib/mangopay/model/model.rb +214 -193
- data/lib/mangopay/model/money.rb +16 -16
- data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
- data/lib/mangopay/model/platform_categorization.rb +15 -0
- data/lib/mangopay/model/refund_reason.rb +14 -14
- data/lib/mangopay/model/report_filter.rb +82 -82
- data/lib/mangopay/model/request/cancel_request.rb +15 -15
- data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
- data/lib/mangopay/model/request/currency_request.rb +12 -12
- data/lib/mangopay/model/request/deactivation_request.rb +9 -9
- data/lib/mangopay/model/request/filter_request.rb +37 -37
- data/lib/mangopay/model/request/submit_document_request.rb +13 -13
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
- data/lib/mangopay/model/request/upload_file_request.rb +8 -8
- data/lib/mangopay/model/response_replica.rb +26 -26
- data/lib/mangopay/model/security_info.rb +13 -0
- data/lib/mangopay/util/custom_formatter.rb +11 -11
- data/lib/mangopay/util/custom_logger.rb +33 -33
- data/lib/mangopay/util/enum.rb +51 -51
- data/lib/mangopay/util/file_encoder.rb +15 -15
- data/lib/mangopay/util/non_instantiable.rb +5 -5
- data/lib/mangopay/util/storage_strategy.rb +9 -9
- data/lib/mangopay/util/void_logger.rb +5 -5
- data/mangopay-v4.gemspec +32 -0
- data/mangopay.gemspec +32 -32
- data/spec/context/address_context.rb +24 -24
- data/spec/context/bank_account_context.rb +137 -137
- data/spec/context/banking_alias_context.rb +17 -0
- data/spec/context/birthplace_context.rb +17 -0
- data/spec/context/card_context.rb +45 -45
- data/spec/context/client_context.rb +43 -44
- data/spec/context/dispute_context.rb +36 -36
- data/spec/context/dispute_document_context.rb +19 -19
- data/spec/context/hook_context.rb +15 -15
- data/spec/context/kyc_document_context.rb +22 -22
- data/spec/context/mandate_context.rb +26 -26
- data/spec/context/pay_in_context.rb +319 -224
- data/spec/context/pay_out_context.rb +39 -38
- data/spec/context/pre_authorization_context.rb +44 -40
- data/spec/context/refund_context.rb +32 -32
- data/spec/context/report_context.rb +21 -21
- data/spec/context/repudiation_context.rb +18 -18
- data/spec/context/settlement_transfer_context.rb +27 -27
- data/spec/context/transfer_context.rb +50 -50
- data/spec/context/ubo_declaration_context.rb +29 -24
- data/spec/context/user_context.rb +83 -82
- data/spec/context/wallet_context.rb +52 -52
- data/spec/mangopay/bank_accounts_spec.rb +228 -228
- data/spec/mangopay/banking_alias_spec.rb +85 -0
- data/spec/mangopay/cards_spec.rb +133 -134
- data/spec/mangopay/client_wallets_spec.rb +147 -147
- data/spec/mangopay/clients_spec.rb +56 -54
- data/spec/mangopay/configuration_spec.rb +125 -125
- data/spec/mangopay/dispute_documents_spec.rb +173 -173
- data/spec/mangopay/disputes_spec.rb +264 -264
- data/spec/mangopay/e_money_spec.rb +57 -37
- data/spec/mangopay/events_spec.rb +49 -49
- data/spec/mangopay/hooks_spec.rb +70 -70
- data/spec/mangopay/kyc_documents_spec.rb +179 -179
- data/spec/mangopay/mandates_spec.rb +218 -218
- data/spec/mangopay/oauth_tokens_spec.rb +40 -40
- data/spec/mangopay/pay_ins_spec.rb +279 -180
- data/spec/mangopay/pay_outs_spec.rb +38 -38
- data/spec/mangopay/pre_authorizations_spec.rb +134 -57
- data/spec/mangopay/refunds_spec.rb +187 -39
- data/spec/mangopay/reports_spec.rb +118 -120
- data/spec/mangopay/responses_spec.rb +324 -294
- data/spec/mangopay/settlement_transfers_spec.rb +36 -36
- data/spec/mangopay/transactions_spec.rb +347 -232
- data/spec/mangopay/transfers_spec.rb +37 -37
- data/spec/mangopay/ubo_declarations_spec.rb +127 -64
- data/spec/mangopay/users_spec.rb +145 -145
- data/spec/mangopay/wallets_spec.rb +103 -103
- data/spec/spec_helper.rb +72 -72
- data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
- data/spec/tmp/mangopay.log.tmp +1201 -0
- metadata +31 -5
@@ -1,219 +1,219 @@
|
|
1
|
-
require_relative '../../lib/mangopay/api/service/mandates'
|
2
|
-
require_relative '../../spec/context/mandate_context'
|
3
|
-
require_relative '../../lib/mangopay/common/sort_field'
|
4
|
-
require_relative '../../lib/mangopay/common/sort_direction'
|
5
|
-
|
6
|
-
describe MangoApi::Mandates do
|
7
|
-
include_context 'mandate_context'
|
8
|
-
|
9
|
-
describe '.create' do
|
10
|
-
|
11
|
-
context 'given a valid object' do
|
12
|
-
mandate = MANDATE_DATA
|
13
|
-
|
14
|
-
it 'creates the mandate entity' do
|
15
|
-
created = MangoApi::Mandates.create mandate
|
16
|
-
|
17
|
-
expect(created).to be_kind_of MangoModel::Mandate
|
18
|
-
expect(created.id).not_to be_nil
|
19
|
-
expect(created.document_url).not_to be_nil
|
20
|
-
expect(created.execution_type).to be MangoModel::MandateExecutionType::WEB
|
21
|
-
expect(created.mandate_type).to be MangoModel::MandateType::DIRECT_DEBIT
|
22
|
-
expect(created.redirect_url).not_to be_nil
|
23
|
-
expect(created.return_url).not_to be_nil
|
24
|
-
expect(created.status).to be MangoModel::MandateStatus::CREATED
|
25
|
-
expect(created.user_id).not_to be_nil
|
26
|
-
expect(its_the_same_mandate(mandate, created)).to be_truthy
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '.get' do
|
32
|
-
|
33
|
-
context "given an existing entity's ID" do
|
34
|
-
mandate = MANDATE_PERSISTED
|
35
|
-
id = mandate.id
|
36
|
-
|
37
|
-
it 'retrieves the corresponding entity' do
|
38
|
-
retrieved = MangoApi::Mandates.get id
|
39
|
-
|
40
|
-
expect(retrieved).to be_kind_of MangoModel::Mandate
|
41
|
-
expect(retrieved.id).to eq id
|
42
|
-
expect(its_the_same_mandate(mandate, retrieved)).to be_truthy
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# describe '.cancel' do
|
48
|
-
#
|
49
|
-
# context "given an existing entity's ID" do
|
50
|
-
# mandate = MangoModel::Mandate.new
|
51
|
-
# mandate.bank_account_id = GB_ACCOUNT_PERSISTED.id
|
52
|
-
# mandate.culture = MangoModel::MandateCultureCode::EN
|
53
|
-
# mandate.return_url = 'http://www.my-site.com/returnURL/'
|
54
|
-
# created = MangoApi::Mandates.create mandate
|
55
|
-
# id = created.id
|
56
|
-
#
|
57
|
-
# it 'cancels the corresponding entity' do
|
58
|
-
#
|
59
|
-
# # Attention
|
60
|
-
# #
|
61
|
-
# # To make this test pass, you must pause execution with a breakpoint on
|
62
|
-
# # the following line, and use your browser to open the page received
|
63
|
-
# # in the +created.redirect_url+ property and click the Confirm button
|
64
|
-
# # before continuing.
|
65
|
-
# canceled = MangoApi::Mandates.cancel id # Place breakpoint here
|
66
|
-
#
|
67
|
-
# expect(canceled).to be_kind_of MangoModel::Mandate
|
68
|
-
# expect(canceled.id).to eq id
|
69
|
-
# expect(canceled.status).to be MangoModel::MandateStatus::FAILED
|
70
|
-
# expect(canceled.result_code).to eq '001806' # cancelled
|
71
|
-
# end
|
72
|
-
# end
|
73
|
-
# end
|
74
|
-
|
75
|
-
describe '.all' do
|
76
|
-
|
77
|
-
context 'not having specified filters' do
|
78
|
-
default_per_page = 10
|
79
|
-
|
80
|
-
it 'retrieves a list with default parameters' do
|
81
|
-
results = MangoApi::Mandates.all
|
82
|
-
|
83
|
-
expect(results).to be_kind_of Array
|
84
|
-
expect(results.length).to eq default_per_page
|
85
|
-
results.each do |result|
|
86
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
87
|
-
expect(result.id).not_to be_nil
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context 'having specified filters' do
|
93
|
-
per_page = 11
|
94
|
-
|
95
|
-
it 'retrieves a list with specified parameters' do
|
96
|
-
results = MangoApi::Mandates.all do |filter|
|
97
|
-
filter.page = 1
|
98
|
-
filter.per_page = per_page
|
99
|
-
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
100
|
-
filter.sort_direction = MangoPay::SortDirection::ASC
|
101
|
-
end
|
102
|
-
|
103
|
-
expect(results).to be_kind_of Array
|
104
|
-
expect(results.length).to be per_page
|
105
|
-
results.each.with_index do |result, index|
|
106
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
107
|
-
expect(result.id).not_to be_nil
|
108
|
-
next if index == results.length - 1
|
109
|
-
first_date = result.creation_date
|
110
|
-
second_date = results[index + 1].creation_date
|
111
|
-
expect(first_date < second_date).to be_truthy
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
describe '.of_user' do
|
118
|
-
# prepare test data
|
119
|
-
10.times do
|
120
|
-
persist_mandate build_mandate
|
121
|
-
end
|
122
|
-
|
123
|
-
describe "given an existing user entity's ID" do
|
124
|
-
id = NATURAL_USER_PERSISTED.id
|
125
|
-
|
126
|
-
context 'not having specified filters' do
|
127
|
-
default_per_page = 10
|
128
|
-
|
129
|
-
it 'retrieves a list with default parameters' do
|
130
|
-
results = MangoApi::Mandates.of_user id
|
131
|
-
|
132
|
-
expect(results).to be_kind_of Array
|
133
|
-
expect(results.length).to eq default_per_page
|
134
|
-
results.each do |result|
|
135
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
136
|
-
expect(result.id).not_to be_nil
|
137
|
-
expect(result.user_id).to eq id
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
context 'having specified filters' do
|
143
|
-
per_page = 8
|
144
|
-
|
145
|
-
it 'retrieves a list with specified parameters' do
|
146
|
-
results = MangoApi::Mandates.of_user id do |filter|
|
147
|
-
filter.page = 1
|
148
|
-
filter.per_page = per_page
|
149
|
-
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
150
|
-
filter.sort_direction = MangoPay::SortDirection::ASC
|
151
|
-
end
|
152
|
-
|
153
|
-
expect(results).to be_kind_of Array
|
154
|
-
expect(results.length).to be per_page
|
155
|
-
results.each.with_index do |result, index|
|
156
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
157
|
-
expect(result.id).not_to be_nil
|
158
|
-
expect(result.user_id).to eq id
|
159
|
-
next if index == results.length - 1
|
160
|
-
first_date = result.creation_date
|
161
|
-
second_date = results[index + 1].creation_date
|
162
|
-
expect(first_date <= second_date).to be_truthy
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
describe '.of_bank_account' do
|
170
|
-
|
171
|
-
context "given an existing bank account entity's ID" do
|
172
|
-
user_id = NATURAL_USER_PERSISTED.id
|
173
|
-
account_id = IBAN_ACCOUNT_PERSISTED.id
|
174
|
-
|
175
|
-
context 'not having specified filters' do
|
176
|
-
default_per_page = 10
|
177
|
-
|
178
|
-
it 'retrieves a list with default parameters' do
|
179
|
-
results = MangoApi::Mandates.of_bank_account(user_id, account_id)
|
180
|
-
|
181
|
-
expect(results).to be_kind_of Array
|
182
|
-
expect(results.length).to eq default_per_page
|
183
|
-
results.each.with_index do |result, index|
|
184
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
185
|
-
expect(result.id).not_to be_nil
|
186
|
-
next if index == results.length - 1
|
187
|
-
first_date = result.creation_date
|
188
|
-
second_date = results[index + 1].creation_date
|
189
|
-
expect(first_date <= second_date).to be_truthy
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
context 'having specified filters' do
|
195
|
-
per_page = 3
|
196
|
-
|
197
|
-
it 'retrieves a list according to specified parameters' do
|
198
|
-
results = MangoApi::Mandates.of_bank_account(user_id, account_id) do |filter|
|
199
|
-
filter.page = 1
|
200
|
-
filter.per_page = per_page
|
201
|
-
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
202
|
-
filter.sort_direction = MangoPay::SortDirection::ASC
|
203
|
-
end
|
204
|
-
|
205
|
-
expect(results).to be_kind_of Array
|
206
|
-
expect(results.length).to eq per_page
|
207
|
-
results.each.with_index do |result, index|
|
208
|
-
expect(result).to be_kind_of MangoModel::Mandate
|
209
|
-
expect(result.id).not_to be_nil
|
210
|
-
next if index == results.length - 1
|
211
|
-
first_date = result.creation_date
|
212
|
-
second_date = results[index + 1].creation_date
|
213
|
-
expect(first_date <= second_date).to be_truthy
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
1
|
+
require_relative '../../lib/mangopay/api/service/mandates'
|
2
|
+
require_relative '../../spec/context/mandate_context'
|
3
|
+
require_relative '../../lib/mangopay/common/sort_field'
|
4
|
+
require_relative '../../lib/mangopay/common/sort_direction'
|
5
|
+
|
6
|
+
describe MangoApi::Mandates do
|
7
|
+
include_context 'mandate_context'
|
8
|
+
|
9
|
+
describe '.create' do
|
10
|
+
|
11
|
+
context 'given a valid object' do
|
12
|
+
mandate = MANDATE_DATA
|
13
|
+
|
14
|
+
it 'creates the mandate entity' do
|
15
|
+
created = MangoApi::Mandates.create mandate
|
16
|
+
|
17
|
+
expect(created).to be_kind_of MangoModel::Mandate
|
18
|
+
expect(created.id).not_to be_nil
|
19
|
+
expect(created.document_url).not_to be_nil
|
20
|
+
expect(created.execution_type).to be MangoModel::MandateExecutionType::WEB
|
21
|
+
expect(created.mandate_type).to be MangoModel::MandateType::DIRECT_DEBIT
|
22
|
+
expect(created.redirect_url).not_to be_nil
|
23
|
+
expect(created.return_url).not_to be_nil
|
24
|
+
expect(created.status).to be MangoModel::MandateStatus::CREATED
|
25
|
+
expect(created.user_id).not_to be_nil
|
26
|
+
expect(its_the_same_mandate(mandate, created)).to be_truthy
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '.get' do
|
32
|
+
|
33
|
+
context "given an existing entity's ID" do
|
34
|
+
mandate = MANDATE_PERSISTED
|
35
|
+
id = mandate.id
|
36
|
+
|
37
|
+
it 'retrieves the corresponding entity' do
|
38
|
+
retrieved = MangoApi::Mandates.get id
|
39
|
+
|
40
|
+
expect(retrieved).to be_kind_of MangoModel::Mandate
|
41
|
+
expect(retrieved.id).to eq id
|
42
|
+
expect(its_the_same_mandate(mandate, retrieved)).to be_truthy
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# describe '.cancel' do
|
48
|
+
#
|
49
|
+
# context "given an existing entity's ID" do
|
50
|
+
# mandate = MangoModel::Mandate.new
|
51
|
+
# mandate.bank_account_id = GB_ACCOUNT_PERSISTED.id
|
52
|
+
# mandate.culture = MangoModel::MandateCultureCode::EN
|
53
|
+
# mandate.return_url = 'http://www.my-site.com/returnURL/'
|
54
|
+
# created = MangoApi::Mandates.create mandate
|
55
|
+
# id = created.id
|
56
|
+
#
|
57
|
+
# it 'cancels the corresponding entity' do
|
58
|
+
#
|
59
|
+
# # Attention
|
60
|
+
# #
|
61
|
+
# # To make this test pass, you must pause execution with a breakpoint on
|
62
|
+
# # the following line, and use your browser to open the page received
|
63
|
+
# # in the +created.redirect_url+ property and click the Confirm button
|
64
|
+
# # before continuing.
|
65
|
+
# canceled = MangoApi::Mandates.cancel id # Place breakpoint here
|
66
|
+
#
|
67
|
+
# expect(canceled).to be_kind_of MangoModel::Mandate
|
68
|
+
# expect(canceled.id).to eq id
|
69
|
+
# expect(canceled.status).to be MangoModel::MandateStatus::FAILED
|
70
|
+
# expect(canceled.result_code).to eq '001806' # cancelled
|
71
|
+
# end
|
72
|
+
# end
|
73
|
+
# end
|
74
|
+
|
75
|
+
describe '.all' do
|
76
|
+
|
77
|
+
context 'not having specified filters' do
|
78
|
+
default_per_page = 10
|
79
|
+
|
80
|
+
it 'retrieves a list with default parameters' do
|
81
|
+
results = MangoApi::Mandates.all
|
82
|
+
|
83
|
+
expect(results).to be_kind_of Array
|
84
|
+
expect(results.length).to eq default_per_page
|
85
|
+
results.each do |result|
|
86
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
87
|
+
expect(result.id).not_to be_nil
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'having specified filters' do
|
93
|
+
per_page = 11
|
94
|
+
|
95
|
+
it 'retrieves a list with specified parameters' do
|
96
|
+
results = MangoApi::Mandates.all do |filter|
|
97
|
+
filter.page = 1
|
98
|
+
filter.per_page = per_page
|
99
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
100
|
+
filter.sort_direction = MangoPay::SortDirection::ASC
|
101
|
+
end
|
102
|
+
|
103
|
+
expect(results).to be_kind_of Array
|
104
|
+
expect(results.length).to be per_page
|
105
|
+
results.each.with_index do |result, index|
|
106
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
107
|
+
expect(result.id).not_to be_nil
|
108
|
+
next if index == results.length - 1
|
109
|
+
first_date = result.creation_date
|
110
|
+
second_date = results[index + 1].creation_date
|
111
|
+
expect(first_date < second_date).to be_truthy
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe '.of_user' do
|
118
|
+
# prepare test data
|
119
|
+
10.times do
|
120
|
+
persist_mandate build_mandate
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "given an existing user entity's ID" do
|
124
|
+
id = NATURAL_USER_PERSISTED.id
|
125
|
+
|
126
|
+
context 'not having specified filters' do
|
127
|
+
default_per_page = 10
|
128
|
+
|
129
|
+
it 'retrieves a list with default parameters' do
|
130
|
+
results = MangoApi::Mandates.of_user id
|
131
|
+
|
132
|
+
expect(results).to be_kind_of Array
|
133
|
+
expect(results.length).to eq default_per_page
|
134
|
+
results.each do |result|
|
135
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
136
|
+
expect(result.id).not_to be_nil
|
137
|
+
expect(result.user_id).to eq id
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
context 'having specified filters' do
|
143
|
+
per_page = 8
|
144
|
+
|
145
|
+
it 'retrieves a list with specified parameters' do
|
146
|
+
results = MangoApi::Mandates.of_user id do |filter|
|
147
|
+
filter.page = 1
|
148
|
+
filter.per_page = per_page
|
149
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
150
|
+
filter.sort_direction = MangoPay::SortDirection::ASC
|
151
|
+
end
|
152
|
+
|
153
|
+
expect(results).to be_kind_of Array
|
154
|
+
expect(results.length).to be per_page
|
155
|
+
results.each.with_index do |result, index|
|
156
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
157
|
+
expect(result.id).not_to be_nil
|
158
|
+
expect(result.user_id).to eq id
|
159
|
+
next if index == results.length - 1
|
160
|
+
first_date = result.creation_date
|
161
|
+
second_date = results[index + 1].creation_date
|
162
|
+
expect(first_date <= second_date).to be_truthy
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
describe '.of_bank_account' do
|
170
|
+
|
171
|
+
context "given an existing bank account entity's ID" do
|
172
|
+
user_id = NATURAL_USER_PERSISTED.id
|
173
|
+
account_id = IBAN_ACCOUNT_PERSISTED.id
|
174
|
+
|
175
|
+
context 'not having specified filters' do
|
176
|
+
default_per_page = 10
|
177
|
+
|
178
|
+
it 'retrieves a list with default parameters' do
|
179
|
+
results = MangoApi::Mandates.of_bank_account(user_id, account_id)
|
180
|
+
|
181
|
+
expect(results).to be_kind_of Array
|
182
|
+
expect(results.length).to eq default_per_page
|
183
|
+
results.each.with_index do |result, index|
|
184
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
185
|
+
expect(result.id).not_to be_nil
|
186
|
+
next if index == results.length - 1
|
187
|
+
first_date = result.creation_date
|
188
|
+
second_date = results[index + 1].creation_date
|
189
|
+
expect(first_date <= second_date).to be_truthy
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
context 'having specified filters' do
|
195
|
+
per_page = 3
|
196
|
+
|
197
|
+
it 'retrieves a list according to specified parameters' do
|
198
|
+
results = MangoApi::Mandates.of_bank_account(user_id, account_id) do |filter|
|
199
|
+
filter.page = 1
|
200
|
+
filter.per_page = per_page
|
201
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
202
|
+
filter.sort_direction = MangoPay::SortDirection::ASC
|
203
|
+
end
|
204
|
+
|
205
|
+
expect(results).to be_kind_of Array
|
206
|
+
expect(results.length).to eq per_page
|
207
|
+
results.each.with_index do |result, index|
|
208
|
+
expect(result).to be_kind_of MangoModel::Mandate
|
209
|
+
expect(result.id).not_to be_nil
|
210
|
+
next if index == results.length - 1
|
211
|
+
first_date = result.creation_date
|
212
|
+
second_date = results[index + 1].creation_date
|
213
|
+
expect(first_date <= second_date).to be_truthy
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
219
|
end
|
@@ -1,41 +1,41 @@
|
|
1
|
-
require_relative '../../lib/mangopay/api/service/oauth_tokens'
|
2
|
-
require_relative '../../lib/mangopay/api/http_client'
|
3
|
-
require_relative '../../lib/mangopay/common/response_error'
|
4
|
-
require_relative '../context/user_context'
|
5
|
-
|
6
|
-
describe MangoApi::OAuthTokens do
|
7
|
-
include_context 'user_context'
|
8
|
-
|
9
|
-
describe '.create' do
|
10
|
-
|
11
|
-
context 'having a valid configuration' do
|
12
|
-
config = MangoPay.configuration
|
13
|
-
|
14
|
-
it 'creates a valid authorization token' do
|
15
|
-
token = MangoApi::OAuthTokens.create(config)
|
16
|
-
# noinspection RubyStringKeysInHashInspection
|
17
|
-
headers = {
|
18
|
-
'Authorization' => "#{token['token_type']} #{token['access_token']}",
|
19
|
-
'User-Agent' => "MANGOPAY V2 RubyBindings/#{MangoPay::VERSION}",
|
20
|
-
'Content-Type' => 'application/json'
|
21
|
-
}
|
22
|
-
url = 'https://api.sandbox.mangopay.com/v2.01/sdk-unit-tests/users/natural'
|
23
|
-
# noinspection RubyResolve
|
24
|
-
user = NATURAL_USER_DATA
|
25
|
-
begin
|
26
|
-
# launch a request to the MangoPay server using
|
27
|
-
# the newly-created token as Authorization header
|
28
|
-
MangoApi::HttpClient.post_raw(URI(url)) do |request|
|
29
|
-
request.body = user.jsonify!
|
30
|
-
headers.each do |k, v|
|
31
|
-
request.add_field(k, v)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
rescue MangoApi::ResponseError => e
|
35
|
-
raise "unsuccessful request using created token\n"\
|
36
|
-
"#{e.code} #{e.details}\n#{e.message}"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
1
|
+
require_relative '../../lib/mangopay/api/service/oauth_tokens'
|
2
|
+
require_relative '../../lib/mangopay/api/http_client'
|
3
|
+
require_relative '../../lib/mangopay/common/response_error'
|
4
|
+
require_relative '../context/user_context'
|
5
|
+
|
6
|
+
describe MangoApi::OAuthTokens do
|
7
|
+
include_context 'user_context'
|
8
|
+
|
9
|
+
describe '.create' do
|
10
|
+
|
11
|
+
context 'having a valid configuration' do
|
12
|
+
config = MangoPay.configuration
|
13
|
+
|
14
|
+
it 'creates a valid authorization token' do
|
15
|
+
token = MangoApi::OAuthTokens.create(config)
|
16
|
+
# noinspection RubyStringKeysInHashInspection
|
17
|
+
headers = {
|
18
|
+
'Authorization' => "#{token['token_type']} #{token['access_token']}",
|
19
|
+
'User-Agent' => "MANGOPAY V2 RubyBindings/#{MangoPay::VERSION}",
|
20
|
+
'Content-Type' => 'application/json'
|
21
|
+
}
|
22
|
+
url = 'https://api.sandbox.mangopay.com/v2.01/sdk-unit-tests/users/natural'
|
23
|
+
# noinspection RubyResolve
|
24
|
+
user = NATURAL_USER_DATA
|
25
|
+
begin
|
26
|
+
# launch a request to the MangoPay server using
|
27
|
+
# the newly-created token as Authorization header
|
28
|
+
MangoApi::HttpClient.post_raw(URI(url)) do |request|
|
29
|
+
request.body = user.jsonify!
|
30
|
+
headers.each do |k, v|
|
31
|
+
request.add_field(k, v)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
rescue MangoApi::ResponseError => e
|
35
|
+
raise "unsuccessful request using created token\n"\
|
36
|
+
"#{e.code} #{e.details}\n#{e.message}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
41
|
end
|