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,38 @@
1
- require_relative '../context/transfer_context'
2
- require_relative '../../lib/mangopay/api/service/transfers'
3
-
4
- describe MangoApi::Transfers do
5
- include_context 'transfer_context'
6
-
7
- describe '.create' do
8
-
9
- context 'given a valid object' do
10
- transfer = TRANSFER_DATA
11
-
12
- it 'creates the transfer entity' do
13
- created = MangoApi::Transfers.create transfer
14
-
15
- expect(created).to be_kind_of MangoModel::Transfer
16
- expect(created.id).not_to be_nil
17
- debited = created.debited_funds.amount
18
- fees = created.fees.amount
19
- credited = created.credited_funds.amount
20
- expect(debited - fees == credited).to be_truthy
21
- expect(its_the_same_transfer(transfer, created)).to be_truthy
22
- end
23
- end
24
- end
25
-
26
- context "given an existing entity's ID" do
27
- created = TRANSFER_PERSISTED
28
- id = created.id
29
-
30
- it 'retrieves the corresponding entity' do
31
- retrieved = MangoApi::Transfers.get id
32
-
33
- expect(retrieved).to be_kind_of MangoModel::Transfer
34
- expect(retrieved.id).to eq id
35
- expect(its_the_same_transfer(created, retrieved)).to be_truthy
36
- end
37
- end
1
+ require_relative '../context/transfer_context'
2
+ require_relative '../../lib/mangopay/api/service/transfers'
3
+
4
+ describe MangoApi::Transfers do
5
+ include_context 'transfer_context'
6
+
7
+ describe '.create' do
8
+
9
+ context 'given a valid object' do
10
+ transfer = TRANSFER_DATA
11
+
12
+ it 'creates the transfer entity' do
13
+ created = MangoApi::Transfers.create transfer
14
+
15
+ expect(created).to be_kind_of MangoModel::Transfer
16
+ expect(created.id).not_to be_nil
17
+ debited = created.debited_funds.amount
18
+ fees = created.fees.amount
19
+ credited = created.credited_funds.amount
20
+ expect(debited - fees == credited).to be_truthy
21
+ expect(its_the_same_transfer(transfer, created)).to be_truthy
22
+ end
23
+ end
24
+ end
25
+
26
+ context "given an existing entity's ID" do
27
+ created = TRANSFER_PERSISTED
28
+ id = created.id
29
+
30
+ it 'retrieves the corresponding entity' do
31
+ retrieved = MangoApi::Transfers.get id
32
+
33
+ expect(retrieved).to be_kind_of MangoModel::Transfer
34
+ expect(retrieved.id).to eq id
35
+ expect(its_the_same_transfer(created, retrieved)).to be_truthy
36
+ end
37
+ end
38
38
  end
@@ -1,65 +1,128 @@
1
- require_relative '../../lib/mangopay/api/service/ubo_declarations'
2
- require_relative '../context/ubo_declaration_context'
3
- require_relative '../../lib/mangopay/model/enum/ubo_declaration_status'
4
-
5
- describe MangoApi::UboDeclarations do
6
- include_context 'ubo_declaration_context'
7
-
8
- describe '.create' do
9
-
10
- context 'given a valid object' do
11
- ubo_decl = UBO_DECLARATION_DATA
12
-
13
- it 'creates the UBO declaration entity' do
14
- created = MangoApi::UboDeclarations.create(ubo_decl, LEGAL_USER_PERSISTED.id)
15
-
16
- expect(created).to be_kind_of MangoModel::UboDeclaration
17
- expect(created.status).to be MangoModel::UboDeclarationStatus::CREATED
18
- expect(created.user_id).to eq LEGAL_USER_PERSISTED.id
19
- created.declared_ubos.each do |ubo|
20
- expect(ubo).to be_kind_of MangoModel::DeclaredUbo
21
- expect(ubo.status).to be MangoModel::DeclaredUboStatus::CREATED
22
- end
23
- end
24
- end
25
- end
26
-
27
- describe '.update' do
28
-
29
- context 'given a valid object' do
30
- created = UBO_DECLARATION_PERSISTED
31
- natural_user = NATURAL_USER_DATA
32
- natural_user.capacity = MangoModel::NaturalUserCapacity::DECLARATIVE
33
- decl_user = MangoApi::Users.create natural_user
34
- created.declared_ubos = [decl_user.id]
35
-
36
- it 'updates the corresponding entity' do
37
- updated = MangoApi::UboDeclarations.update created
38
-
39
- expect(updated).to be_kind_of MangoModel::UboDeclaration
40
- expect(updated.id).to eq created.id
41
- expect(updated.declared_ubos.length).to eq created.declared_ubos.length
42
- updated.declared_ubos.each do |ubo|
43
- expect(ubo).to be_kind_of MangoModel::DeclaredUbo
44
- expect(created.declared_ubos).to include ubo.user_id
45
- end
46
- end
47
- end
48
- end
49
-
50
- describe '.submit' do
51
-
52
- context "given an existing entity's ID" do
53
- created = UBO_DECLARATION_PERSISTED
54
- id = created.id
55
-
56
- it 'submits the corresponding entity for approval' do
57
- submitted = MangoApi::UboDeclarations.submit id
58
-
59
- expect(submitted).to be_kind_of MangoModel::UboDeclaration
60
- expect(submitted.id).to eq id
61
- expect(submitted.status).to be MangoModel::UboDeclarationStatus::VALIDATION_ASKED
62
- end
63
- end
64
- end
1
+ require_relative '../../lib/mangopay/api/service/ubo_declarations'
2
+ require_relative '../context/ubo_declaration_context'
3
+ require_relative '../../lib/mangopay/model/enum/ubo_declaration_status'
4
+
5
+ describe MangoApi::UboDeclarations do
6
+ include_context 'ubo_declaration_context'
7
+
8
+ LEGAL_USER = persist_user(build_legal_user)
9
+ UBO_DECLARATION = persist_ubo_declaration(LEGAL_USER.id)
10
+ UBO = persist_ubo(LEGAL_USER.id, UBO_DECLARATION.id)
11
+
12
+ describe '.create_ubo_declarations' do
13
+
14
+ context 'given a valid user' do
15
+ it 'creates the UBO declaration entity' do
16
+ created = UBO_DECLARATION
17
+
18
+ expect(created).to be_kind_of MangoModel::UboDeclaration
19
+ expect(created.status).to be MangoModel::UboDeclarationStatus::CREATED
20
+ expect(created.id).not_to be_nil
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '.all' do
26
+
27
+ context 'get all ubo declarations' do
28
+ user = LEGAL_USER
29
+ created = UBO_DECLARATION
30
+ it 'get all ubo declarations' do
31
+ list = MangoApi::UboDeclarations.get_all(user.id)
32
+
33
+ expect(list).to be_kind_of Array
34
+ expect(list.length).to eq 1
35
+ expect(list[0]).to be_kind_of MangoModel::UboDeclaration
36
+ expect(list[0].id).to eq created.id
37
+
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.get one ubo declaration' do
43
+ context 'get an ubo declaration' do
44
+ user = LEGAL_USER
45
+ ubo_declaration = UBO_DECLARATION
46
+ it 'retrieves an ubo declaration with and without user id' do
47
+ response1 = MangoApi::UboDeclarations.get(user.id, ubo_declaration.id)
48
+ response2 = MangoApi::UboDeclarations.get(nil, ubo_declaration.id)
49
+
50
+ expect(response1).to be_kind_of MangoModel::UboDeclaration
51
+ expect(response1.id).to eq ubo_declaration.id
52
+ expect(response2).to be_kind_of MangoModel::UboDeclaration
53
+ expect(response2.id).to eq ubo_declaration.id
54
+ expect(response1.id).to eq response2.id
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '.create ubo' do
60
+
61
+ context 'given an existing ubo declarations' do
62
+ ubo_declaration = UBO_DECLARATION
63
+ user = LEGAL_USER
64
+
65
+ it 'add ubo to the corresponding ubo declaration' do
66
+ ubo = build_ubo
67
+ response = MangoApi::UboDeclarations.create_ubo(user.id, ubo_declaration.id, ubo)
68
+
69
+ expect(response).to be_kind_of MangoModel::Ubo
70
+ end
71
+ end
72
+ end
73
+
74
+ describe '.get ubo' do
75
+ context 'given an existing ubo' do
76
+ user = LEGAL_USER
77
+ ubo_declaration = UBO_DECLARATION
78
+ ubo = UBO
79
+ it 'should retrieve an ubo by his id' do
80
+ response = MangoApi::UboDeclarations.get_ubo(user.id, ubo_declaration.id, ubo.id)
81
+
82
+ expect(response).to be_kind_of MangoModel::Ubo
83
+ expect(response.id).to eq ubo.id
84
+ end
85
+ end
86
+ end
87
+
88
+ describe '.update ubo' do
89
+
90
+ context 'given an existing ubo declaration' do
91
+ ubo_declaration = UBO_DECLARATION
92
+ user = LEGAL_USER
93
+ ubo = UBO
94
+ it 'should update the ubo' do
95
+ ubo.first_name = "updated_first_name"
96
+ ubo.last_name = "updated_last_name"
97
+ ubo.nationality = MangoModel::CountryIso::GB
98
+ ubo.is_active = true
99
+
100
+ updated_ubo = MangoApi::UboDeclarations.update_ubo(user.id, ubo_declaration.id, ubo)
101
+
102
+ expect(updated_ubo).to be_kind_of MangoModel::Ubo
103
+ expect(updated_ubo.id).to eq ubo.id
104
+ expect(updated_ubo.first_name).to eq ubo.first_name
105
+ expect(updated_ubo.last_name).to eq ubo.last_name
106
+ expect(updated_ubo.nationality).to eq ubo.nationality
107
+ expect(updated_ubo.is_active).to eq true
108
+ end
109
+ end
110
+ end
111
+
112
+ describe '.submit' do
113
+
114
+ context "given an existing entity's ID" do
115
+ created = UBO_DECLARATION
116
+ user = LEGAL_USER
117
+ id = created.id
118
+
119
+ it 'submits the corresponding entity for approval' do
120
+ submitted = MangoApi::UboDeclarations.submit user.id, id
121
+
122
+ expect(submitted).to be_kind_of MangoModel::UboDeclaration
123
+ expect(submitted.id).to eq id
124
+ expect(submitted.status).to be MangoModel::UboDeclarationStatus::VALIDATION_ASKED
125
+ end
126
+ end
127
+ end
65
128
  end
@@ -1,146 +1,146 @@
1
- require_relative '../context/user_context'
2
- require_relative '../../lib/mangopay/api/service/users'
3
- require_relative '../../lib/mangopay/common/sort_direction'
4
- require_relative '../../lib/mangopay/common/sort_field'
5
-
6
- describe MangoApi::Users do
7
- include_context 'user_context'
8
-
9
- describe '.create' do
10
-
11
- describe '#Natural' do
12
- context 'given a valid object' do
13
- user = NATURAL_USER_DATA
14
-
15
- it 'creates the natural user entity' do
16
- created = persist_user user
17
-
18
- expect(created).to be_kind_of MangoModel::NaturalUser
19
- expect(created.id).not_to be_nil
20
- expect(its_the_same_user(user, created)).to be_truthy
21
- end
22
- end
23
- end
24
-
25
- describe '#Legal' do
26
- context 'given a valid object' do
27
- user = LEGAL_USER_DATA
28
-
29
- it 'creates the legal user entity' do
30
- persisted = persist_user user
31
-
32
- expect(persisted).to be_kind_of MangoModel::LegalUser
33
- expect(persisted.id).not_to be_nil
34
- expect(its_the_same_user(user, persisted)).to be_truthy
35
- end
36
- end
37
- end
38
- end
39
-
40
- describe '.update' do
41
- updated_value = 'Updated'.freeze
42
-
43
- describe '#Natural' do
44
- context 'given a valid object' do
45
- created = NATURAL_USER_PERSISTED
46
- created.first_name = updated_value
47
-
48
- it 'updates the corresponding entity' do
49
- updated = MangoApi::Users.update created
50
-
51
- expect(updated).to be_kind_of MangoModel::NaturalUser
52
- expect(updated.id).to eq created.id
53
- expect(updated.first_name).to eq updated_value
54
- expect(its_the_same_user(created, updated)).to be_truthy
55
- end
56
- end
57
- end
58
-
59
- describe '#Legal' do
60
- context 'given a valid object' do
61
- created = LEGAL_USER_PERSISTED
62
- created.name = updated_value
63
-
64
- it 'updates the corresponding entity' do
65
- updated = MangoApi::Users.update created
66
-
67
- expect(updated).to be_kind_of MangoModel::LegalUser
68
- expect(updated.id).to eq created.id
69
- expect(updated.name).to eq updated_value
70
- expect(its_the_same_user(created, updated)).to be_truthy
71
- end
72
- end
73
- end
74
- end
75
-
76
- describe '.get' do
77
-
78
- describe '#Natural' do
79
- context "given an existing entity's ID" do
80
- created = NATURAL_USER_PERSISTED
81
- id = created.id
82
-
83
- it 'retrieves the corresponding entity' do
84
- retrieved = MangoApi::Users.get id
85
-
86
- expect(retrieved).to be_kind_of MangoModel::NaturalUser
87
- expect(retrieved.id).to eq id
88
- expect(its_the_same_user(created, retrieved)).to be_truthy
89
- end
90
- end
91
- end
92
-
93
- describe '#Legal' do
94
- context "given an existing entity's ID" do
95
- created = LEGAL_USER_PERSISTED
96
- id = created.id
97
-
98
- it 'retrieves the corresponding entity' do
99
- retrieved = MangoApi::Users.get id
100
-
101
- expect(retrieved).to be_kind_of MangoModel::LegalUser
102
- expect(retrieved.id).to eq id
103
- expect(its_the_same_user(created, retrieved)).to be_truthy
104
- end
105
- end
106
- end
107
- end
108
-
109
- describe '.all' do
110
- default_per_page = 10
111
-
112
- context 'not having specified filters' do
113
- results = MangoApi::Users.all
114
-
115
- it 'retrieves list with default parameters' do
116
- expect(results).to be_kind_of Array
117
- expect(results.length).to eq default_per_page
118
- results.each do |result|
119
- expect(result).to be_kind_of MangoModel::User
120
- end
121
- end
122
- end
123
-
124
- context 'having specified filters' do
125
- per_page = 15
126
- results = MangoApi::Users.all do |filter|
127
- filter.page = 1
128
- filter.per_page = per_page
129
- filter.sort_field = MangoPay::SortField::CREATION_DATE
130
- filter.sort_direction = MangoPay::SortDirection::ASC
131
- end
132
-
133
- it 'retrieves list according to provided parameters' do
134
- expect(results).to be_kind_of Array
135
- expect(results.length).to eq per_page
136
- results.each.with_index do |result, index|
137
- expect(result).to be_kind_of MangoModel::User
138
- next if index == results.length - 1
139
- first_date = result.creation_date
140
- second_date = results[index + 1].creation_date
141
- expect(first_date <= second_date).to be_truthy
142
- end
143
- end
144
- end
145
- end
1
+ require_relative '../context/user_context'
2
+ require_relative '../../lib/mangopay/api/service/users'
3
+ require_relative '../../lib/mangopay/common/sort_direction'
4
+ require_relative '../../lib/mangopay/common/sort_field'
5
+
6
+ describe MangoApi::Users do
7
+ include_context 'user_context'
8
+
9
+ describe '.create' do
10
+
11
+ describe '#Natural' do
12
+ context 'given a valid object' do
13
+ user = NATURAL_USER_DATA
14
+
15
+ it 'creates the natural user entity' do
16
+ created = persist_user user
17
+
18
+ expect(created).to be_kind_of MangoModel::NaturalUser
19
+ expect(created.id).not_to be_nil
20
+ expect(its_the_same_user(user, created)).to be_truthy
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '#Legal' do
26
+ context 'given a valid object' do
27
+ user = LEGAL_USER_DATA
28
+
29
+ it 'creates the legal user entity' do
30
+ persisted = persist_user user
31
+
32
+ expect(persisted).to be_kind_of MangoModel::LegalUser
33
+ expect(persisted.id).not_to be_nil
34
+ expect(its_the_same_user(user, persisted)).to be_truthy
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '.update' do
41
+ updated_value = 'Updated'.freeze
42
+
43
+ describe '#Natural' do
44
+ context 'given a valid object' do
45
+ created = NATURAL_USER_PERSISTED
46
+ created.first_name = updated_value
47
+
48
+ it 'updates the corresponding entity' do
49
+ updated = MangoApi::Users.update created
50
+
51
+ expect(updated).to be_kind_of MangoModel::NaturalUser
52
+ expect(updated.id).to eq created.id
53
+ expect(updated.first_name).to eq updated_value
54
+ expect(its_the_same_user(created, updated)).to be_truthy
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '#Legal' do
60
+ context 'given a valid object' do
61
+ created = LEGAL_USER_PERSISTED
62
+ created.name = updated_value
63
+
64
+ it 'updates the corresponding entity' do
65
+ updated = MangoApi::Users.update created
66
+
67
+ expect(updated).to be_kind_of MangoModel::LegalUser
68
+ expect(updated.id).to eq created.id
69
+ expect(updated.name).to eq updated_value
70
+ expect(its_the_same_user(created, updated)).to be_truthy
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ describe '.get' do
77
+
78
+ describe '#Natural' do
79
+ context "given an existing entity's ID" do
80
+ created = NATURAL_USER_PERSISTED
81
+ id = created.id
82
+
83
+ it 'retrieves the corresponding entity' do
84
+ retrieved = MangoApi::Users.get id
85
+
86
+ expect(retrieved).to be_kind_of MangoModel::NaturalUser
87
+ expect(retrieved.id).to eq id
88
+ expect(its_the_same_user(created, retrieved)).to be_truthy
89
+ end
90
+ end
91
+ end
92
+
93
+ describe '#Legal' do
94
+ context "given an existing entity's ID" do
95
+ created = LEGAL_USER_PERSISTED
96
+ id = created.id
97
+
98
+ it 'retrieves the corresponding entity' do
99
+ retrieved = MangoApi::Users.get id
100
+
101
+ expect(retrieved).to be_kind_of MangoModel::LegalUser
102
+ expect(retrieved.id).to eq id
103
+ expect(its_the_same_user(created, retrieved)).to be_truthy
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ describe '.all' do
110
+ default_per_page = 10
111
+
112
+ context 'not having specified filters' do
113
+ results = MangoApi::Users.all
114
+
115
+ it 'retrieves list with default parameters' do
116
+ expect(results).to be_kind_of Array
117
+ expect(results.length).to eq default_per_page
118
+ results.each do |result|
119
+ expect(result).to be_kind_of MangoModel::User
120
+ end
121
+ end
122
+ end
123
+
124
+ context 'having specified filters' do
125
+ per_page = 15
126
+ results = MangoApi::Users.all do |filter|
127
+ filter.page = 1
128
+ filter.per_page = per_page
129
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
130
+ filter.sort_direction = MangoPay::SortDirection::ASC
131
+ end
132
+
133
+ it 'retrieves list according to provided parameters' do
134
+ expect(results).to be_kind_of Array
135
+ expect(results.length).to eq per_page
136
+ results.each.with_index do |result, index|
137
+ expect(result).to be_kind_of MangoModel::User
138
+ next if index == results.length - 1
139
+ first_date = result.creation_date
140
+ second_date = results[index + 1].creation_date
141
+ expect(first_date <= second_date).to be_truthy
142
+ end
143
+ end
144
+ end
145
+ end
146
146
  end