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.
Files changed (234) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +29 -29
  3. data/.rspec +3 -3
  4. data/.rubocop.yml +1 -1
  5. data/.travis.yml +21 -13
  6. data/Gemfile +2 -2
  7. data/LICENSE +20 -20
  8. data/README.md +379 -379
  9. data/bin/mangopay +9 -9
  10. data/lib/mangopay.rb +132 -132
  11. data/lib/mangopay/api/api.rb +8 -8
  12. data/lib/mangopay/api/api_methods.rb +160 -136
  13. data/lib/mangopay/api/auth_token_manager.rb +173 -173
  14. data/lib/mangopay/api/http_client.rb +324 -324
  15. data/lib/mangopay/api/service/bank_accounts.rb +145 -145
  16. data/lib/mangopay/api/service/banking_aliases.rb +83 -0
  17. data/lib/mangopay/api/service/cards.rb +151 -151
  18. data/lib/mangopay/api/service/client_wallets.rb +88 -88
  19. data/lib/mangopay/api/service/clients.rb +67 -67
  20. data/lib/mangopay/api/service/dispute_documents.rb +157 -157
  21. data/lib/mangopay/api/service/disputes.rb +186 -186
  22. data/lib/mangopay/api/service/e_money.rb +63 -41
  23. data/lib/mangopay/api/service/events.rb +46 -46
  24. data/lib/mangopay/api/service/hooks.rb +92 -92
  25. data/lib/mangopay/api/service/kyc_documents.rb +152 -152
  26. data/lib/mangopay/api/service/mandates.rb +141 -141
  27. data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
  28. data/lib/mangopay/api/service/pay_ins.rb +369 -259
  29. data/lib/mangopay/api/service/pay_outs.rb +53 -53
  30. data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
  31. data/lib/mangopay/api/service/refunds.rb +159 -61
  32. data/lib/mangopay/api/service/reports.rb +150 -150
  33. data/lib/mangopay/api/service/repudiations.rb +31 -31
  34. data/lib/mangopay/api/service/responses.rb +101 -101
  35. data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
  36. data/lib/mangopay/api/service/transactions.rb +246 -182
  37. data/lib/mangopay/api/service/transfers.rb +53 -53
  38. data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
  39. data/lib/mangopay/api/service/users.rb +162 -162
  40. data/lib/mangopay/api/service/wallets.rb +98 -98
  41. data/lib/mangopay/api/uri_provider.rb +32 -34
  42. data/lib/mangopay/common/json_tag_converter.rb +70 -67
  43. data/lib/mangopay/common/jsonifier.rb +266 -248
  44. data/lib/mangopay/common/log_provider.rb +33 -33
  45. data/lib/mangopay/common/rate_limit_interval.rb +16 -16
  46. data/lib/mangopay/common/read_only_fields.rb +26 -26
  47. data/lib/mangopay/common/response_error.rb +61 -61
  48. data/lib/mangopay/common/sort_direction.rb +14 -14
  49. data/lib/mangopay/common/sort_field.rb +12 -12
  50. data/lib/mangopay/common/template_url_options.rb +8 -8
  51. data/lib/mangopay/configuration.rb +38 -38
  52. data/lib/mangopay/environment.rb +65 -65
  53. data/lib/mangopay/model/address.rb +26 -26
  54. data/lib/mangopay/model/billing.rb +13 -0
  55. data/lib/mangopay/model/birthplace.rb +15 -0
  56. data/lib/mangopay/model/declared_ubo.rb +20 -20
  57. data/lib/mangopay/model/dispute_reason.rb +14 -14
  58. data/lib/mangopay/model/document_page_consult.rb +14 -14
  59. data/lib/mangopay/model/e_money.rb +17 -17
  60. data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
  61. data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
  62. data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
  63. data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
  64. data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
  65. data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
  66. data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
  67. data/lib/mangopay/model/entity/banking_alias.rb +27 -0
  68. data/lib/mangopay/model/entity/card.rb +44 -44
  69. data/lib/mangopay/model/entity/card_registration.rb +42 -42
  70. data/lib/mangopay/model/entity/client.rb +65 -62
  71. data/lib/mangopay/model/entity/client_wallet.rb +22 -22
  72. data/lib/mangopay/model/entity/dispute.rb +49 -49
  73. data/lib/mangopay/model/entity/dispute_document.rb +28 -28
  74. data/lib/mangopay/model/entity/entity_base.rb +17 -17
  75. data/lib/mangopay/model/entity/hook.rb +25 -25
  76. data/lib/mangopay/model/entity/kyc_document.rb +27 -27
  77. data/lib/mangopay/model/entity/mandate.rb +50 -50
  78. data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
  79. data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
  80. data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
  81. data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
  82. data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
  83. data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
  84. data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
  85. data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
  86. data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
  87. data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
  88. data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
  89. data/lib/mangopay/model/entity/pay_out.rb +21 -21
  90. data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
  91. data/lib/mangopay/model/entity/refund.rb +17 -17
  92. data/lib/mangopay/model/entity/report.rb +50 -50
  93. data/lib/mangopay/model/entity/repudiation.rb +17 -17
  94. data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
  95. data/lib/mangopay/model/entity/transaction.rb +51 -51
  96. data/lib/mangopay/model/entity/transfer.rb +12 -12
  97. data/lib/mangopay/model/entity/ubo.rb +30 -0
  98. data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
  99. data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
  100. data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
  101. data/lib/mangopay/model/entity/user/user.rb +17 -17
  102. data/lib/mangopay/model/entity/wallet.rb +27 -27
  103. data/lib/mangopay/model/enum/account_type.rb +23 -23
  104. data/lib/mangopay/model/enum/avs_result.rb +19 -0
  105. data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
  106. data/lib/mangopay/model/enum/business_type.rb +17 -0
  107. data/lib/mangopay/model/enum/card_status.rb +14 -14
  108. data/lib/mangopay/model/enum/card_type.rb +32 -32
  109. data/lib/mangopay/model/enum/card_validity.rb +18 -18
  110. data/lib/mangopay/model/enum/country_iso.rb +758 -758
  111. data/lib/mangopay/model/enum/culture_code.rb +43 -43
  112. data/lib/mangopay/model/enum/currency_iso.rb +551 -551
  113. data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
  114. data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
  115. data/lib/mangopay/model/enum/deposit_type.rb +14 -14
  116. data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
  117. data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
  118. data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
  119. data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
  120. data/lib/mangopay/model/enum/dispute_status.rb +20 -20
  121. data/lib/mangopay/model/enum/dispute_type.rb +14 -14
  122. data/lib/mangopay/model/enum/document_status.rb +20 -20
  123. data/lib/mangopay/model/enum/download_format.rb +10 -10
  124. data/lib/mangopay/model/enum/event_type.rb +76 -73
  125. data/lib/mangopay/model/enum/funds_type.rb +14 -14
  126. data/lib/mangopay/model/enum/hook_status.rb +12 -12
  127. data/lib/mangopay/model/enum/hook_validity.rb +14 -14
  128. data/lib/mangopay/model/enum/income_range.rb +20 -20
  129. data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
  130. data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
  131. data/lib/mangopay/model/enum/kyc_level.rb +12 -12
  132. data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
  133. data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
  134. data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
  135. data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
  136. data/lib/mangopay/model/enum/mandate_status.rb +23 -23
  137. data/lib/mangopay/model/enum/mandate_type.rb +10 -10
  138. data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
  139. data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
  140. data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
  141. data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
  142. data/lib/mangopay/model/enum/payment_status.rb +20 -20
  143. data/lib/mangopay/model/enum/person_type.rb +14 -14
  144. data/lib/mangopay/model/enum/platform_type.rb +22 -22
  145. data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
  146. data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
  147. data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
  148. data/lib/mangopay/model/enum/report_status.rb +16 -16
  149. data/lib/mangopay/model/enum/report_type.rb +12 -12
  150. data/lib/mangopay/model/enum/sector.rb +29 -0
  151. data/lib/mangopay/model/enum/secure_mode.rb +15 -15
  152. data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
  153. data/lib/mangopay/model/enum/transaction_status.rb +14 -14
  154. data/lib/mangopay/model/enum/transaction_type.rb +14 -14
  155. data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
  156. data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
  157. data/lib/mangopay/model/event.rb +17 -17
  158. data/lib/mangopay/model/model.rb +214 -193
  159. data/lib/mangopay/model/money.rb +16 -16
  160. data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
  161. data/lib/mangopay/model/platform_categorization.rb +15 -0
  162. data/lib/mangopay/model/refund_reason.rb +14 -14
  163. data/lib/mangopay/model/report_filter.rb +82 -82
  164. data/lib/mangopay/model/request/cancel_request.rb +15 -15
  165. data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
  166. data/lib/mangopay/model/request/currency_request.rb +12 -12
  167. data/lib/mangopay/model/request/deactivation_request.rb +9 -9
  168. data/lib/mangopay/model/request/filter_request.rb +37 -37
  169. data/lib/mangopay/model/request/submit_document_request.rb +13 -13
  170. data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
  171. data/lib/mangopay/model/request/upload_file_request.rb +8 -8
  172. data/lib/mangopay/model/response_replica.rb +26 -26
  173. data/lib/mangopay/model/security_info.rb +13 -0
  174. data/lib/mangopay/util/custom_formatter.rb +11 -11
  175. data/lib/mangopay/util/custom_logger.rb +33 -33
  176. data/lib/mangopay/util/enum.rb +51 -51
  177. data/lib/mangopay/util/file_encoder.rb +15 -15
  178. data/lib/mangopay/util/non_instantiable.rb +5 -5
  179. data/lib/mangopay/util/storage_strategy.rb +9 -9
  180. data/lib/mangopay/util/void_logger.rb +5 -5
  181. data/mangopay-v4.gemspec +32 -0
  182. data/mangopay.gemspec +32 -32
  183. data/spec/context/address_context.rb +24 -24
  184. data/spec/context/bank_account_context.rb +137 -137
  185. data/spec/context/banking_alias_context.rb +17 -0
  186. data/spec/context/birthplace_context.rb +17 -0
  187. data/spec/context/card_context.rb +45 -45
  188. data/spec/context/client_context.rb +43 -44
  189. data/spec/context/dispute_context.rb +36 -36
  190. data/spec/context/dispute_document_context.rb +19 -19
  191. data/spec/context/hook_context.rb +15 -15
  192. data/spec/context/kyc_document_context.rb +22 -22
  193. data/spec/context/mandate_context.rb +26 -26
  194. data/spec/context/pay_in_context.rb +319 -224
  195. data/spec/context/pay_out_context.rb +39 -38
  196. data/spec/context/pre_authorization_context.rb +44 -40
  197. data/spec/context/refund_context.rb +32 -32
  198. data/spec/context/report_context.rb +21 -21
  199. data/spec/context/repudiation_context.rb +18 -18
  200. data/spec/context/settlement_transfer_context.rb +27 -27
  201. data/spec/context/transfer_context.rb +50 -50
  202. data/spec/context/ubo_declaration_context.rb +29 -24
  203. data/spec/context/user_context.rb +83 -82
  204. data/spec/context/wallet_context.rb +52 -52
  205. data/spec/mangopay/bank_accounts_spec.rb +228 -228
  206. data/spec/mangopay/banking_alias_spec.rb +85 -0
  207. data/spec/mangopay/cards_spec.rb +133 -134
  208. data/spec/mangopay/client_wallets_spec.rb +147 -147
  209. data/spec/mangopay/clients_spec.rb +56 -54
  210. data/spec/mangopay/configuration_spec.rb +125 -125
  211. data/spec/mangopay/dispute_documents_spec.rb +173 -173
  212. data/spec/mangopay/disputes_spec.rb +264 -264
  213. data/spec/mangopay/e_money_spec.rb +57 -37
  214. data/spec/mangopay/events_spec.rb +49 -49
  215. data/spec/mangopay/hooks_spec.rb +70 -70
  216. data/spec/mangopay/kyc_documents_spec.rb +179 -179
  217. data/spec/mangopay/mandates_spec.rb +218 -218
  218. data/spec/mangopay/oauth_tokens_spec.rb +40 -40
  219. data/spec/mangopay/pay_ins_spec.rb +279 -180
  220. data/spec/mangopay/pay_outs_spec.rb +38 -38
  221. data/spec/mangopay/pre_authorizations_spec.rb +134 -57
  222. data/spec/mangopay/refunds_spec.rb +187 -39
  223. data/spec/mangopay/reports_spec.rb +118 -120
  224. data/spec/mangopay/responses_spec.rb +324 -294
  225. data/spec/mangopay/settlement_transfers_spec.rb +36 -36
  226. data/spec/mangopay/transactions_spec.rb +347 -232
  227. data/spec/mangopay/transfers_spec.rb +37 -37
  228. data/spec/mangopay/ubo_declarations_spec.rb +127 -64
  229. data/spec/mangopay/users_spec.rb +145 -145
  230. data/spec/mangopay/wallets_spec.rb +103 -103
  231. data/spec/spec_helper.rb +72 -72
  232. data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
  233. data/spec/tmp/mangopay.log.tmp +1201 -0
  234. 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