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,181 +1,280 @@
1
- require_relative '../../spec/context/pay_in_context'
2
- require_relative '../../lib/mangopay/api/service/pay_ins'
3
-
4
- describe MangoApi::PayIns do
5
- include_context 'pay_in_context'
6
-
7
- describe '.create' do
8
-
9
- describe '#CARD WEB' do
10
- context 'given a valid object' do
11
- pay_in = CARD_WEB_PAY_IN_DATA
12
-
13
- it 'creates the card web pay-in entity' do
14
- created = MangoApi::PayIns.create_card_web pay_in
15
-
16
- expect(created).to be_kind_of MangoModel::CardWebPayIn
17
- expect(created.id).not_to be_nil
18
- expect(created.status).to be MangoModel::TransactionStatus::CREATED
19
- expect(created.payment_type).to be MangoModel::PayInPaymentType::CARD
20
- expect(created.execution_type).to be MangoModel::PayInExecutionType::WEB
21
- expect(its_the_same_card_web(pay_in, created)).to be_truthy
22
- end
23
- end
24
- end
25
-
26
- describe '#CARD DIRECT' do
27
- context 'given a valid object' do
28
- pay_in = CARD_DIRECT_PAY_IN_DATA
29
-
30
- it 'creates the card direct pay-in entity' do
31
- created = MangoApi::PayIns.create_card_direct pay_in
32
-
33
- expect(created).to be_kind_of MangoModel::CardDirectPayIn
34
- expect(created.id).not_to be_nil
35
- expect(created.status).to be MangoModel::TransactionStatus::SUCCEEDED
36
- expect(created.payment_type).to be MangoModel::PayInPaymentType::CARD
37
- expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
38
- expect(its_the_same_card_direct(pay_in, created)).to be_truthy
39
- end
40
- end
41
- end
42
-
43
- describe '#CARD PREAUTHORIZED' do
44
- context 'given a valid object' do
45
- pay_in = CARD_PRE_AUTH_PAY_IN_DATA
46
-
47
- it 'creates the card pre-authorized pay-in entity' do
48
- created = CARD_PRE_AUTH_PAY_IN_PERSISTED
49
-
50
- expect(created).to be_kind_of MangoModel::CardPreAuthorizedPayIn
51
- expect(created.id).not_to be_nil
52
- expect(created.status).to be MangoModel::TransactionStatus::SUCCEEDED
53
- expect(created.payment_type).to be MangoModel::PayInPaymentType::PREAUTHORIZED
54
- expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
55
- expect(its_the_same_card_pre_auth(pay_in, created)).to be_truthy
56
- end
57
- end
58
- end
59
-
60
- describe '#BANK_WIRE DIRECT' do
61
-
62
- context 'to a wallet' do
63
- context 'given a valid object' do
64
- pay_in = BANK_WIRE_DIRECT_PAY_IN_DATA
65
-
66
- it 'creates the bank wire direct pay-in entity' do
67
- created = MangoApi::PayIns.create_bank_wire_direct pay_in
68
-
69
- expect(created).to be_kind_of MangoModel::BankWireDirectPayIn
70
- expect(created.id).not_to be_nil
71
- expect(created.status).to be MangoModel::TransactionStatus::CREATED
72
- expect(created.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
73
- expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
74
- expect(created.bank_account).to be_kind_of MangoModel::BankAccount
75
- expect(its_the_same_bank_wire_direct(pay_in, created)).to be_truthy
76
- end
77
- end
78
- end
79
-
80
- context 'to a client wallet' do
81
- pay_in = MangoModel::BankWireDirectPayIn.new
82
- pay_in.credited_wallet_id = 'CREDIT_EUR'
83
- pay_in.declared_debited_funds = MangoModel::Money.new
84
- pay_in.declared_debited_funds.currency = MangoModel::CurrencyIso::EUR
85
- pay_in.declared_debited_funds.amount = 120
86
- pay_in.declared_fees = MangoModel::Money.new
87
- pay_in.declared_fees.currency = MangoModel::CurrencyIso::EUR
88
- pay_in.declared_fees.amount = 30
89
-
90
- it 'creates the bank wire direct entity' do
91
- created = MangoApi::PayIns.create_client_bank_wire_direct pay_in
92
- expect(created).to be_kind_of MangoModel::BankWireDirectPayIn
93
- expect(created.id).not_to be_nil
94
- expect(created.status).to be MangoModel::TransactionStatus::CREATED
95
- expect(created.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
96
- expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
97
- expect(created.bank_account).to be_kind_of MangoModel::BankAccount
98
- expect(created.credited_wallet_id).to eq pay_in.credited_wallet_id
99
- expect(its_the_same_money(pay_in.declared_debited_funds, created.declared_debited_funds)).to be_truthy
100
- end
101
- end
102
- end
103
-
104
- describe '#DIRECT_DEBIT WEB' do
105
- context 'given a valid object' do
106
- pay_in = DIRECT_DEBIT_WEB_PAY_IN_DATA
107
-
108
- it 'creates the direct-debit web pay-in entity' do
109
- created = MangoApi::PayIns.create_direct_debit_web pay_in
110
-
111
- expect(created).to be_kind_of MangoModel::DirectDebitWebPayIn
112
- expect(created.id).not_to be_nil
113
- expect(created.status).to be MangoModel::TransactionStatus::CREATED
114
- expect(created.payment_type).to be MangoModel::PayInPaymentType::DIRECT_DEBIT
115
- expect(created.execution_type).to be MangoModel::PayInExecutionType::WEB
116
- expect(its_the_same_direct_debit_web(pay_in, created)).to be_truthy
117
- end
118
- end
119
- end
120
-
121
- # describe '#DIRECT_DEBIT DIRECT' do
122
- # context 'given a valid object' do
123
- # mandate = MANDATE_PERSISTED
124
- #
125
- # # Attention
126
- # #
127
- # # To make this test pass, you must pause execution with a breakpoint on
128
- # # the following line, and use your browser to open the page received
129
- # # in the +mandate.redirect_url+ property and click the Confirm button
130
- # # before continuing
131
- # expect(mandate.status).to be MangoModel::MandateStatus::SUBMITTED # Place breakpoint here
132
- # pay_in = DIRECT_DEBIT_DIRECT_PAY_IN_DATA
133
- #
134
- # it 'creates the direct-debit direct pay-in entity' do
135
- # created = MangoApi::PayIns.create_direct_debit_direct pay_in
136
- #
137
- # expect(created).to be_kind_of MangoModel::DirectDebitDirectPayIn
138
- # expect(created.id).not_to be_nil
139
- # expect(created.status).to be MangoModel::TransactionStatus::CREATED
140
- # expect(created.payment_type).to be MangoModel::PayInPaymentType::DIRECT_DEBIT
141
- # expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
142
- # expect(its_the_same_direct_debit_direct(pay_in, created)).to be_truthy
143
- # end
144
- # end
145
- # end
146
- end
147
-
148
- # Fails with message 'Cannot found the ressource PayIn with the id=XXXXXXXX ',
149
- # even though a newly-created Pay-In's ID is used. API problem?
150
- #
151
- # describe '.get_extended_card_view' do
152
- #
153
- # context "given an existing Card Web Pay-In entity's ID" do
154
- # created = CARD_WEB_PAY_IN_PERSISTED
155
- # id = created.id
156
- #
157
- # it 'retrieves an extended detail view of the card used' do
158
- # extended_card = MangoApi::PayIns.extended_card_view id
159
- #
160
- # expect(extended_card).to be_kind_of MangoModel::PayInWebExtendedView
161
- # expect(extended_card.id).to eq id
162
- # end
163
- # end
164
- # end
165
-
166
- describe '.get' do
167
-
168
- context "given an existing entity's ID" do
169
- created = CARD_WEB_PAY_IN_PERSISTED
170
- id = created.id
171
-
172
- it 'retrieves the corresponding entity' do
173
- retrieved = MangoApi::PayIns.get id
174
-
175
- expect(retrieved).to be_kind_of MangoModel::CardWebPayIn
176
- expect(retrieved.id).to eq id
177
- expect(its_the_same_card_web(created, retrieved)).to be_truthy
178
- end
179
- end
180
- end
1
+ require_relative '../../spec/context/pay_in_context'
2
+ require_relative '../../lib/mangopay/api/service/pay_ins'
3
+
4
+ describe MangoApi::PayIns do
5
+ include_context 'pay_in_context'
6
+
7
+ describe '.create' do
8
+
9
+ describe '#CARD WEB' do
10
+ context 'given a valid object' do
11
+ pay_in = CARD_WEB_PAY_IN_DATA
12
+
13
+ it 'creates the card web pay-in entity' do
14
+ created = MangoApi::PayIns.create_card_web pay_in
15
+
16
+ expect(created).to be_kind_of MangoModel::CardWebPayIn
17
+ expect(created.id).not_to be_nil
18
+ expect(created.status).to be MangoModel::TransactionStatus::CREATED
19
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::CARD
20
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::WEB
21
+ expect(its_the_same_card_web(pay_in, created)).to be_truthy
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#CARD DIRECT' do
27
+ context 'given a valid object' do
28
+ pay_in = CARD_DIRECT_PAY_IN_DATA
29
+
30
+ it 'creates the card direct pay-in entity' do
31
+ created = MangoApi::PayIns.create_card_direct pay_in
32
+
33
+ expect(created).to be_kind_of MangoModel::CardDirectPayIn
34
+ expect(created.id).not_to be_nil
35
+ expect(created.status).to be MangoModel::TransactionStatus::SUCCEEDED
36
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::CARD
37
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
38
+ expect(created.security_info.avs_result).to be MangoModel::AvsResult::NO_CHECK
39
+ expect(its_the_same_card_direct(pay_in, created)).to be_truthy
40
+ expect(created.culture).not_to be_nil
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '#CARD PREAUTHORIZED' do
46
+ context 'given a valid object' do
47
+ pay_in = CARD_PRE_AUTH_PAY_IN_DATA
48
+
49
+ it 'creates the card pre-authorized pay-in entity' do
50
+ created = CARD_PRE_AUTH_PAY_IN_PERSISTED
51
+
52
+ expect(created).to be_kind_of MangoModel::CardPreAuthorizedPayIn
53
+ expect(created.id).not_to be_nil
54
+ expect(created.status).to be MangoModel::TransactionStatus::SUCCEEDED
55
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::PREAUTHORIZED
56
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
57
+ expect(its_the_same_card_pre_auth(pay_in, created)).to be_truthy
58
+ # expect(created.culture).not_to be_nil for some reason this comes null
59
+ end
60
+ end
61
+ end
62
+
63
+ describe '#BANK_WIRE_EXTERNAL_INSTRUCTION' do
64
+ context 'using iban' do
65
+ payin_id = "74980101"
66
+ it 'fetches the payin' do
67
+ pay_in = MangoApi::PayIns.get payin_id
68
+
69
+ debited_bank_account = pay_in.debited_bank_account
70
+ expect(pay_in).not_to be_nil
71
+ expect(pay_in.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
72
+ expect(pay_in.execution_type).to be MangoModel::PayInExecutionType::EXTERNAL_INSTRUCTION
73
+ expect(debited_bank_account.iban).not_to be_nil
74
+ expect(debited_bank_account.account_number).to be_nil
75
+ end
76
+ end
77
+
78
+ context 'using account number' do
79
+ payin_id = "74981216"
80
+ it 'fetches the payin' do
81
+ pay_in = MangoApi::PayIns.get payin_id
82
+
83
+ debited_bank_account = pay_in.debited_bank_account
84
+ expect(pay_in).not_to be_nil
85
+ expect(pay_in.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
86
+ expect(pay_in.execution_type).to be MangoModel::PayInExecutionType::EXTERNAL_INSTRUCTION
87
+ expect(debited_bank_account.iban).to be_nil
88
+ expect(debited_bank_account.account_number).not_to be_nil
89
+ end
90
+ end
91
+ end
92
+
93
+ describe '#BANK_WIRE DIRECT' do
94
+
95
+ context 'to a wallet' do
96
+ context 'given a valid object' do
97
+ pay_in = BANK_WIRE_DIRECT_PAY_IN_DATA
98
+
99
+ it 'creates the bank wire direct pay-in entity' do
100
+ created = MangoApi::PayIns.create_bank_wire_direct pay_in
101
+
102
+ expect(created).to be_kind_of MangoModel::BankWireDirectPayIn
103
+ expect(created.id).not_to be_nil
104
+ expect(created.status).to be MangoModel::TransactionStatus::CREATED
105
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
106
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
107
+ expect(created.bank_account).to be_kind_of MangoModel::BankAccount
108
+ expect(its_the_same_bank_wire_direct(pay_in, created)).to be_truthy
109
+ # expect(created.culture).not_to be_nil for some reason this comes null
110
+ end
111
+ end
112
+ end
113
+
114
+ context 'to a client wallet' do
115
+ pay_in = MangoModel::BankWireDirectPayIn.new
116
+ pay_in.credited_wallet_id = 'CREDIT_EUR'
117
+ pay_in.declared_debited_funds = MangoModel::Money.new
118
+ pay_in.declared_debited_funds.currency = MangoModel::CurrencyIso::EUR
119
+ pay_in.declared_debited_funds.amount = 120
120
+ pay_in.declared_fees = MangoModel::Money.new
121
+ pay_in.declared_fees.currency = MangoModel::CurrencyIso::EUR
122
+ pay_in.declared_fees.amount = 30
123
+
124
+ it 'creates the bank wire direct entity' do
125
+ created = MangoApi::PayIns.create_client_bank_wire_direct pay_in
126
+ expect(created).to be_kind_of MangoModel::BankWireDirectPayIn
127
+ expect(created.id).not_to be_nil
128
+ expect(created.status).to be MangoModel::TransactionStatus::CREATED
129
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::BANK_WIRE
130
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
131
+ expect(created.bank_account).to be_kind_of MangoModel::BankAccount
132
+ expect(created.credited_wallet_id).to eq pay_in.credited_wallet_id
133
+ expect(its_the_same_money(pay_in.declared_debited_funds, created.declared_debited_funds)).to be_truthy
134
+ end
135
+ end
136
+ end
137
+
138
+ describe '#DIRECT_DEBIT WEB' do
139
+ context 'given a valid object' do
140
+ pay_in = DIRECT_DEBIT_WEB_PAY_IN_DATA
141
+
142
+ it 'creates the direct-debit web pay-in entity' do
143
+ created = MangoApi::PayIns.create_direct_debit_web pay_in
144
+
145
+ expect(created).to be_kind_of MangoModel::DirectDebitWebPayIn
146
+ expect(created.id).not_to be_nil
147
+ expect(created.status).to be MangoModel::TransactionStatus::CREATED
148
+ expect(created.payment_type).to be MangoModel::PayInPaymentType::DIRECT_DEBIT
149
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::WEB
150
+ expect(its_the_same_direct_debit_web(pay_in, created)).to be_truthy
151
+ end
152
+ end
153
+ end
154
+
155
+ describe '#PAYPAL WEB' do
156
+ context 'given a valid object' do
157
+ pay_in = PAYPAL_PAY_IN_DATA
158
+
159
+ it 'creates a paypal web payin' do
160
+ created = MangoApi::PayIns.create_paypal_web pay_in
161
+
162
+ expect(created).not_to be_nil
163
+ expect(created.id).not_to be_nil
164
+ expect(created.payment_type).to eq MangoModel::PayInPaymentType::PAYPAL
165
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::WEB
166
+ expect(created.status).to be MangoModel::TransactionStatus::CREATED
167
+ end
168
+ end
169
+
170
+
171
+ context 'given a payIn ID and a PayPal account email ' do
172
+ payin_id = "54088959"
173
+ buyer_account_email = "paypal-buyer-user@mangopay.com"
174
+ it 'fetches the payin' do
175
+ pay_in = MangoApi::PayIns.get payin_id
176
+
177
+ expect(pay_in).not_to be_nil
178
+ expect(pay_in.id).to eq payin_id
179
+ expect(pay_in.paypal_buyer_account_email).to eq buyer_account_email
180
+ end
181
+ end
182
+
183
+ context 'given an existing payin' do
184
+ payin = PAYPAL_PAY_IN_PERSISTED
185
+ it 'fetches the payin' do
186
+ fetched = MangoApi::PayIns.get payin.id
187
+
188
+ expect(fetched).not_to be_nil
189
+ expect(its_the_same_paypal_web(payin, fetched)).to be_truthy
190
+ end
191
+ end
192
+ end
193
+
194
+ describe '#APPLE PAY DIRECT' do
195
+
196
+ context 'given a valid object' do
197
+ payin = APPLE_PAY_PAY_IN_DATA
198
+ it 'creates an apple pay payin' do
199
+ created = MangoApi::PayIns.create_apple_pay_direct payin
200
+
201
+ expect(created).not_to be_nil
202
+ expect(created.id).not_to be_nil
203
+ expect(created.payment_type).to eq MangoModel::PayInPaymentType::APPLEPAY
204
+ expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
205
+ expect(created.status).to be MangoModel::TransactionStatus::SUCCEEDED
206
+ end
207
+ end
208
+
209
+ context 'given an existing payin' do
210
+ payin = APPLE_PAY_PAY_IN_PERSISTED
211
+ it 'fetches the payin by id' do
212
+ fetched = MangoApi::PayIns.get payin.id
213
+
214
+ expect(fetched).not_to be_nil
215
+ expect(its_the_same_paypal_web(payin, fetched)).to be_truthy
216
+ end
217
+ end
218
+ end
219
+
220
+ # describe '#DIRECT_DEBIT DIRECT' do
221
+ # context 'given a valid object' do
222
+ # mandate = MANDATE_PERSISTED
223
+ #
224
+ # # Attention
225
+ # #
226
+ # # To make this test pass, you must pause execution with a breakpoint on
227
+ # # the following line, and use your browser to open the page received
228
+ # # in the +mandate.redirect_url+ property and click the Confirm button
229
+ # # before continuing
230
+ # expect(mandate.status).to be MangoModel::MandateStatus::SUBMITTED # Place breakpoint here
231
+ # pay_in = DIRECT_DEBIT_DIRECT_PAY_IN_DATA
232
+ #
233
+ # it 'creates the direct-debit direct pay-in entity' do
234
+ # created = MangoApi::PayIns.create_direct_debit_direct pay_in
235
+ #
236
+ # expect(created).to be_kind_of MangoModel::DirectDebitDirectPayIn
237
+ # expect(created.id).not_to be_nil
238
+ # expect(created.status).to be MangoModel::TransactionStatus::CREATED
239
+ # expect(created.payment_type).to be MangoModel::PayInPaymentType::DIRECT_DEBIT
240
+ # expect(created.execution_type).to be MangoModel::PayInExecutionType::DIRECT
241
+ # expect(its_the_same_direct_debit_direct(pay_in, created)).to be_truthy
242
+ # end
243
+ # end
244
+ # end
245
+ end
246
+
247
+ # Fails with message 'Cannot found the ressource PayIn with the id=XXXXXXXX ',
248
+ # even though a newly-created Pay-In's ID is used. API problem?
249
+ #
250
+ # describe '.get_extended_card_view' do
251
+ #
252
+ # context "given an existing Card Web Pay-In entity's ID" do
253
+ # created = CARD_WEB_PAY_IN_PERSISTED
254
+ # id = created.id
255
+ #
256
+ # it 'retrieves an extended detail view of the card used' do
257
+ # extended_card = MangoApi::PayIns.extended_card_view id
258
+ #
259
+ # expect(extended_card).to be_kind_of MangoModel::PayInWebExtendedView
260
+ # expect(extended_card.id).to eq id
261
+ # end
262
+ # end
263
+ # end
264
+
265
+ describe '.get' do
266
+
267
+ context "given an existing entity's ID" do
268
+ created = CARD_WEB_PAY_IN_PERSISTED
269
+ id = created.id
270
+
271
+ it 'retrieves the corresponding entity' do
272
+ retrieved = MangoApi::PayIns.get id
273
+
274
+ expect(retrieved).to be_kind_of MangoModel::CardWebPayIn
275
+ expect(retrieved.id).to eq id
276
+ expect(its_the_same_card_web(created, retrieved)).to be_truthy
277
+ end
278
+ end
279
+ end
181
280
  end