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
@@ -0,0 +1,85 @@
1
+ require_relative '../context/banking_alias_context'
2
+ require_relative '../../lib/mangopay/api/service/banking_aliases'
3
+
4
+ describe MangoApi::BankingAliases do
5
+ include_context 'banking_alias_context'
6
+
7
+ describe 'get' do
8
+ context 'given created wallets and aliases' do
9
+ wallet = WALLET_DATA
10
+ banking_alias = BANKING_ALIAS
11
+
12
+ it 'gets a banking alias' do
13
+ created = persist_wallet wallet
14
+ expect(created).to be_kind_of MangoModel::Wallet
15
+ expect(created.id).not_to be_nil
16
+ expect(its_the_same_wallet(wallet, created)).to be_truthy
17
+
18
+ banking_alias_created = MangoApi::BankingAliases.create_iban(banking_alias, created.id)
19
+
20
+ received = MangoApi::BankingAliases.get banking_alias_created.id
21
+
22
+ expect(received).not_to be_nil
23
+ end
24
+
25
+ it 'gets banking aliases' do
26
+ created = persist_wallet wallet
27
+ expect(created).to be_kind_of MangoModel::Wallet
28
+ expect(created.id).not_to be_nil
29
+ expect(its_the_same_wallet(wallet, created)).to be_truthy
30
+
31
+ banking_alias_created = MangoApi::BankingAliases.create_iban(banking_alias, created.id)
32
+
33
+ received = MangoApi::BankingAliases.get_all created.id
34
+
35
+ expect(received).not_to be_nil
36
+ end
37
+ end
38
+ end
39
+
40
+ describe 'create' do
41
+ context 'given a valid object' do
42
+ wallet = WALLET_DATA
43
+ banking_alias = BANKING_ALIAS
44
+ it 'creates the banking alias entity' do
45
+ created = persist_wallet wallet
46
+ expect(created).to be_kind_of MangoModel::Wallet
47
+ expect(created.id).not_to be_nil
48
+ expect(its_the_same_wallet(wallet, created)).to be_truthy
49
+
50
+ banking_alias_created = MangoApi::BankingAliases.create_iban(banking_alias, created.id)
51
+
52
+ expect(banking_alias_created).not_to be_nil
53
+ end
54
+ end
55
+ end
56
+
57
+ describe 'update' do
58
+ context 'given a banking alias' do
59
+ wallet = WALLET_DATA
60
+ banking_alias = BANKING_ALIAS
61
+ it 'deactivates it' do
62
+ created = persist_wallet wallet
63
+ expect(created).to be_kind_of MangoModel::Wallet
64
+ expect(created.id).not_to be_nil
65
+ expect(its_the_same_wallet(wallet, created)).to be_truthy
66
+
67
+ banking_alias_created = MangoApi::BankingAliases.create_iban(banking_alias, created.id)
68
+ expect(banking_alias_created).not_to be_nil
69
+
70
+ banking_alias_created.active = false
71
+
72
+ banking_alias_updated = MangoApi::BankingAliases.update(banking_alias_created.id, banking_alias_created)
73
+
74
+ expect(banking_alias_updated).not_to be_nil
75
+ expect(banking_alias_updated.active).to be(false)
76
+
77
+ get_again_banking = MangoApi::BankingAliases.get banking_alias_created.id
78
+
79
+ expect(get_again_banking).not_to be_nil
80
+ expect(get_again_banking.active).to be(false)
81
+ end
82
+ end
83
+ end
84
+
85
+ end
@@ -1,135 +1,134 @@
1
- require_relative '../context/card_context'
2
- require_relative '../../lib/mangopay/api/service/cards'
3
- require_relative '../../lib/mangopay/common/sort_field'
4
- require_relative '../../lib/mangopay/common/sort_direction'
5
-
6
- describe MangoApi::Cards do
7
- include_context 'card_context'
8
-
9
- describe '.create_registration' do
10
-
11
- context 'given a valid object' do
12
- card_registration = CARD_REGISTRATION_DATA
13
-
14
- it 'creates the card registration entity' do
15
- retrieved = MangoApi::Cards.create_registration card_registration
16
-
17
- expect(retrieved).to be_kind_of MangoModel::CardRegistration
18
- expect(retrieved.id).not_to be_nil
19
- expect(retrieved.access_key).not_to be_nil
20
- expect(retrieved.card_registration_url).not_to be_nil
21
- expect(retrieved.preregistration_data).not_to be_nil
22
- expect(retrieved.status).to be MangoModel::CardStatus::CREATED
23
- end
24
- end
25
- end
26
-
27
- describe '.complete_registration' do
28
-
29
- context 'given the registration data from Tokenization Server' do
30
- it 'completes the card registration process' do
31
- created = CARD_REGISTRATION_PERSISTED
32
- completed = CARD_REGISTRATION_COMPLETED
33
- expect(completed).to be_kind_of MangoModel::CardRegistration
34
- expect(completed.id).to eq created.id
35
- expect(completed.status).to be MangoModel::CardStatus::VALIDATED
36
- expect(completed.card_id).not_to be_nil
37
- end
38
- end
39
- end
40
-
41
- describe '.get_registration' do
42
-
43
- context "given an existing entity's ID" do
44
- card_registration = CARD_REGISTRATION_PERSISTED
45
- id = card_registration.id
46
-
47
- it 'retrieves the corresponding entity' do
48
- retrieved = MangoApi::Cards.get_registration id
49
-
50
- expect(retrieved).to be_kind_of MangoModel::CardRegistration
51
- expect(retrieved.id).to eq card_registration.id
52
- end
53
- end
54
- end
55
-
56
- describe '.get' do
57
-
58
- context "given a validated card entity's ID" do
59
- id = CARD_REGISTRATION_COMPLETED.card_id
60
- retrieved = MangoApi::Cards.get id
61
-
62
- it 'retrieves the corresponding card entity' do
63
- expect(retrieved).to be_kind_of MangoModel::Card
64
- card = retrieved
65
- expect(card.id).to eq id
66
- expect(card.active).to be_truthy
67
- expect(card.card_type).to be MangoModel::CardType::CB_VISA_MASTERCARD
68
- expect(card.currency).to be MangoModel::CurrencyIso::EUR
69
- expect(card.expiration_date).to eq CARD_EXPIRATION
70
- expect(card.fingerprint).not_to be_nil
71
- expect(card.user_id).to eq CARD_REGISTRATION_COMPLETED.user_id
72
- expect(card.validity).to be MangoModel::CardValidity::UNKNOWN
73
- end
74
- end
75
- end
76
-
77
- describe '.of_user' do
78
-
79
- context "given a valid user entity's ID" do
80
- id = NATURAL_USER_PERSISTED.id
81
-
82
- context 'not having specified filters' do
83
- it 'retrieves list with default parameters' do
84
- results = MangoApi::Cards.of_user id
85
-
86
- expect(results).to be_kind_of Array
87
- results.each do |result|
88
- expect(result).to be_kind_of MangoModel::Card
89
- expect(result.id).not_to be_nil
90
- expect(result.user_id).to eq id
91
- end
92
- end
93
- end
94
-
95
- context 'having specified filters' do
96
- per_page = 1
97
-
98
- it 'retrieves list with specified parameters' do
99
- results = MangoApi::Cards.of_user id do |filter|
100
- filter.page = 1
101
- filter.per_page = per_page
102
- filter.sort_field = MangoPay::SortField::CREATION_DATE
103
- filter.sort_direction = MangoPay::SortDirection::ASC
104
- end
105
-
106
- expect(results).to be_kind_of Array
107
- expect(results.length).to eq per_page
108
- results.each do |result|
109
- expect(result).to be_kind_of MangoModel::Card
110
- expect(result.id).not_to be_nil
111
- expect(result.user_id).to eq id
112
- end
113
- end
114
- end
115
- end
116
-
117
- # Currently disabled because it deactivates the only testing card.
118
- # Works if ran alone.
119
- #
120
- # describe '.deactivate' do
121
- #
122
- # context "given a valid card entity's ID" do
123
- # it 'deactivates the corresponding card entity' do
124
- # card = CARD
125
- # id = card.id
126
- # deactivated = MangoApi::Cards.deactivate id
127
- #
128
- # expect(deactivated).to be_kind_of MangoModel::Card
129
- # expect(deactivated.id).to eq id
130
- # expect(deactivated.active).to be_falsey
131
- # end
132
- # end
133
- # end
134
- end
1
+ require_relative '../context/card_context'
2
+ require_relative '../../lib/mangopay/api/service/cards'
3
+ require_relative '../../lib/mangopay/common/sort_field'
4
+ require_relative '../../lib/mangopay/common/sort_direction'
5
+
6
+ describe MangoApi::Cards do
7
+ include_context 'card_context'
8
+
9
+ describe '.create_registration' do
10
+
11
+ context 'given a valid object' do
12
+ card_registration = CARD_REGISTRATION_DATA
13
+
14
+ it 'creates the card registration entity' do
15
+ retrieved = MangoApi::Cards.create_registration card_registration
16
+
17
+ expect(retrieved).to be_kind_of MangoModel::CardRegistration
18
+ expect(retrieved.id).not_to be_nil
19
+ expect(retrieved.access_key).not_to be_nil
20
+ expect(retrieved.card_registration_url).not_to be_nil
21
+ expect(retrieved.preregistration_data).not_to be_nil
22
+ expect(retrieved.status).to be MangoModel::CardStatus::CREATED
23
+ end
24
+ end
25
+ end
26
+
27
+ describe '.complete_registration' do
28
+
29
+ context 'given the registration data from Tokenization Server' do
30
+ it 'completes the card registration process' do
31
+ created = CARD_REGISTRATION_PERSISTED
32
+ completed = CARD_REGISTRATION_COMPLETED
33
+ expect(completed).to be_kind_of MangoModel::CardRegistration
34
+ expect(completed.id).to eq created.id
35
+ expect(completed.status).to be MangoModel::CardStatus::VALIDATED
36
+ expect(completed.card_id).not_to be_nil
37
+ end
38
+ end
39
+ end
40
+
41
+ describe '.get_registration' do
42
+
43
+ context "given an existing entity's ID" do
44
+ card_registration = CARD_REGISTRATION_PERSISTED
45
+ id = card_registration.id
46
+
47
+ it 'retrieves the corresponding entity' do
48
+ retrieved = MangoApi::Cards.get_registration id
49
+
50
+ expect(retrieved).to be_kind_of MangoModel::CardRegistration
51
+ expect(retrieved.id).to eq card_registration.id
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '.get' do
57
+
58
+ context "given a validated card entity's ID" do
59
+ id = CARD_REGISTRATION_COMPLETED.card_id
60
+ retrieved = MangoApi::Cards.get id
61
+
62
+ it 'retrieves the corresponding card entity' do
63
+ expect(retrieved).to be_kind_of MangoModel::Card
64
+ card = retrieved
65
+ expect(card.id).to eq id
66
+ expect(card.active).to be_truthy
67
+ expect(card.card_type).to be MangoModel::CardType::CB_VISA_MASTERCARD
68
+ expect(card.currency).to be MangoModel::CurrencyIso::EUR
69
+ expect(card.expiration_date).to eq CARD_EXPIRATION
70
+ expect(card.fingerprint).not_to be_nil
71
+ expect(card.user_id).to eq CARD_REGISTRATION_COMPLETED.user_id
72
+ end
73
+ end
74
+ end
75
+
76
+ describe '.of_user' do
77
+
78
+ context "given a valid user entity's ID" do
79
+ id = NATURAL_USER_PERSISTED.id
80
+
81
+ context 'not having specified filters' do
82
+ it 'retrieves list with default parameters' do
83
+ results = MangoApi::Cards.of_user id
84
+
85
+ expect(results).to be_kind_of Array
86
+ results.each do |result|
87
+ expect(result).to be_kind_of MangoModel::Card
88
+ expect(result.id).not_to be_nil
89
+ expect(result.user_id).to eq id
90
+ end
91
+ end
92
+ end
93
+
94
+ context 'having specified filters' do
95
+ per_page = 1
96
+
97
+ it 'retrieves list with specified parameters' do
98
+ results = MangoApi::Cards.of_user id do |filter|
99
+ filter.page = 1
100
+ filter.per_page = per_page
101
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
102
+ filter.sort_direction = MangoPay::SortDirection::ASC
103
+ end
104
+
105
+ expect(results).to be_kind_of Array
106
+ expect(results.length).to eq per_page
107
+ results.each do |result|
108
+ expect(result).to be_kind_of MangoModel::Card
109
+ expect(result.id).not_to be_nil
110
+ expect(result.user_id).to eq id
111
+ end
112
+ end
113
+ end
114
+ end
115
+
116
+ # Currently disabled because it deactivates the only testing card.
117
+ # Works if ran alone.
118
+ #
119
+ # describe '.deactivate' do
120
+ #
121
+ # context "given a valid card entity's ID" do
122
+ # it 'deactivates the corresponding card entity' do
123
+ # card = CARD
124
+ # id = card.id
125
+ # deactivated = MangoApi::Cards.deactivate id
126
+ #
127
+ # expect(deactivated).to be_kind_of MangoModel::Card
128
+ # expect(deactivated.id).to eq id
129
+ # expect(deactivated.active).to be_falsey
130
+ # end
131
+ # end
132
+ # end
133
+ end
135
134
  end
@@ -1,148 +1,148 @@
1
- require_relative '../../lib/mangopay/api/service/client_wallets'
2
- require_relative '../../lib/mangopay/model/entity/client_wallet'
3
- require_relative '../../lib/mangopay/common/sort_field'
4
- require_relative '../../lib/mangopay/common/sort_direction'
5
-
6
- describe MangoApi::ClientWallets do
7
-
8
- describe '.get' do
9
-
10
- context 'from a correctly-configured environment' do
11
- it "retrieves the environment's client's ClientWallet entities" do
12
- funds_type = MangoModel::FundsType::CREDIT
13
- currency = MangoModel::CurrencyIso::EUR
14
- retrieved = MangoApi::ClientWallets.get(funds_type, currency)
15
-
16
- expect(retrieved).to be_kind_of MangoModel::ClientWallet
17
- expect(retrieved.funds_type).to be funds_type
18
- expect(retrieved.currency).to be currency
19
- end
20
- end
21
- end
22
-
23
- describe '.all' do
24
- default_per_page = 10
25
-
26
- context 'not having specified filters' do
27
- results = MangoApi::ClientWallets.all
28
-
29
- it 'retrieves list with default parameters' do
30
- expect(results).to be_kind_of Array
31
- expect(results.length).to eq default_per_page
32
- results.each do |result|
33
- expect(result).to be_kind_of MangoModel::ClientWallet
34
- end
35
- end
36
- end
37
-
38
- context 'having specified filters' do
39
- per_page = 3
40
- results = MangoApi::ClientWallets.all do |filter|
41
- filter.page = 1
42
- filter.per_page = per_page
43
- filter.sort_field = MangoPay::SortField::CREATION_DATE
44
- filter.sort_direction = MangoPay::SortDirection::ASC
45
- end
46
-
47
- it 'retrieves list according to provided parameters' do
48
- expect(results).to be_kind_of Array
49
- expect(results.length).to eq per_page
50
- results.each.with_index do |result, index|
51
- expect(result).to be_kind_of MangoModel::ClientWallet
52
- next if index == results.length - 1
53
- first_date = result.creation_date
54
- second_date = results[index + 1].creation_date
55
- expect(first_date <= second_date).to be_truthy
56
- end
57
- end
58
- end
59
- end
60
-
61
- describe '.of_funds_type' do
62
- default_per_page = 10
63
-
64
- describe '#FEES' do
65
- funds_type = MangoModel::FundsType::FEES
66
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::FKP)
67
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::LAK)
68
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::MMK)
69
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::NOK)
70
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::XBA)
71
-
72
- context 'not having specified filters' do
73
- it 'retrieves list with default parameters' do
74
- results = MangoApi::ClientWallets.of_funds_type(funds_type)
75
-
76
- check_results(results, default_per_page, funds_type)
77
- end
78
- end
79
-
80
- context 'having specified filters' do
81
- per_page = 3
82
- results = MangoApi::ClientWallets.of_funds_type(funds_type) do |filter|
83
- filter.page = 1
84
- filter.per_page = per_page
85
- filter.sort_field = MangoPay::SortField::CREATION_DATE
86
- filter.sort_direction = MangoPay::SortDirection::ASC
87
- end
88
-
89
- it 'retrieves list according to provided parameters' do
90
- check_results(results, per_page, funds_type)
91
- results.each.with_index do |result, index|
92
- next if index == results.length - 1
93
- first_date = result.creation_date
94
- second_date = results[index + 1].creation_date
95
- expect(first_date <= second_date).to be_truthy
96
- end
97
- end
98
- end
99
- end
100
-
101
- describe '#CREDIT' do
102
- funds_type = MangoModel::FundsType::FEES
103
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::FKP)
104
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::LAK)
105
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::MMK)
106
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::NOK)
107
- MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::XBA)
108
-
109
- context 'not having specified filters' do
110
- it 'retrieves list with default parameters' do
111
- results = MangoApi::ClientWallets.of_funds_type(funds_type)
112
-
113
- check_results(results, default_per_page, funds_type)
114
- end
115
- end
116
-
117
- context 'having specified filters' do
118
- per_page = 3
119
- results = MangoApi::ClientWallets.of_funds_type(funds_type) do |filter|
120
- filter.page = 1
121
- filter.per_page = per_page
122
- filter.sort_field = MangoPay::SortField::CREATION_DATE
123
- filter.sort_direction = MangoPay::SortDirection::ASC
124
- end
125
-
126
- it 'retrieves list according to provided parameters' do
127
- check_results(results, per_page, funds_type)
128
- results.each.with_index do |result, index|
129
- next if index == results.length - 1
130
- first_date = result.creation_date
131
- second_date = results[index + 1].creation_date
132
- expect(first_date <= second_date).to be_truthy
133
- end
134
- end
135
- end
136
- end
137
- end
138
- end
139
-
140
- # noinspection RubyResolve
141
- def check_results(results, per_page, funds_type)
142
- expect(results).to be_kind_of Array
143
- expect(results.length).to eq per_page
144
- results.each do |result|
145
- expect(result).to be_kind_of MangoModel::ClientWallet
146
- expect(result.funds_type).to be funds_type
147
- end
1
+ require_relative '../../lib/mangopay/api/service/client_wallets'
2
+ require_relative '../../lib/mangopay/model/entity/client_wallet'
3
+ require_relative '../../lib/mangopay/common/sort_field'
4
+ require_relative '../../lib/mangopay/common/sort_direction'
5
+
6
+ describe MangoApi::ClientWallets do
7
+
8
+ describe '.get' do
9
+
10
+ context 'from a correctly-configured environment' do
11
+ it "retrieves the environment's client's ClientWallet entities" do
12
+ funds_type = MangoModel::FundsType::CREDIT
13
+ currency = MangoModel::CurrencyIso::EUR
14
+ retrieved = MangoApi::ClientWallets.get(funds_type, currency)
15
+
16
+ expect(retrieved).to be_kind_of MangoModel::ClientWallet
17
+ expect(retrieved.funds_type).to be funds_type
18
+ expect(retrieved.currency).to be currency
19
+ end
20
+ end
21
+ end
22
+
23
+ describe '.all' do
24
+ default_per_page = 10
25
+
26
+ context 'not having specified filters' do
27
+ results = MangoApi::ClientWallets.all
28
+
29
+ it 'retrieves list with default parameters' do
30
+ expect(results).to be_kind_of Array
31
+ expect(results.length).to eq default_per_page
32
+ results.each do |result|
33
+ expect(result).to be_kind_of MangoModel::ClientWallet
34
+ end
35
+ end
36
+ end
37
+
38
+ context 'having specified filters' do
39
+ per_page = 3
40
+ results = MangoApi::ClientWallets.all do |filter|
41
+ filter.page = 1
42
+ filter.per_page = per_page
43
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
44
+ filter.sort_direction = MangoPay::SortDirection::ASC
45
+ end
46
+
47
+ it 'retrieves list according to provided parameters' do
48
+ expect(results).to be_kind_of Array
49
+ expect(results.length).to eq per_page
50
+ results.each.with_index do |result, index|
51
+ expect(result).to be_kind_of MangoModel::ClientWallet
52
+ next if index == results.length - 1
53
+ first_date = result.creation_date
54
+ second_date = results[index + 1].creation_date
55
+ expect(first_date <= second_date).to be_truthy
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+ describe '.of_funds_type' do
62
+ default_per_page = 10
63
+
64
+ describe '#FEES' do
65
+ funds_type = MangoModel::FundsType::FEES
66
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::FKP)
67
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::LAK)
68
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::MMK)
69
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::NOK)
70
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::XBA)
71
+
72
+ context 'not having specified filters' do
73
+ it 'retrieves list with default parameters' do
74
+ results = MangoApi::ClientWallets.of_funds_type(funds_type)
75
+
76
+ check_results(results, default_per_page, funds_type)
77
+ end
78
+ end
79
+
80
+ context 'having specified filters' do
81
+ per_page = 3
82
+ results = MangoApi::ClientWallets.of_funds_type(funds_type) do |filter|
83
+ filter.page = 1
84
+ filter.per_page = per_page
85
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
86
+ filter.sort_direction = MangoPay::SortDirection::ASC
87
+ end
88
+
89
+ it 'retrieves list according to provided parameters' do
90
+ check_results(results, per_page, funds_type)
91
+ results.each.with_index do |result, index|
92
+ next if index == results.length - 1
93
+ first_date = result.creation_date
94
+ second_date = results[index + 1].creation_date
95
+ expect(first_date <= second_date).to be_truthy
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ describe '#CREDIT' do
102
+ funds_type = MangoModel::FundsType::FEES
103
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::FKP)
104
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::LAK)
105
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::MMK)
106
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::NOK)
107
+ MangoApi::ClientWallets.get(funds_type, MangoModel::CurrencyIso::XBA)
108
+
109
+ context 'not having specified filters' do
110
+ it 'retrieves list with default parameters' do
111
+ results = MangoApi::ClientWallets.of_funds_type(funds_type)
112
+
113
+ check_results(results, default_per_page, funds_type)
114
+ end
115
+ end
116
+
117
+ context 'having specified filters' do
118
+ per_page = 3
119
+ results = MangoApi::ClientWallets.of_funds_type(funds_type) do |filter|
120
+ filter.page = 1
121
+ filter.per_page = per_page
122
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
123
+ filter.sort_direction = MangoPay::SortDirection::ASC
124
+ end
125
+
126
+ it 'retrieves list according to provided parameters' do
127
+ check_results(results, per_page, funds_type)
128
+ results.each.with_index do |result, index|
129
+ next if index == results.length - 1
130
+ first_date = result.creation_date
131
+ second_date = results[index + 1].creation_date
132
+ expect(first_date <= second_date).to be_truthy
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+
140
+ # noinspection RubyResolve
141
+ def check_results(results, per_page, funds_type)
142
+ expect(results).to be_kind_of Array
143
+ expect(results.length).to eq per_page
144
+ results.each do |result|
145
+ expect(result).to be_kind_of MangoModel::ClientWallet
146
+ expect(result.funds_type).to be funds_type
147
+ end
148
148
  end