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,25 +1,30 @@
1
- require_relative 'user_context'
2
- require_relative '../../lib/mangopay/model/entity/ubo_declaration'
3
- require_relative '../../lib/mangopay/api/service/ubo_declarations'
4
- require_relative '../../lib/mangopay/model/enum/natural_user_capacity'
5
-
6
- shared_context 'ubo_declaration_context' do
7
- include_context 'user_context'
8
-
9
- UBO_DECLARATION_DATA ||= build_ubo_declaration
10
- UBO_DECLARATION_PERSISTED ||= persist_ubo_declaration UBO_DECLARATION_DATA
11
- end
12
-
13
- def persist_ubo_declaration(ubo_decl)
14
- MangoApi::UboDeclarations.create(ubo_decl, LEGAL_USER_PERSISTED.id)
15
- end
16
-
17
- def build_ubo_declaration
18
- natural_user = NATURAL_USER_DATA
19
- natural_user.capacity = MangoModel::NaturalUserCapacity::DECLARATIVE
20
- decl_user1 = persist_user natural_user
21
- decl_user2 = persist_user natural_user
22
- ubo_decl = MangoModel::UboDeclaration.new
23
- ubo_decl.declared_ubos = [decl_user1.id, decl_user2.id]
24
- ubo_decl
1
+ require_relative 'user_context'
2
+ require_relative '../../lib/mangopay/model/entity/ubo_declaration'
3
+ require_relative '../../lib/mangopay/api/service/ubo_declarations'
4
+ require_relative '../../lib/mangopay/model/entity/ubo'
5
+ require_relative '../../lib/mangopay/model/enum/natural_user_capacity'
6
+ require_relative 'birthplace_context'
7
+
8
+ shared_context 'ubo_declaration_context' do
9
+ include_context 'user_context'
10
+ include_context 'birthplace_context'
11
+ end
12
+
13
+ def persist_ubo_declaration(user_id)
14
+ MangoApi::UboDeclarations.create(user_id)
15
+ end
16
+
17
+ def persist_ubo(user_id, ubo_declaration_id)
18
+ MangoApi::UboDeclarations.create_ubo(user_id, ubo_declaration_id, build_ubo)
19
+ end
20
+
21
+ def build_ubo
22
+ ubo = MangoModel::Ubo.new
23
+ ubo.first_name = "First"
24
+ ubo.last_name = "Last"
25
+ ubo.address = build_address
26
+ ubo.nationality = MangoModel::CountryIso::FR
27
+ ubo.birthday = 105_102_394
28
+ ubo.birthplace = build_birthplace
29
+ ubo
25
30
  end
@@ -1,83 +1,84 @@
1
- require_relative 'address_context'
2
-
3
- shared_context 'user_context' do
4
- include_context 'address_context'
5
-
6
- NATURAL_USER_DATA ||= build_natural_user
7
- LEGAL_USER_DATA ||= build_legal_user
8
- NATURAL_USER_PERSISTED ||= persist_user NATURAL_USER_DATA
9
- LEGAL_USER_PERSISTED ||= persist_user LEGAL_USER_DATA
10
-
11
- let(:new_natural_user_persisted) { persist_user NATURAL_USER_DATA }
12
- let(:new_legal_user_persisted) { persist_user LEGAL_USER_DATA }
13
- end
14
-
15
- def persist_user(user)
16
- MangoApi::Users.create user
17
- end
18
-
19
- def build_natural_user
20
- nat_user = MangoModel::NaturalUser.new
21
- nat_user.kyc_level = MangoModel::KycLevel::LIGHT
22
- nat_user.email = 'hello@moto.com'
23
- nat_user.first_name = 'Hi'
24
- nat_user.last_name = 'Bye'
25
- nat_user.address = build_address
26
- nat_user.birthday = 105_102_394
27
- nat_user.nationality = MangoModel::CountryIso::RO
28
- nat_user.country_of_residence = MangoModel::CountryIso::RO
29
- nat_user.occupation = 'Cowboy'
30
- nat_user.income_range = MangoModel::IncomeRange::BETWEEN_50_80
31
- nat_user
32
- end
33
-
34
- def build_legal_user
35
- leg_user = MangoModel::LegalUser.new
36
- leg_user.email = 'coco@coco.com'
37
- leg_user.legal_person_type = MangoModel::LegalPersonType::BUSINESS
38
- leg_user.name = 'Coco Company'
39
- leg_user.headquarters_address = build_address
40
- leg_user.legal_representative_first_name = 'Bob'
41
- leg_user.legal_representative_last_name = 'Business'
42
- leg_user.legal_representative_address = build_address
43
- leg_user.legal_representative_email = 'bobby@coco.com'
44
- leg_user.legal_representative_birthday = 1_300_116_382
45
- leg_user.legal_representative_nationality = MangoModel::CountryIso::DE
46
- leg_user.legal_representative_country_of_residence = MangoModel::CountryIso::RO
47
- leg_user
48
- end
49
-
50
- def its_the_same_user(user1, user2)
51
- if user1.is_a? MangoModel::NaturalUser
52
- its_the_same_natural(user1, user2)
53
- else
54
- its_the_same_legal(user1, user2)
55
- end
56
- end
57
-
58
- def its_the_same_natural(user1, user2)
59
- user1.kyc_level.eql?(user2.kyc_level)\
60
- && user1.email == user2.email\
61
- && user1.first_name == user2.first_name\
62
- && user1.last_name == user2.last_name\
63
- && its_the_same_address(user1.address, user2.address)\
64
- && user1.birthday == user2.birthday\
65
- && user1.nationality.eql?(user2.nationality)\
66
- && user1.country_of_residence.eql?(user2.country_of_residence)\
67
- && user1.occupation == user2.occupation\
68
- && user1.income_range == user2.income_range
69
- end
70
-
71
- def its_the_same_legal(user1, user2)
72
- user1.email == user2.email\
73
- && user1.legal_person_type.eql?(user2.legal_person_type)\
74
- && user1.name == user2.name\
75
- && its_the_same_address(user1.headquarters_address, user2.headquarters_address)\
76
- && user1.legal_representative_first_name == user2.legal_representative_first_name\
77
- && user1.legal_representative_last_name == user2.legal_representative_last_name\
78
- && its_the_same_address(user1.legal_representative_address, user2.legal_representative_address)\
79
- && user1.legal_representative_email == user2.legal_representative_email\
80
- && user1.legal_representative_birthday == user2.legal_representative_birthday\
81
- && user1.legal_representative_nationality == user2.legal_representative_nationality\
82
- && user1.legal_representative_country_of_residence.eql?(user2.legal_representative_country_of_residence)
1
+ require_relative 'address_context'
2
+
3
+ shared_context 'user_context' do
4
+ include_context 'address_context'
5
+
6
+ NATURAL_USER_DATA ||= build_natural_user
7
+ LEGAL_USER_DATA ||= build_legal_user
8
+ NATURAL_USER_PERSISTED ||= persist_user NATURAL_USER_DATA
9
+ LEGAL_USER_PERSISTED ||= persist_user LEGAL_USER_DATA
10
+
11
+ let(:new_natural_user_persisted) { persist_user NATURAL_USER_DATA }
12
+ let(:new_legal_user_persisted) { persist_user LEGAL_USER_DATA }
13
+ end
14
+
15
+ def persist_user(user)
16
+ MangoApi::Users.create user
17
+ end
18
+
19
+ def build_natural_user
20
+ nat_user = MangoModel::NaturalUser.new
21
+ nat_user.kyc_level = MangoModel::KycLevel::LIGHT
22
+ nat_user.email = 'hello@moto.com'
23
+ nat_user.first_name = 'Hi'
24
+ nat_user.last_name = 'Bye'
25
+ nat_user.address = build_address
26
+ nat_user.birthday = 105_102_394
27
+ nat_user.nationality = MangoModel::CountryIso::FR
28
+ nat_user.country_of_residence = MangoModel::CountryIso::FR
29
+ nat_user.occupation = 'programmer'
30
+ nat_user.income_range = MangoModel::IncomeRange::BETWEEN_30_50
31
+ nat_user
32
+ end
33
+
34
+ def build_legal_user
35
+ leg_user = MangoModel::LegalUser.new
36
+ leg_user.email = NATURAL_USER_DATA.email
37
+ leg_user.legal_person_type = MangoModel::LegalPersonType::BUSINESS
38
+ leg_user.name = 'MartixSampleOrg'
39
+ leg_user.headquarters_address = build_address
40
+ leg_user.legal_representative_first_name = NATURAL_USER_DATA.first_name
41
+ leg_user.legal_representative_last_name = NATURAL_USER_DATA.last_name
42
+ leg_user.legal_representative_address = NATURAL_USER_DATA.address
43
+ leg_user.legal_representative_email = NATURAL_USER_DATA.email
44
+ leg_user.company_number = 'LU12345678'
45
+ leg_user.legal_representative_birthday = NATURAL_USER_DATA.birthday
46
+ leg_user.legal_representative_nationality = NATURAL_USER_DATA.nationality
47
+ leg_user.legal_representative_country_of_residence = NATURAL_USER_DATA.country_of_residence
48
+ leg_user
49
+ end
50
+
51
+ def its_the_same_user(user1, user2)
52
+ if user1.is_a? MangoModel::NaturalUser
53
+ its_the_same_natural(user1, user2)
54
+ else
55
+ its_the_same_legal(user1, user2)
56
+ end
57
+ end
58
+
59
+ def its_the_same_natural(user1, user2)
60
+ user1.kyc_level.eql?(user2.kyc_level)\
61
+ && user1.email == user2.email\
62
+ && user1.first_name == user2.first_name\
63
+ && user1.last_name == user2.last_name\
64
+ && its_the_same_address(user1.address, user2.address)\
65
+ && user1.birthday == user2.birthday\
66
+ && user1.nationality.eql?(user2.nationality)\
67
+ && user1.country_of_residence.eql?(user2.country_of_residence)\
68
+ && user1.occupation == user2.occupation\
69
+ && user1.income_range == user2.income_range
70
+ end
71
+
72
+ def its_the_same_legal(user1, user2)
73
+ user1.email == user2.email\
74
+ && user1.legal_person_type.eql?(user2.legal_person_type)\
75
+ && user1.name == user2.name\
76
+ && its_the_same_address(user1.headquarters_address, user2.headquarters_address)\
77
+ && user1.legal_representative_first_name == user2.legal_representative_first_name\
78
+ && user1.legal_representative_last_name == user2.legal_representative_last_name\
79
+ && its_the_same_address(user1.legal_representative_address, user2.legal_representative_address)\
80
+ && user1.legal_representative_email == user2.legal_representative_email\
81
+ && user1.legal_representative_birthday == user2.legal_representative_birthday\
82
+ && user1.legal_representative_nationality == user2.legal_representative_nationality\
83
+ && user1.legal_representative_country_of_residence.eql?(user2.legal_representative_country_of_residence)
83
84
  end
@@ -1,53 +1,53 @@
1
- require_relative 'user_context'
2
- require_relative 'card_context'
3
- require_relative '../../lib/mangopay/model/entity/wallet'
4
- require_relative '../../lib/mangopay/model/entity/pay_in/card_direct_pay_in'
5
- require_relative '../../lib/mangopay/api/service/wallets'
6
- require_relative '../../lib/mangopay/api/service/pay_ins'
7
-
8
- shared_context 'wallet_context' do
9
- include_context 'user_context'
10
- include_context 'card_context'
11
-
12
- WALLET_DATA ||= build_wallet
13
- WALLET_PERSISTED ||= persist_wallet WALLET_DATA
14
-
15
- let(:new_wallet_persisted) { persist_wallet WALLET_DATA }
16
- end
17
-
18
- def persist_wallet(wallet)
19
- created = MangoApi::Wallets.create wallet
20
- pay_in = MangoModel::CardDirectPayIn.new
21
- pay_in.author_id = NATURAL_USER_PERSISTED.id
22
- pay_in.credited_user_id = NATURAL_USER_PERSISTED.id
23
- pay_in.credited_wallet_id = created.id
24
- pay_in.debited_funds = MangoModel::Money.new
25
- pay_in.debited_funds.currency = MangoModel::CurrencyIso::EUR
26
- pay_in.debited_funds.amount = 10_000
27
- pay_in.fees = MangoModel::Money.new
28
- pay_in.fees.currency = MangoModel::CurrencyIso::EUR
29
- pay_in.fees.amount = 30
30
- pay_in.secure_mode_return_url = 'http://www.my-site.com/returnURL/'
31
- pay_in.card_id = CARD.id
32
- pay_in.secure_mode = MangoModel::SecureMode::DEFAULT
33
- pay_in.statement_descriptor = 'Mar2016'
34
- MangoApi::PayIns.create_card_direct pay_in
35
- created
36
- end
37
-
38
- def build_wallet
39
- wallet = MangoModel::Wallet.new
40
- wallet.owners = [NATURAL_USER_PERSISTED.id]
41
- wallet.description = 'Just a wallet'
42
- wallet.currency = MangoModel::CurrencyIso::EUR
43
- wallet
44
- end
45
-
46
- def its_the_same_wallet(wallet1, wallet2)
47
- return false unless wallet1.owners.length == wallet2.owners.length
48
- wallet1.owners.each do |owner_id|
49
- return false unless wallet2.owners.include? owner_id
50
- end
51
- wallet1.description == wallet2.description\
52
- && wallet1.currency.eql?(wallet2.currency)
1
+ require_relative 'user_context'
2
+ require_relative 'card_context'
3
+ require_relative '../../lib/mangopay/model/entity/wallet'
4
+ require_relative '../../lib/mangopay/model/entity/pay_in/card_direct_pay_in'
5
+ require_relative '../../lib/mangopay/api/service/wallets'
6
+ require_relative '../../lib/mangopay/api/service/pay_ins'
7
+
8
+ shared_context 'wallet_context' do
9
+ include_context 'user_context'
10
+ include_context 'card_context'
11
+
12
+ WALLET_DATA ||= build_wallet
13
+ WALLET_PERSISTED ||= persist_wallet WALLET_DATA
14
+
15
+ let(:new_wallet_persisted) { persist_wallet WALLET_DATA }
16
+ end
17
+
18
+ def persist_wallet(wallet)
19
+ created = MangoApi::Wallets.create wallet
20
+ pay_in = MangoModel::CardDirectPayIn.new
21
+ pay_in.author_id = NATURAL_USER_PERSISTED.id
22
+ pay_in.credited_user_id = NATURAL_USER_PERSISTED.id
23
+ pay_in.credited_wallet_id = created.id
24
+ pay_in.debited_funds = MangoModel::Money.new
25
+ pay_in.debited_funds.currency = MangoModel::CurrencyIso::EUR
26
+ pay_in.debited_funds.amount = 10_000
27
+ pay_in.fees = MangoModel::Money.new
28
+ pay_in.fees.currency = MangoModel::CurrencyIso::EUR
29
+ pay_in.fees.amount = 30
30
+ pay_in.secure_mode_return_url = 'http://www.my-site.com/returnURL/'
31
+ pay_in.card_id = CARD.id
32
+ pay_in.secure_mode = MangoModel::SecureMode::DEFAULT
33
+ pay_in.statement_descriptor = 'Mar2016'
34
+ MangoApi::PayIns.create_card_direct pay_in
35
+ created
36
+ end
37
+
38
+ def build_wallet
39
+ wallet = MangoModel::Wallet.new
40
+ wallet.owners = [NATURAL_USER_PERSISTED.id]
41
+ wallet.description = 'Just a wallet'
42
+ wallet.currency = MangoModel::CurrencyIso::EUR
43
+ wallet
44
+ end
45
+
46
+ def its_the_same_wallet(wallet1, wallet2)
47
+ return false unless wallet1.owners.length == wallet2.owners.length
48
+ wallet1.owners.each do |owner_id|
49
+ return false unless wallet2.owners.include? owner_id
50
+ end
51
+ wallet1.description == wallet2.description\
52
+ && wallet1.currency.eql?(wallet2.currency)
53
53
  end
@@ -1,229 +1,229 @@
1
- require_relative '../../lib/mangopay/model/entity/account/bank_account'
2
- require_relative '../../spec/context/bank_account_context'
3
- require_relative '../../lib/mangopay/api/service/bank_accounts'
4
- require_relative '../../lib/mangopay/common/sort_direction'
5
- require_relative '../../lib/mangopay/common/sort_field'
6
-
7
- describe MangoApi::BankAccounts do
8
- include_context 'bank_account_context'
9
-
10
- describe '.create' do
11
-
12
- describe '#IBAN' do
13
- context 'given a valid object' do
14
- account = IBAN_ACCOUNT_PERSISTED
15
-
16
- it 'creates the IBAN bank account entity' do
17
- expect(account).to be_kind_of MangoModel::IbanBankAccount
18
- expect(account.id).not_to be_nil
19
- expect(its_the_same_iban(account, IBAN_ACCOUNT_PERSISTED)).to be_truthy
20
- end
21
- end
22
- end
23
-
24
- describe '#US' do
25
-
26
- describe '#Savings' do
27
- context 'given a valid object' do
28
- account = US_SAVINGS_ACCOUNT_PERSISTED
29
-
30
- it 'creates the US savings bank account entity' do
31
- expect(account).to be_kind_of MangoModel::UsBankAccount
32
- expect(account.id).not_to be_nil
33
- expect(its_the_same_us(account, US_SAVINGS_ACCOUNT_PERSISTED)).to be_truthy
34
- end
35
- end
36
- end
37
-
38
- describe '#Checking' do
39
- context 'given a valid object' do
40
- account = US_CHECKING_ACCOUNT_PERSISTED
41
-
42
- it 'creates the US checking bank account entity' do
43
- expect(account).to be_kind_of MangoModel::UsBankAccount
44
- expect(account.id).not_to be_nil
45
- expect(its_the_same_us(account, US_CHECKING_ACCOUNT_PERSISTED)).to be_truthy
46
- end
47
- end
48
- end
49
- end
50
-
51
- describe '#CA' do
52
- context 'given a valid object' do
53
- account = CA_ACCOUNT_PERSISTED
54
-
55
- it 'creates the CA bank account entity' do
56
- expect(account).to be_kind_of MangoModel::CaBankAccount
57
- expect(account.id).not_to be_nil
58
- expect(its_the_same_ca(account, CA_ACCOUNT_PERSISTED)).to be_truthy
59
- end
60
- end
61
- end
62
-
63
- describe '#GB' do
64
- context 'given a valid object' do
65
- account = GB_ACCOUNT_PERSISTED
66
-
67
- it 'creates the GB bank account entity' do
68
- expect(account).to be_kind_of MangoModel::GbBankAccount
69
- expect(account.id).not_to be_nil
70
- expect(its_the_same_gb(account, GB_ACCOUNT_PERSISTED)).to be_truthy
71
- end
72
- end
73
- end
74
-
75
- describe '#OTHER' do
76
- context 'given a valid object' do
77
- account = OTHER_ACCOUNT_PERSISTED
78
-
79
- it 'creates the OTHER bank account entity' do
80
- expect(account).to be_kind_of MangoModel::OtherBankAccount
81
- expect(account.id).not_to be_nil
82
- expect(its_the_same_other(account, OTHER_ACCOUNT_PERSISTED)).to be_truthy
83
- end
84
- end
85
- end
86
- end
87
-
88
- describe '.deactivate' do
89
-
90
- describe '#IBAN' do
91
- context 'given a valid object' do
92
- it 'deactivates the bank account entity' do
93
- # noinspection RubyResolve
94
- deactivate_and_check new_iban_account_persisted
95
- end
96
- end
97
- end
98
-
99
- describe '#US' do
100
- context 'given a valid object' do
101
- it 'deactivates the bank account entity' do
102
- # noinspection RubyResolve
103
- deactivate_and_check new_us_checking_account_persisted
104
- end
105
- end
106
- end
107
-
108
- describe '#CA' do
109
- context 'given a valid object' do
110
- it 'deactivates the bank account entity' do
111
- # noinspection RubyResolve
112
- deactivate_and_check new_ca_account_persisted
113
- end
114
- end
115
- end
116
-
117
- describe '#GB' do
118
- context 'given a valid object' do
119
- it 'deactivates the bank account entity' do
120
- # noinspection RubyResolve
121
- deactivate_and_check new_gb_account_persisted
122
- end
123
- end
124
- end
125
-
126
- describe '#OTHER' do
127
- context 'given a valid object' do
128
- it 'deactivates the bank account entity' do
129
- # noinspection RubyResolve
130
- deactivate_and_check new_other_account_persisted
131
- end
132
- end
133
- end
134
- end
135
-
136
- describe '.get' do
137
-
138
- describe '#IBAN' do
139
- describe "given an existing entity's ID" do
140
- it 'retrieves the corresponding entity' do
141
- get_and_check IBAN_ACCOUNT_PERSISTED
142
- end
143
- end
144
- end
145
-
146
- describe '#US' do
147
- describe "given an existing entity's ID" do
148
- it 'retrieves the corresponding entity' do
149
- get_and_check US_CHECKING_ACCOUNT_PERSISTED
150
- end
151
- end
152
- end
153
-
154
- describe '#CA' do
155
- describe "given an existing entity's ID" do
156
- it 'retrieves the corresponding entity' do
157
- get_and_check CA_ACCOUNT_PERSISTED
158
- end
159
- end
160
- end
161
-
162
- describe '#GB' do
163
- describe "given an existing entity's ID" do
164
- it 'retrieves the corresponding entity' do
165
- get_and_check GB_ACCOUNT_PERSISTED
166
- end
167
- end
168
- end
169
-
170
- describe '#OTHER' do
171
- describe "given an existing entity's ID" do
172
- it 'retrieves the corresponding entity' do
173
- get_and_check OTHER_ACCOUNT_PERSISTED
174
- end
175
- end
176
- end
177
- end
178
-
179
- describe '.all' do
180
-
181
- context 'not having specified filters' do
182
- results = MangoApi::BankAccounts.all(NATURAL_USER_PERSISTED.id)
183
-
184
- it 'retrieves list with default parameters' do
185
- expect(results).to be_kind_of Array
186
- results.each do |result|
187
- expect(result).to be_kind_of MangoModel::BankAccount
188
- end
189
- end
190
- end
191
-
192
- context 'having specified filters' do
193
- per_page = 3
194
- results = MangoApi::BankAccounts.all(NATURAL_USER_PERSISTED.id) do |filter|
195
- filter.page = 1
196
- filter.per_page = per_page
197
- filter.sort_field = MangoPay::SortField::CREATION_DATE
198
- filter.sort_direction = MangoPay::SortDirection::ASC
199
- end
200
-
201
- it 'retrieves list according to provided parameters' do
202
- expect(results).to be_kind_of Array
203
- expect(results.length).to eq per_page
204
- results.each.with_index do |result, index|
205
- expect(result).to be_kind_of MangoModel::BankAccount
206
- next if index == results.length - 1
207
- first_date = result.creation_date
208
- second_date = results[index + 1].creation_date
209
- expect(first_date <= second_date).to be_truthy
210
- end
211
- end
212
- end
213
- end
214
- end
215
-
216
- def deactivate_and_check(account)
217
- deactivated = MangoApi::BankAccounts.deactivate account.user_id, account.id
218
-
219
- expect(deactivated).to be_kind_of account.class
220
- expect(deactivated.id).to eq account.id
221
- expect(deactivated.active).to be_falsey
222
- end
223
-
224
- def get_and_check(account)
225
- retrieved = MangoApi::BankAccounts.get account.user_id, account.id
226
-
227
- expect(retrieved).to be_kind_of account.class
228
- expect(retrieved.id).to eq account.id
1
+ require_relative '../../lib/mangopay/model/entity/account/bank_account'
2
+ require_relative '../../spec/context/bank_account_context'
3
+ require_relative '../../lib/mangopay/api/service/bank_accounts'
4
+ require_relative '../../lib/mangopay/common/sort_direction'
5
+ require_relative '../../lib/mangopay/common/sort_field'
6
+
7
+ describe MangoApi::BankAccounts do
8
+ include_context 'bank_account_context'
9
+
10
+ describe '.create' do
11
+
12
+ describe '#IBAN' do
13
+ context 'given a valid object' do
14
+ account = IBAN_ACCOUNT_PERSISTED
15
+
16
+ it 'creates the IBAN bank account entity' do
17
+ expect(account).to be_kind_of MangoModel::IbanBankAccount
18
+ expect(account.id).not_to be_nil
19
+ expect(its_the_same_iban(account, IBAN_ACCOUNT_PERSISTED)).to be_truthy
20
+ end
21
+ end
22
+ end
23
+
24
+ describe '#US' do
25
+
26
+ describe '#Savings' do
27
+ context 'given a valid object' do
28
+ account = US_SAVINGS_ACCOUNT_PERSISTED
29
+
30
+ it 'creates the US savings bank account entity' do
31
+ expect(account).to be_kind_of MangoModel::UsBankAccount
32
+ expect(account.id).not_to be_nil
33
+ expect(its_the_same_us(account, US_SAVINGS_ACCOUNT_PERSISTED)).to be_truthy
34
+ end
35
+ end
36
+ end
37
+
38
+ describe '#Checking' do
39
+ context 'given a valid object' do
40
+ account = US_CHECKING_ACCOUNT_PERSISTED
41
+
42
+ it 'creates the US checking bank account entity' do
43
+ expect(account).to be_kind_of MangoModel::UsBankAccount
44
+ expect(account.id).not_to be_nil
45
+ expect(its_the_same_us(account, US_CHECKING_ACCOUNT_PERSISTED)).to be_truthy
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ describe '#CA' do
52
+ context 'given a valid object' do
53
+ account = CA_ACCOUNT_PERSISTED
54
+
55
+ it 'creates the CA bank account entity' do
56
+ expect(account).to be_kind_of MangoModel::CaBankAccount
57
+ expect(account.id).not_to be_nil
58
+ expect(its_the_same_ca(account, CA_ACCOUNT_PERSISTED)).to be_truthy
59
+ end
60
+ end
61
+ end
62
+
63
+ describe '#GB' do
64
+ context 'given a valid object' do
65
+ account = GB_ACCOUNT_PERSISTED
66
+
67
+ it 'creates the GB bank account entity' do
68
+ expect(account).to be_kind_of MangoModel::GbBankAccount
69
+ expect(account.id).not_to be_nil
70
+ expect(its_the_same_gb(account, GB_ACCOUNT_PERSISTED)).to be_truthy
71
+ end
72
+ end
73
+ end
74
+
75
+ describe '#OTHER' do
76
+ context 'given a valid object' do
77
+ account = OTHER_ACCOUNT_PERSISTED
78
+
79
+ it 'creates the OTHER bank account entity' do
80
+ expect(account).to be_kind_of MangoModel::OtherBankAccount
81
+ expect(account.id).not_to be_nil
82
+ expect(its_the_same_other(account, OTHER_ACCOUNT_PERSISTED)).to be_truthy
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ describe '.deactivate' do
89
+
90
+ describe '#IBAN' do
91
+ context 'given a valid object' do
92
+ it 'deactivates the bank account entity' do
93
+ # noinspection RubyResolve
94
+ deactivate_and_check new_iban_account_persisted
95
+ end
96
+ end
97
+ end
98
+
99
+ describe '#US' do
100
+ context 'given a valid object' do
101
+ it 'deactivates the bank account entity' do
102
+ # noinspection RubyResolve
103
+ deactivate_and_check new_us_checking_account_persisted
104
+ end
105
+ end
106
+ end
107
+
108
+ describe '#CA' do
109
+ context 'given a valid object' do
110
+ it 'deactivates the bank account entity' do
111
+ # noinspection RubyResolve
112
+ deactivate_and_check new_ca_account_persisted
113
+ end
114
+ end
115
+ end
116
+
117
+ describe '#GB' do
118
+ context 'given a valid object' do
119
+ it 'deactivates the bank account entity' do
120
+ # noinspection RubyResolve
121
+ deactivate_and_check new_gb_account_persisted
122
+ end
123
+ end
124
+ end
125
+
126
+ describe '#OTHER' do
127
+ context 'given a valid object' do
128
+ it 'deactivates the bank account entity' do
129
+ # noinspection RubyResolve
130
+ deactivate_and_check new_other_account_persisted
131
+ end
132
+ end
133
+ end
134
+ end
135
+
136
+ describe '.get' do
137
+
138
+ describe '#IBAN' do
139
+ describe "given an existing entity's ID" do
140
+ it 'retrieves the corresponding entity' do
141
+ get_and_check IBAN_ACCOUNT_PERSISTED
142
+ end
143
+ end
144
+ end
145
+
146
+ describe '#US' do
147
+ describe "given an existing entity's ID" do
148
+ it 'retrieves the corresponding entity' do
149
+ get_and_check US_CHECKING_ACCOUNT_PERSISTED
150
+ end
151
+ end
152
+ end
153
+
154
+ describe '#CA' do
155
+ describe "given an existing entity's ID" do
156
+ it 'retrieves the corresponding entity' do
157
+ get_and_check CA_ACCOUNT_PERSISTED
158
+ end
159
+ end
160
+ end
161
+
162
+ describe '#GB' do
163
+ describe "given an existing entity's ID" do
164
+ it 'retrieves the corresponding entity' do
165
+ get_and_check GB_ACCOUNT_PERSISTED
166
+ end
167
+ end
168
+ end
169
+
170
+ describe '#OTHER' do
171
+ describe "given an existing entity's ID" do
172
+ it 'retrieves the corresponding entity' do
173
+ get_and_check OTHER_ACCOUNT_PERSISTED
174
+ end
175
+ end
176
+ end
177
+ end
178
+
179
+ describe '.all' do
180
+
181
+ context 'not having specified filters' do
182
+ results = MangoApi::BankAccounts.all(NATURAL_USER_PERSISTED.id)
183
+
184
+ it 'retrieves list with default parameters' do
185
+ expect(results).to be_kind_of Array
186
+ results.each do |result|
187
+ expect(result).to be_kind_of MangoModel::BankAccount
188
+ end
189
+ end
190
+ end
191
+
192
+ context 'having specified filters' do
193
+ per_page = 3
194
+ results = MangoApi::BankAccounts.all(NATURAL_USER_PERSISTED.id) do |filter|
195
+ filter.page = 1
196
+ filter.per_page = per_page
197
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
198
+ filter.sort_direction = MangoPay::SortDirection::ASC
199
+ end
200
+
201
+ it 'retrieves list according to provided parameters' do
202
+ expect(results).to be_kind_of Array
203
+ expect(results.length).to eq per_page
204
+ results.each.with_index do |result, index|
205
+ expect(result).to be_kind_of MangoModel::BankAccount
206
+ next if index == results.length - 1
207
+ first_date = result.creation_date
208
+ second_date = results[index + 1].creation_date
209
+ expect(first_date <= second_date).to be_truthy
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
215
+
216
+ def deactivate_and_check(account)
217
+ deactivated = MangoApi::BankAccounts.deactivate account.user_id, account.id
218
+
219
+ expect(deactivated).to be_kind_of account.class
220
+ expect(deactivated.id).to eq account.id
221
+ expect(deactivated.active).to be_falsey
222
+ end
223
+
224
+ def get_and_check(account)
225
+ retrieved = MangoApi::BankAccounts.get account.user_id, account.id
226
+
227
+ expect(retrieved).to be_kind_of account.class
228
+ expect(retrieved.id).to eq account.id
229
229
  end