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,38 +1,58 @@
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
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_year' 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
+ year = 2019
15
+ it "retrieves the corresponding e-money entity for year #{year} in default currency" do
16
+ retrieved = MangoApi::EMoney.of_user_year id, year
17
+ expect(retrieved).to be_kind_of MangoModel::EMoney
18
+ expect(retrieved.credited_e_money.currency).to be default_currency
19
+ expect(retrieved.debited_e_money.currency).to be default_currency
20
+ end
21
+ end
22
+
23
+ # TODO: Results always come in EUR
24
+ # context 'having specified currency' do
25
+ # currency = MangoModel::CurrencyIso::GBP
26
+ #
27
+ # it 'retrieves the corresponding e-money entity in specified currency' do
28
+ # retrieved = MangoApi::EMoney.of_user id, currency
29
+ #
30
+ # expect(retrieved).to be_kind_of MangoModel::EMoney
31
+ # expect(retrieved.credited_e_money.currency).to gebe currency
32
+ # expect(retrieved.debited_e_money.currency).to be currency
33
+ # end
34
+ # end
35
+ end
36
+ end
37
+
38
+ describe '.of_user_month' do
39
+
40
+ describe "given an existing user entity's ID" do
41
+ id = NATURAL_USER_PERSISTED.id
42
+
43
+ context 'not having specified currency' do
44
+ default_currency = MangoModel::CurrencyIso::EUR
45
+
46
+ year = 2019
47
+ month = 4
48
+
49
+ it "retrieves the corresponding e-money entity for date #{year}/#{month} in default currency" do
50
+ retrieved = MangoApi::EMoney.of_user_month id, year, month
51
+ expect(retrieved).to be_kind_of MangoModel::EMoney
52
+ expect(retrieved.credited_e_money.currency).to be default_currency
53
+ expect(retrieved.debited_e_money.currency).to be default_currency
54
+ end
55
+ end
56
+ end
57
+ end
38
58
  end
@@ -1,50 +1,50 @@
1
- require_relative '../../lib/mangopay/api/service/events'
2
- require_relative '../../lib/mangopay/common/sort_field'
3
- require_relative '../../lib/mangopay/common/sort_direction'
4
-
5
- describe MangoApi::Events do
6
-
7
- describe '.all' do
8
-
9
- context 'from a correctly-configured environment' do
10
- context 'not having specified filters' do
11
- default_per_page = 10
12
-
13
- it 'retrieves list with default parameters' do
14
- results = MangoApi::Events.all
15
-
16
- expect(results).to be_kind_of Array
17
- expect(results.length).to eq default_per_page
18
- results.each do |result|
19
- expect(result).to be_kind_of MangoModel::Event
20
- expect(result.resource_id).not_to be_nil
21
- end
22
- end
23
- end
24
-
25
- context 'having specified filters' do
26
- per_page = 13
27
-
28
- it 'retrieves list with specified parameters' do
29
- results = MangoApi::Events.all do |filter|
30
- filter.page = 1
31
- filter.per_page = per_page
32
- filter.sort_field = MangoPay::SortField::DATE
33
- filter.sort_direction = MangoPay::SortDirection::DESC
34
- end
35
-
36
- expect(results).to be_kind_of Array
37
- expect(results.length).to eq per_page
38
- results.each.with_index do |result, index|
39
- expect(result).to be_kind_of MangoModel::Event
40
- expect(result.resource_id).not_to be_nil
41
- next if index == results.length - 1
42
- first_date = result.date
43
- second_date = results[index + 1].date
44
- expect(first_date >= second_date).to be_truthy
45
- end
46
- end
47
- end
48
- end
49
- end
1
+ require_relative '../../lib/mangopay/api/service/events'
2
+ require_relative '../../lib/mangopay/common/sort_field'
3
+ require_relative '../../lib/mangopay/common/sort_direction'
4
+
5
+ describe MangoApi::Events do
6
+
7
+ describe '.all' do
8
+
9
+ context 'from a correctly-configured environment' do
10
+ context 'not having specified filters' do
11
+ default_per_page = 10
12
+
13
+ it 'retrieves list with default parameters' do
14
+ results = MangoApi::Events.all
15
+
16
+ expect(results).to be_kind_of Array
17
+ expect(results.length).to eq default_per_page
18
+ results.each do |result|
19
+ expect(result).to be_kind_of MangoModel::Event
20
+ expect(result.resource_id).not_to be_nil
21
+ end
22
+ end
23
+ end
24
+
25
+ context 'having specified filters' do
26
+ per_page = 13
27
+
28
+ it 'retrieves list with specified parameters' do
29
+ results = MangoApi::Events.all do |filter|
30
+ filter.page = 1
31
+ filter.per_page = per_page
32
+ filter.sort_field = MangoPay::SortField::DATE
33
+ filter.sort_direction = MangoPay::SortDirection::DESC
34
+ end
35
+
36
+ expect(results).to be_kind_of Array
37
+ expect(results.length).to eq per_page
38
+ results.each.with_index do |result, index|
39
+ expect(result).to be_kind_of MangoModel::Event
40
+ expect(result.resource_id).not_to be_nil
41
+ next if index == results.length - 1
42
+ first_date = result.date
43
+ second_date = results[index + 1].date
44
+ expect(first_date >= second_date).to be_truthy
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
50
  end
@@ -1,71 +1,71 @@
1
- require_relative '../context/hook_context'
2
- require_relative '../../lib/mangopay/api/service/hooks'
3
- require_relative '../../lib/mangopay/model/enum/hook_status'
4
- require_relative '../../lib/mangopay/common/sort_field'
5
- require_relative '../../lib/mangopay/common/sort_direction'
6
-
7
- describe MangoApi::Hooks do
8
- include_context 'hook_context'
9
-
10
-
11
- describe '.create' do
12
-
13
- context 'given a valid object' do
14
- hook = HOOK_DATA
15
-
16
- it 'creates the hook entity' do
17
- expect { MangoApi::Hooks.create hook }.to raise_error(MangoPay::ResponseError, /already.+registered/)
18
- end
19
- end
20
- end
21
-
22
- describe '.update' do
23
-
24
- context 'given a valid object' do
25
- url = 'https://www.hello.com/hook'
26
- status = MangoModel::HookStatus::DISABLED
27
- created = HOOK_PERSISTED
28
- created.url = url
29
- created.status = status
30
-
31
- it 'updates the corresponding entity' do
32
- updated = MangoApi::Hooks.update created
33
-
34
- expect(updated).to be_kind_of MangoModel::Hook
35
- expect(updated.id).to eq created.id
36
- expect(updated.url).to eq url
37
- expect(updated.status).to be status
38
- end
39
- end
40
- end
41
-
42
- describe '.get' do
43
-
44
- context "given an existing entity's ID" do
45
- id = HOOK_PERSISTED.id
46
-
47
- it 'retrieves the corresponding entity' do
48
- retrieved = MangoApi::Hooks.get id
49
-
50
- expect(retrieved).to be_kind_of MangoModel::Hook
51
- expect(retrieved.id).to eq id
52
- end
53
- end
54
- end
55
-
56
- describe '.all' do
57
-
58
- context 'not having specified filters' do
59
-
60
- it 'retrieves list of all events' do
61
- results = MangoApi::Hooks.all
62
-
63
- expect(results).to be_kind_of Array
64
- results.each do |result|
65
- expect(result).to be_kind_of MangoModel::Hook
66
- expect(result.id).not_to be_nil
67
- end
68
- end
69
- end
70
- end
1
+ require_relative '../context/hook_context'
2
+ require_relative '../../lib/mangopay/api/service/hooks'
3
+ require_relative '../../lib/mangopay/model/enum/hook_status'
4
+ require_relative '../../lib/mangopay/common/sort_field'
5
+ require_relative '../../lib/mangopay/common/sort_direction'
6
+
7
+ describe MangoApi::Hooks do
8
+ include_context 'hook_context'
9
+
10
+
11
+ describe '.create' do
12
+
13
+ context 'given a valid object' do
14
+ hook = HOOK_DATA
15
+
16
+ it 'creates the hook entity' do
17
+ expect { MangoApi::Hooks.create hook }.to raise_error(MangoPay::ResponseError, /already.+registered/)
18
+ end
19
+ end
20
+ end
21
+
22
+ describe '.update' do
23
+
24
+ context 'given a valid object' do
25
+ url = 'https://www.hello.com/hook'
26
+ status = MangoModel::HookStatus::DISABLED
27
+ created = HOOK_PERSISTED
28
+ created.url = url
29
+ created.status = status
30
+
31
+ it 'updates the corresponding entity' do
32
+ updated = MangoApi::Hooks.update created
33
+
34
+ expect(updated).to be_kind_of MangoModel::Hook
35
+ expect(updated.id).to eq created.id
36
+ expect(updated.url).to eq url
37
+ expect(updated.status).to be status
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.get' do
43
+
44
+ context "given an existing entity's ID" do
45
+ id = HOOK_PERSISTED.id
46
+
47
+ it 'retrieves the corresponding entity' do
48
+ retrieved = MangoApi::Hooks.get id
49
+
50
+ expect(retrieved).to be_kind_of MangoModel::Hook
51
+ expect(retrieved.id).to eq id
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '.all' do
57
+
58
+ context 'not having specified filters' do
59
+
60
+ it 'retrieves list of all events' do
61
+ results = MangoApi::Hooks.all
62
+
63
+ expect(results).to be_kind_of Array
64
+ results.each do |result|
65
+ expect(result).to be_kind_of MangoModel::Hook
66
+ expect(result.id).not_to be_nil
67
+ end
68
+ end
69
+ end
70
+ end
71
71
  end
@@ -1,180 +1,180 @@
1
- require_relative '../context/kyc_document_context'
2
- require_relative '../../lib/mangopay/api/service/kyc_documents'
3
- require_relative '../../lib/mangopay/model/document_page_consult'
4
- require_relative '../../lib/mangopay/model/entity/kyc_document'
5
- require_relative '../../lib/mangopay/common/sort_field'
6
- require_relative '../../lib/mangopay/common/sort_direction'
7
-
8
- describe MangoApi::KycDocuments do
9
- include_context 'kyc_document_context'
10
-
11
- describe '.create' do
12
-
13
- context 'given a valid object' do
14
- kyc_doc = MangoModel::KycDocument.new
15
- kyc_doc.type = MangoModel::KycDocumentType::IDENTITY_PROOF
16
-
17
- it 'creates the kyc document entity' do
18
- created = MangoApi::KycDocuments.create kyc_doc, NATURAL_USER_PERSISTED.id
19
-
20
- expect(created).to be_kind_of MangoModel::KycDocument
21
- expect(created.id).not_to be_nil
22
- expect(created.status).to be MangoModel::DocumentStatus::CREATED
23
- expect(its_the_same_kyc_doc(kyc_doc, created)).to be_truthy
24
- end
25
- end
26
- end
27
-
28
- describe '.upload_page' do
29
-
30
- context "given a valid file's path" do
31
- path = File.join(File.dirname(__FILE__), '..', 'resources', 'test_pdf.pdf')
32
-
33
- it "uploads the file as one of the KYC document's pages" do
34
- response = MangoApi::KycDocuments.upload_page KYC_DOCUMENT_PERSISTED.id,
35
- NATURAL_USER_PERSISTED.id,
36
- path
37
- expect(response).to be_nil
38
- end
39
- end
40
- end
41
-
42
- describe '.submit' do
43
-
44
- context "given an existing entity's ID" do
45
- created = KYC_DOCUMENT_PERSISTED
46
- id = created.id
47
- # upload a page to allow submission
48
- path = File.join(File.dirname(__FILE__), '..', 'resources', 'test_pdf.pdf')
49
- MangoApi::KycDocuments.upload_page KYC_DOCUMENT_PERSISTED.id,
50
- NATURAL_USER_PERSISTED.id,
51
- path
52
-
53
- it 'submits the corresponding entity for approval' do
54
- submitted = MangoApi::KycDocuments.submit id, NATURAL_USER_PERSISTED.id
55
-
56
- expect(submitted).to be_kind_of MangoModel::KycDocument
57
- expect(submitted.id).to eq id
58
- expect(submitted.status).to be MangoModel::DocumentStatus::VALIDATION_ASKED
59
- expect(its_the_same_kyc_doc(created, submitted)).to be_truthy
60
- end
61
- end
62
- end
63
-
64
- describe '.of_user' do
65
-
66
- context "given an existing user entity's ID" do
67
- id = NATURAL_USER_PERSISTED.id
68
- # prepare some test data
69
- 10.times do
70
- persist_kyc_doc KYC_DOCUMENT_DATA
71
- end
72
-
73
- context 'not having specified filters' do
74
- default_per_page = 10
75
-
76
- it 'retrieves list with default parameters' do
77
- results = MangoApi::KycDocuments.of_user id
78
-
79
- expect(results).to be_kind_of Array
80
- expect(results.length).to eq default_per_page
81
- results.each do |result|
82
- expect(result).to be_kind_of MangoModel::KycDocument
83
- expect(result.id).not_to be_nil
84
- expect(result.user_id).to eq id
85
- end
86
- end
87
- end
88
-
89
- context 'having specified filters' do
90
- per_page = 11
91
-
92
- it 'retrieves list with specified parameters' do
93
- results = MangoApi::KycDocuments.of_user 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::ASC
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::KycDocument
104
- expect(result.id).not_to be_nil
105
- expect(result.user_id).to eq id
106
- next if index == results.length - 1
107
- first_date = result.creation_date
108
- second_date = results[index + 1].creation_date
109
- expect(first_date <= second_date).to be_truthy
110
- end
111
- end
112
- end
113
- end
114
- end
115
-
116
- describe '.all' do
117
-
118
- context 'from a correctly-configured environment' do
119
- # prepare some test data
120
- 10.times do
121
- persist_kyc_doc KYC_DOCUMENT_DATA
122
- end
123
-
124
- context 'not having specified filters' do
125
- default_per_page = 10
126
-
127
- it 'retrieves list with default parameters' do
128
- results = MangoApi::KycDocuments.all
129
-
130
- expect(results).to be_kind_of Array
131
- expect(results.length).to eq default_per_page
132
- results.each do |result|
133
- expect(result).to be_kind_of MangoModel::KycDocument
134
- expect(result.id).not_to be_nil
135
- end
136
- end
137
- end
138
-
139
- context 'having specified filters' do
140
- per_page = 11
141
-
142
- it 'retrieves list with specified parameters' do
143
- results = MangoApi::KycDocuments.all do |filter|
144
- filter.page = 1
145
- filter.per_page = per_page
146
- filter.sort_field = MangoPay::SortField::CREATION_DATE
147
- filter.sort_direction = MangoPay::SortDirection::ASC
148
- end
149
-
150
- expect(results).to be_kind_of Array
151
- expect(results.length).to eq per_page
152
- results.each.with_index do |result, index|
153
- expect(result).to be_kind_of MangoModel::KycDocument
154
- expect(result.id).not_to be_nil
155
- next if index == results.length - 1
156
- first_date = result.creation_date
157
- second_date = results[index + 1].creation_date
158
- expect(first_date <= second_date).to be_truthy
159
- end
160
- end
161
- end
162
- end
163
- end
164
-
165
- describe '.consult' do
166
-
167
- context "given an existing entity's ID" do
168
- id = KYC_DOCUMENT_PERSISTED.id
169
-
170
- it 'creates the document page consult entities' do
171
- results = MangoApi::KycDocuments.consult id
172
-
173
- expect(results).to be_kind_of Array
174
- results.each do |result|
175
- expect(result).to be_kind_of MangoModel::DocumentPageConsult
176
- end
177
- end
178
- end
179
- end
1
+ require_relative '../context/kyc_document_context'
2
+ require_relative '../../lib/mangopay/api/service/kyc_documents'
3
+ require_relative '../../lib/mangopay/model/document_page_consult'
4
+ require_relative '../../lib/mangopay/model/entity/kyc_document'
5
+ require_relative '../../lib/mangopay/common/sort_field'
6
+ require_relative '../../lib/mangopay/common/sort_direction'
7
+
8
+ describe MangoApi::KycDocuments do
9
+ include_context 'kyc_document_context'
10
+
11
+ describe '.create' do
12
+
13
+ context 'given a valid object' do
14
+ kyc_doc = MangoModel::KycDocument.new
15
+ kyc_doc.type = MangoModel::KycDocumentType::IDENTITY_PROOF
16
+
17
+ it 'creates the kyc document entity' do
18
+ created = MangoApi::KycDocuments.create kyc_doc, NATURAL_USER_PERSISTED.id
19
+
20
+ expect(created).to be_kind_of MangoModel::KycDocument
21
+ expect(created.id).not_to be_nil
22
+ expect(created.status).to be MangoModel::DocumentStatus::CREATED
23
+ expect(its_the_same_kyc_doc(kyc_doc, created)).to be_truthy
24
+ end
25
+ end
26
+ end
27
+
28
+ describe '.upload_page' do
29
+
30
+ context "given a valid file's path" do
31
+ path = File.join(File.dirname(__FILE__), '..', 'resources', 'test_pdf.pdf')
32
+
33
+ it "uploads the file as one of the KYC document's pages" do
34
+ response = MangoApi::KycDocuments.upload_page KYC_DOCUMENT_PERSISTED.id,
35
+ NATURAL_USER_PERSISTED.id,
36
+ path
37
+ expect(response).to be_nil
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.submit' do
43
+
44
+ context "given an existing entity's ID" do
45
+ created = KYC_DOCUMENT_PERSISTED
46
+ id = created.id
47
+ # upload a page to allow submission
48
+ path = File.join(File.dirname(__FILE__), '..', 'resources', 'test_pdf.pdf')
49
+ MangoApi::KycDocuments.upload_page KYC_DOCUMENT_PERSISTED.id,
50
+ NATURAL_USER_PERSISTED.id,
51
+ path
52
+
53
+ it 'submits the corresponding entity for approval' do
54
+ submitted = MangoApi::KycDocuments.submit id, NATURAL_USER_PERSISTED.id
55
+
56
+ expect(submitted).to be_kind_of MangoModel::KycDocument
57
+ expect(submitted.id).to eq id
58
+ expect(submitted.status).to be MangoModel::DocumentStatus::VALIDATION_ASKED
59
+ expect(its_the_same_kyc_doc(created, submitted)).to be_truthy
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '.of_user' do
65
+
66
+ context "given an existing user entity's ID" do
67
+ id = NATURAL_USER_PERSISTED.id
68
+ # prepare some test data
69
+ 10.times do
70
+ persist_kyc_doc KYC_DOCUMENT_DATA
71
+ end
72
+
73
+ context 'not having specified filters' do
74
+ default_per_page = 10
75
+
76
+ it 'retrieves list with default parameters' do
77
+ results = MangoApi::KycDocuments.of_user id
78
+
79
+ expect(results).to be_kind_of Array
80
+ expect(results.length).to eq default_per_page
81
+ results.each do |result|
82
+ expect(result).to be_kind_of MangoModel::KycDocument
83
+ expect(result.id).not_to be_nil
84
+ expect(result.user_id).to eq id
85
+ end
86
+ end
87
+ end
88
+
89
+ context 'having specified filters' do
90
+ per_page = 11
91
+
92
+ it 'retrieves list with specified parameters' do
93
+ results = MangoApi::KycDocuments.of_user 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::ASC
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::KycDocument
104
+ expect(result.id).not_to be_nil
105
+ expect(result.user_id).to eq id
106
+ next if index == results.length - 1
107
+ first_date = result.creation_date
108
+ second_date = results[index + 1].creation_date
109
+ expect(first_date <= second_date).to be_truthy
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
115
+
116
+ describe '.all' do
117
+
118
+ context 'from a correctly-configured environment' do
119
+ # prepare some test data
120
+ 10.times do
121
+ persist_kyc_doc KYC_DOCUMENT_DATA
122
+ end
123
+
124
+ context 'not having specified filters' do
125
+ default_per_page = 10
126
+
127
+ it 'retrieves list with default parameters' do
128
+ results = MangoApi::KycDocuments.all
129
+
130
+ expect(results).to be_kind_of Array
131
+ expect(results.length).to eq default_per_page
132
+ results.each do |result|
133
+ expect(result).to be_kind_of MangoModel::KycDocument
134
+ expect(result.id).not_to be_nil
135
+ end
136
+ end
137
+ end
138
+
139
+ context 'having specified filters' do
140
+ per_page = 11
141
+
142
+ it 'retrieves list with specified parameters' do
143
+ results = MangoApi::KycDocuments.all do |filter|
144
+ filter.page = 1
145
+ filter.per_page = per_page
146
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
147
+ filter.sort_direction = MangoPay::SortDirection::ASC
148
+ end
149
+
150
+ expect(results).to be_kind_of Array
151
+ expect(results.length).to eq per_page
152
+ results.each.with_index do |result, index|
153
+ expect(result).to be_kind_of MangoModel::KycDocument
154
+ expect(result.id).not_to be_nil
155
+ next if index == results.length - 1
156
+ first_date = result.creation_date
157
+ second_date = results[index + 1].creation_date
158
+ expect(first_date <= second_date).to be_truthy
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
164
+
165
+ describe '.consult' do
166
+
167
+ context "given an existing entity's ID" do
168
+ id = KYC_DOCUMENT_PERSISTED.id
169
+
170
+ it 'creates the document page consult entities' do
171
+ results = MangoApi::KycDocuments.consult id
172
+
173
+ expect(results).to be_kind_of Array
174
+ results.each do |result|
175
+ expect(result).to be_kind_of MangoModel::DocumentPageConsult
176
+ end
177
+ end
178
+ end
179
+ end
180
180
  end