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,121 +1,119 @@
1
- require_relative '../../lib/mangopay/api/service/reports'
2
- require_relative '../../spec/context/report_context'
3
- require_relative '../../lib/mangopay/common/sort_field'
4
- require_relative '../../lib/mangopay/common/sort_direction'
5
-
6
- describe MangoApi::Reports do
7
- include_context 'report_context'
8
-
9
- describe '.create_for_transactions' do
10
-
11
- context 'given a valid object' do
12
- report = REPORT_DATA
13
-
14
- it 'creates the transaction report entity' do
15
- created = MangoApi::Reports.create_for_transactions report do |filter|
16
- filter.before_date = 1_463_440_221
17
- filter.after_date = 1_449_817_821
18
- filter.type = [MangoModel::TransactionType::PAYIN]
19
- filter.status = [MangoModel::TransactionStatus::SUCCEEDED]
20
- filter.nature = [MangoModel::TransactionNature::REGULAR]
21
- filter.min_debited_funds_amount = 430
22
- filter.min_debited_funds_currency = MangoModel::CurrencyIso::EUR
23
- filter.max_debited_funds_amount = 8790
24
- filter.max_debited_funds_currency = MangoModel::CurrencyIso::EUR
25
- filter.min_fees_amount = 120
26
- filter.min_fees_currency = MangoModel::CurrencyIso::EUR
27
- filter.max_fees_amount = 450
28
- filter.max_fees_currency = MangoModel::CurrencyIso::EUR
29
- end
30
-
31
- expect(created).to be_kind_of MangoModel::Report
32
- expect(created.id).not_to be_nil
33
- expect(created.report_type).to be MangoModel::ReportType::TRANSACTIONS
34
- expect(created.status).to be MangoModel::ReportStatus::PENDING
35
- end
36
- end
37
- end
38
-
39
- describe '.create_for_wallets' do
40
-
41
- context 'given a valid object' do
42
- report = REPORT_DATA
43
-
44
- it 'creates the transaction report entity' do
45
- created = MangoApi::Reports.create_for_wallets report do |filter|
46
- filter.before_date = 1_463_440_221
47
- filter.after_date = 1_449_817_821
48
- filter.currency = MangoModel::CurrencyIso::EUR
49
- filter.min_balance_amount = 123
50
- filter.min_balance_currency = MangoModel::CurrencyIso::EUR
51
- filter.max_balance_amount = 1230
52
- filter.max_balance_currency = MangoModel::CurrencyIso::EUR
53
- end
54
-
55
- expect(created).to be_kind_of MangoModel::Report
56
- expect(created.id).not_to be_nil
57
- expect(created.report_type).to be MangoModel::ReportType::WALLETS
58
- expect(created.status).to be MangoModel::ReportStatus::PENDING
59
- end
60
- end
61
- end
62
-
63
- describe '.get' do
64
-
65
- context "given an existing entity's ID" do
66
- created = REPORT_PERSISTED
67
- id = created.id
68
-
69
- it 'retrieves the corresponding entity' do
70
- retrieved = MangoApi::Reports.get id
71
-
72
- expect(retrieved).to be_kind_of MangoModel::Report
73
- expect(retrieved.id).to eq id
74
- end
75
- end
76
- end
77
-
78
- describe '.all' do
79
-
80
- context 'from a correctly-configured environment' do
81
- context 'not having specified filters' do
82
- default_per_page = 10
83
-
84
- it 'retrieves list with default parameters' do
85
- results = MangoApi::Reports.all
86
-
87
- expect(results).to be_kind_of Array
88
- expect(results.length).to eq default_per_page
89
- results.each do |result|
90
- expect(result).to be_kind_of MangoModel::Report
91
- expect(result.id).not_to be_nil
92
- end
93
- end
94
- end
95
-
96
- context 'having specified filters' do
97
- per_page = 11
98
-
99
- it 'retrieves list with specified parameters' do
100
- results = MangoApi::Reports.all do |filter|
101
- filter.page = 1
102
- filter.per_page = per_page
103
- filter.sort_field = MangoPay::SortField::CREATION_DATE
104
- filter.sort_direction = MangoPay::SortDirection::DESC
105
- end
106
-
107
- expect(results).to be_kind_of Array
108
- expect(results.length).to eq per_page
109
- results.each.with_index do |result, index|
110
- expect(result).to be_kind_of MangoModel::Report
111
- expect(result.id).not_to be_nil
112
- next if index == results.length - 1
113
- first_date = result.creation_date
114
- second_date = results[index + 1].creation_date
115
- expect(first_date >= second_date).to be_truthy
116
- end
117
- end
118
- end
119
- end
120
- end
1
+ require_relative '../../lib/mangopay/api/service/reports'
2
+ require_relative '../../spec/context/report_context'
3
+ require_relative '../../lib/mangopay/common/sort_field'
4
+ require_relative '../../lib/mangopay/common/sort_direction'
5
+
6
+ describe MangoApi::Reports do
7
+ include_context 'report_context'
8
+
9
+ describe '.create_for_transactions' do
10
+
11
+ context 'given a valid object' do
12
+ report = REPORT_DATA
13
+
14
+ it 'creates the transaction report entity' do
15
+ created = MangoApi::Reports.create_for_transactions report do |filter|
16
+ filter.type = [MangoModel::TransactionType::PAYIN]
17
+ filter.status = [MangoModel::TransactionStatus::SUCCEEDED]
18
+ filter.nature = [MangoModel::TransactionNature::REGULAR]
19
+ filter.min_debited_funds_amount = 430
20
+ filter.min_debited_funds_currency = MangoModel::CurrencyIso::EUR
21
+ filter.max_debited_funds_amount = 8790
22
+ filter.max_debited_funds_currency = MangoModel::CurrencyIso::EUR
23
+ filter.min_fees_amount = 120
24
+ filter.min_fees_currency = MangoModel::CurrencyIso::EUR
25
+ filter.max_fees_amount = 450
26
+ filter.max_fees_currency = MangoModel::CurrencyIso::EUR
27
+ end
28
+
29
+ expect(created).to be_kind_of MangoModel::Report
30
+ expect(created.id).not_to be_nil
31
+ expect(created.report_type).to be MangoModel::ReportType::TRANSACTIONS
32
+ expect(created.status).to be MangoModel::ReportStatus::PENDING
33
+ end
34
+ end
35
+ end
36
+
37
+ describe '.create_for_wallets' do
38
+
39
+ context 'given a valid object' do
40
+ report = REPORT_DATA
41
+
42
+ it 'creates the transaction report entity' do
43
+ created = MangoApi::Reports.create_for_wallets report do |filter|
44
+ filter.before_date = 1_463_440_221
45
+ filter.after_date = 1_449_817_821
46
+ filter.currency = MangoModel::CurrencyIso::EUR
47
+ filter.min_balance_amount = 123
48
+ filter.min_balance_currency = MangoModel::CurrencyIso::EUR
49
+ filter.max_balance_amount = 1230
50
+ filter.max_balance_currency = MangoModel::CurrencyIso::EUR
51
+ end
52
+
53
+ expect(created).to be_kind_of MangoModel::Report
54
+ expect(created.id).not_to be_nil
55
+ expect(created.report_type).to be MangoModel::ReportType::WALLETS
56
+ expect(created.status).to be MangoModel::ReportStatus::PENDING
57
+ end
58
+ end
59
+ end
60
+
61
+ describe '.get' do
62
+
63
+ context "given an existing entity's ID" do
64
+ created = REPORT_PERSISTED
65
+ id = created.id
66
+
67
+ it 'retrieves the corresponding entity' do
68
+ retrieved = MangoApi::Reports.get id
69
+
70
+ expect(retrieved).to be_kind_of MangoModel::Report
71
+ expect(retrieved.id).to eq id
72
+ end
73
+ end
74
+ end
75
+
76
+ describe '.all' do
77
+
78
+ context 'from a correctly-configured environment' do
79
+ context 'not having specified filters' do
80
+ default_per_page = 10
81
+
82
+ it 'retrieves list with default parameters' do
83
+ results = MangoApi::Reports.all
84
+
85
+ expect(results).to be_kind_of Array
86
+ expect(results.length).to eq default_per_page
87
+ results.each do |result|
88
+ expect(result).to be_kind_of MangoModel::Report
89
+ expect(result.id).not_to be_nil
90
+ end
91
+ end
92
+ end
93
+
94
+ context 'having specified filters' do
95
+ per_page = 11
96
+
97
+ it 'retrieves list with specified parameters' do
98
+ results = MangoApi::Reports.all do |filter|
99
+ filter.page = 1
100
+ filter.per_page = per_page
101
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
102
+ filter.sort_direction = MangoPay::SortDirection::DESC
103
+ end
104
+
105
+ expect(results).to be_kind_of Array
106
+ expect(results.length).to eq per_page
107
+ results.each.with_index do |result, index|
108
+ expect(result).to be_kind_of MangoModel::Report
109
+ expect(result.id).not_to be_nil
110
+ next if index == results.length - 1
111
+ first_date = result.creation_date
112
+ second_date = results[index + 1].creation_date
113
+ expect(first_date >= second_date).to be_truthy
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
121
119
  end
@@ -1,295 +1,325 @@
1
- require 'securerandom'
2
- require_relative '../context/bank_account_context'
3
- require_relative '../context/transfer_context'
4
- require_relative '../context/pay_out_context'
5
- require_relative '../context/kyc_document_context'
6
- require_relative '../context/ubo_declaration_context'
7
- require_relative '../context/refund_context'
8
- require_relative '../../lib/mangopay/api/service/bank_accounts'
9
- require_relative '../../lib/mangopay/api/service/responses'
10
- require_relative '../../lib/mangopay/api/service/cards'
11
- require_relative '../../lib/mangopay/api/service/pay_ins'
12
- require_relative '../../lib/mangopay/api/service/pay_outs'
13
- require_relative '../../lib/mangopay/api/service/refunds'
14
- require_relative '../../lib/mangopay/model/response_replica'
15
-
16
- describe MangoApi::Responses do
17
- include_context 'bank_account_context'
18
- include_context 'transfer_context'
19
- include_context 'pay_out_context'
20
- include_context 'kyc_document_context'
21
- include_context 'ubo_declaration_context'
22
- include_context 'refund_context'
23
-
24
- describe '.replicate' do
25
-
26
- describe '#User' do
27
-
28
- describe '#Natural' do
29
- context "given a successful POST request's idempotency key" do
30
- idempotency_key = SecureRandom.uuid
31
- user = MangoApi::Users.create(NATURAL_USER_DATA, idempotency_key)
32
-
33
- it 'retrieves a replica of the original response' do
34
- replica = MangoApi::Responses.replicate idempotency_key
35
-
36
- expect(replica.resource).to be_kind_of MangoModel::NaturalUser
37
- expect(replica.resource.id).to eq user.id
38
- expect(its_the_same_natural(user, replica.resource)).to be_truthy
39
- end
40
- end
41
- end
42
- end
43
-
44
- describe '#BankAccount' do
45
- context "given a successful POST request's idempotency key" do
46
- idempotency_key = SecureRandom.uuid
47
- account = MangoApi::BankAccounts.create(IBAN_ACCOUNT_DATA,
48
- idempotency_key)
49
-
50
- it 'retrieves a replica of the original response' do
51
- replica = MangoApi::Responses.replicate idempotency_key
52
-
53
- expect(replica.resource).to be_kind_of MangoModel::IbanBankAccount
54
- expect(replica.resource.id).to eq account.id
55
- expect(its_the_same_iban(account, replica.resource)).to be_truthy
56
- end
57
- end
58
- end
59
-
60
- describe '#Wallet' do
61
- context "given a successful POST request's idempotency key" do
62
- idempotency_key = SecureRandom.uuid
63
- wallet = MangoApi::Wallets.create(WALLET_DATA, idempotency_key)
64
-
65
- it 'retrieves a replica of the original response' do
66
- replica = MangoApi::Responses.replicate idempotency_key
67
-
68
- expect(replica.resource).to be_kind_of MangoModel::Wallet
69
- expect(replica.resource.id).to eq wallet.id
70
- expect(its_the_same_wallet(wallet, replica.resource)).to be_truthy
71
- end
72
- end
73
- end
74
-
75
- describe '#Transfer' do
76
- context "given a successful POST request's idempotency key" do
77
- idempotency_key = SecureRandom.uuid
78
- transfer = MangoApi::Transfers.create(TRANSFER_DATA, idempotency_key)
79
-
80
- it 'retrieves a replica of the original response' do
81
- replica = MangoApi::Responses.replicate idempotency_key
82
-
83
- expect(replica.resource).to be_kind_of MangoModel::Transfer
84
- expect(replica.resource.id).to eq transfer.id
85
- expect(its_the_same_transfer(transfer, replica.resource)).to be_truthy
86
- end
87
- end
88
- end
89
-
90
- describe '#CardRegistration' do
91
- context "given a successful POST request's idempotency key" do
92
- idempotency_key = SecureRandom.uuid
93
- card_registration = MangoApi::Cards.create_registration(CARD_REGISTRATION_DATA, idempotency_key)
94
-
95
- it 'retrieves a replica of the original response' do
96
- replica = MangoApi::Responses.replicate(idempotency_key)
97
-
98
- expect(replica.resource).to be_kind_of MangoModel::CardRegistration
99
- expect(replica.resource.id).to eq card_registration.id
100
- end
101
- end
102
- end
103
-
104
- describe '#PreAuthorization' do
105
- context "given a successful POST request's idempotency key" do
106
- idempotency_key = SecureRandom.uuid
107
- pre_authorization = MangoApi::PreAuthorizations.create(PRE_AUTHORIZATION_DATA, idempotency_key)
108
-
109
- it 'retrieves a replica of the original response' do
110
- replica = MangoApi::Responses.replicate idempotency_key
111
-
112
- expect(replica.resource).to be_kind_of MangoModel::PreAuthorization
113
- expect(replica.resource.id).to eq pre_authorization.id
114
- expect(its_the_same_pre_auth(pre_authorization, replica.resource)).to be_truthy
115
- end
116
- end
117
- end
118
-
119
- describe '#PayIn' do
120
-
121
- describe '#CARD WEB' do
122
- context "given a successful POST request's idempotency key" do
123
- idempotency_key = SecureRandom.uuid
124
- pay_in = MangoApi::PayIns.create_card_web(CARD_WEB_PAY_IN_DATA, idempotency_key)
125
-
126
- it 'retrieves a replica of the original response' do
127
- replica = MangoApi::Responses.replicate idempotency_key
128
-
129
- expect(replica.resource).to be_kind_of MangoModel::CardWebPayIn
130
- expect(replica.resource.id).to eq pay_in.id
131
- expect(its_the_same_card_web(pay_in, replica.resource)).to be_truthy
132
- end
133
- end
134
- end
135
-
136
- describe '#CARD DIRECT' do
137
- context "given a successful POST request's idempotency key" do
138
- idempotency_key = SecureRandom.uuid
139
- pay_in = MangoApi::PayIns.create_card_direct(CARD_DIRECT_PAY_IN_DATA, idempotency_key)
140
-
141
- it 'retrieves a replica of the original response' do
142
- replica = MangoApi::Responses.replicate idempotency_key
143
-
144
- expect(replica.resource).to be_kind_of MangoModel::CardDirectPayIn
145
- expect(replica.resource.id).to eq pay_in.id
146
- expect(its_the_same_card_direct(pay_in, replica.resource)).to be_truthy
147
- end
148
- end
149
- end
150
-
151
- describe '#CARD PREAUTHORIZED' do
152
- context "given a successful POST request's idempotency key" do
153
- idempotency_key = SecureRandom.uuid
154
-
155
- it 'retrieves a replica of the original response' do
156
- pay_in_data = build_card_pre_auth_pay_in
157
- # noinspection RubyResolve
158
- pay_in_data.preauthorization_id = new_pre_authorization_persisted.id
159
- pay_in = MangoApi::PayIns.create_card_pre_authorized(pay_in_data, idempotency_key)
160
- replica = MangoApi::Responses.replicate idempotency_key
161
-
162
- expect(replica.resource).to be_kind_of MangoModel::CardPreAuthorizedPayIn
163
- expect(replica.resource.id).to eq pay_in.id
164
- expect(its_the_same_card_pre_auth(pay_in, replica.resource)).to be_truthy
165
- end
166
- end
167
- end
168
-
169
- describe '#BANK_WIRE DIRECT' do
170
- context "given a successful POST request's idempotency key" do
171
- idempotency_key = SecureRandom.uuid
172
- pay_in = MangoApi::PayIns.create_bank_wire_direct(BANK_WIRE_DIRECT_PAY_IN_DATA, idempotency_key)
173
-
174
- it 'retrieves a replica of the original response' do
175
- replica = MangoApi::Responses.replicate idempotency_key
176
-
177
- expect(replica.resource).to be_kind_of MangoModel::BankWireDirectPayIn
178
- expect(replica.resource.id).to eq pay_in.id
179
- expect(its_the_same_bank_wire_direct(pay_in, replica.resource)).to be_truthy
180
- end
181
- end
182
- end
183
-
184
- describe '#DIRECT_DEBIT WEB' do
185
- context "given a successful POST request's idempotency key" do
186
- idempotency_key = SecureRandom.uuid
187
- pay_in = MangoApi::PayIns.create_direct_debit_web(DIRECT_DEBIT_WEB_PAY_IN_DATA, idempotency_key)
188
-
189
- it 'retrieves a replica of the original response' do
190
- replica = MangoApi::Responses.replicate idempotency_key
191
-
192
- expect(replica.resource).to be_kind_of MangoModel::DirectDebitWebPayIn
193
- expect(replica.resource.id).to eq pay_in.id
194
- expect(its_the_same_direct_debit_web(pay_in, replica.resource)).to be_truthy
195
- end
196
- end
197
- end
198
-
199
- describe '#DIRECT_DEBIT DIRECT' do
200
- context "given a successful POST request's idempotency key" do
201
- idempotency_key = SecureRandom.uuid
202
- pay_in = MangoApi::PayIns.create_direct_debit_direct(DIRECT_DEBIT_DIRECT_PAY_IN_DATA, idempotency_key)
203
-
204
- it 'retrieves a replica of the original response' do
205
- replica = MangoApi::Responses.replicate idempotency_key
206
-
207
- expect(replica.resource).to be_kind_of MangoModel::DirectDebitDirectPayIn
208
- expect(replica.resource.id).to eq pay_in.id
209
- expect(its_the_same_direct_debit_direct(pay_in, replica.resource)).to be_truthy
210
- end
211
- end
212
- end
213
- end
214
-
215
- describe '#Mandate' do
216
- context "given a successful POST request's idempotency key" do
217
- idempotency_key = SecureRandom.uuid
218
- mandate = MangoApi::Mandates.create(MANDATE_DATA, idempotency_key)
219
-
220
- it 'retrieves a replica of the original response' do
221
- replica = MangoApi::Responses.replicate idempotency_key
222
-
223
- expect(replica.resource).to be_kind_of MangoModel::Mandate
224
- expect(replica.resource.id).to eq mandate.id
225
- expect(its_the_same_mandate(mandate, replica.resource)).to be_truthy
226
- end
227
- end
228
- end
229
-
230
- describe '#PayOut' do
231
- context "given a successful POST request's idempotency key" do
232
- idempotency_key = SecureRandom.uuid
233
- pay_out = MangoApi::PayOuts.create(PAY_OUT_DATA, idempotency_key)
234
-
235
- it 'retrieves a replica of the original response' do
236
- replica = MangoApi::Responses.replicate idempotency_key
237
-
238
- expect(replica.resource).to be_kind_of MangoModel::PayOut
239
- expect(replica.resource.id).to eq pay_out.id
240
- expect(its_the_same_pay_out(pay_out, replica.resource)).to be_truthy
241
- end
242
- end
243
- end
244
-
245
- describe '#KycDocument' do
246
- context "given a successful POST request's idempotency key" do
247
- idempotency_key = SecureRandom.uuid
248
- kyc_doc = MangoApi::KycDocuments.create KYC_DOCUMENT_DATA,
249
- NATURAL_USER_PERSISTED.id,
250
- idempotency_key
251
-
252
- it 'retrieves a replica of the original response' do
253
- replica = MangoApi::Responses.replicate idempotency_key
254
-
255
- expect(replica.resource).to be_kind_of MangoModel::KycDocument
256
- expect(replica.resource.id).to eq kyc_doc.id
257
- expect(its_the_same_kyc_doc(kyc_doc, replica.resource)).to be_truthy
258
- end
259
- end
260
- end
261
-
262
- describe '#UboDeclaration' do
263
- context "given a successful POST request's idempotency key" do
264
- idempotency_key = SecureRandom.uuid
265
- ubo_decl = MangoApi::UboDeclarations.create UBO_DECLARATION_DATA,
266
- LEGAL_USER_PERSISTED.id,
267
- idempotency_key
268
-
269
- it 'retrieves a replica of the original response' do
270
- replica = MangoApi::Responses.replicate idempotency_key
271
-
272
- expect(replica.resource).to be_kind_of MangoModel::UboDeclaration
273
- expect(replica.resource.id).to eq ubo_decl.id
274
- end
275
- end
276
- end
277
-
278
- describe '#Refund' do
279
- context "given a successful POST request's idempotency key" do
280
- idempotency_key = SecureRandom.uuid
281
- transfer = MangoApi::Transfers.create TRANSFER_DATA
282
- refund = MangoApi::Refunds.create_for_transfer transfer.id,
283
- TRANSFER_REFUND_DATA,
284
- idempotency_key
285
-
286
- it 'retrieves a replica of the original response' do
287
- replica = MangoApi::Responses.replicate idempotency_key
288
-
289
- expect(replica.resource).to be_kind_of MangoModel::Refund
290
- expect(replica.resource.id).to eq refund.id
291
- end
292
- end
293
- end
294
- end
1
+ require 'securerandom'
2
+ require_relative '../context/bank_account_context'
3
+ require_relative '../context/transfer_context'
4
+ require_relative '../context/pay_out_context'
5
+ require_relative '../context/kyc_document_context'
6
+ require_relative '../context/ubo_declaration_context'
7
+ require_relative '../context/refund_context'
8
+ require_relative '../../lib/mangopay/api/service/bank_accounts'
9
+ require_relative '../../lib/mangopay/api/service/responses'
10
+ require_relative '../../lib/mangopay/api/service/cards'
11
+ require_relative '../../lib/mangopay/api/service/pay_ins'
12
+ require_relative '../../lib/mangopay/api/service/pay_outs'
13
+ require_relative '../../lib/mangopay/api/service/refunds'
14
+ require_relative '../../lib/mangopay/model/response_replica'
15
+ require_relative '../../lib/mangopay/common/jsonifier'
16
+
17
+ describe MangoApi::Responses do
18
+ include_context 'bank_account_context'
19
+ include_context 'transfer_context'
20
+ include_context 'pay_out_context'
21
+ include_context 'kyc_document_context'
22
+ include_context 'ubo_declaration_context'
23
+ include_context 'refund_context'
24
+
25
+ describe '.replicate' do
26
+
27
+ describe '#User' do
28
+
29
+ describe '#Natural' do
30
+ context "given a successful POST request's idempotency key" do
31
+ idempotency_key = SecureRandom.uuid
32
+ user = MangoApi::Users.create(NATURAL_USER_DATA, idempotency_key)
33
+
34
+ it 'retrieves a replica of the original response' do
35
+ replica = MangoApi::Responses.replicate idempotency_key
36
+
37
+ expect(replica.resource).to be_kind_of MangoModel::NaturalUser
38
+ expect(replica.resource.id).to eq user.id
39
+ expect(its_the_same_natural(user, replica.resource)).to be_truthy
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '#BankAccount' do
46
+ context "given a successful POST request's idempotency key" do
47
+ idempotency_key = SecureRandom.uuid
48
+ account = MangoApi::BankAccounts.create(IBAN_ACCOUNT_DATA,
49
+ idempotency_key)
50
+
51
+ it 'retrieves a replica of the original response' do
52
+ replica = MangoApi::Responses.replicate idempotency_key
53
+
54
+ expect(replica.resource).to be_kind_of MangoModel::IbanBankAccount
55
+ expect(replica.resource.id).to eq account.id
56
+ expect(its_the_same_iban(account, replica.resource)).to be_truthy
57
+ end
58
+ end
59
+ end
60
+
61
+ describe '#Wallet' do
62
+ context "given a successful POST request's idempotency key" do
63
+ idempotency_key = SecureRandom.uuid
64
+ wallet = MangoApi::Wallets.create(WALLET_DATA, idempotency_key)
65
+
66
+ it 'retrieves a replica of the original response' do
67
+ replica = MangoApi::Responses.replicate idempotency_key
68
+
69
+ expect(replica.resource).to be_kind_of MangoModel::Wallet
70
+ expect(replica.resource.id).to eq wallet.id
71
+ expect(its_the_same_wallet(wallet, replica.resource)).to be_truthy
72
+ end
73
+ end
74
+ end
75
+
76
+ describe '#Transfer' do
77
+ context "given a successful POST request's idempotency key" do
78
+ idempotency_key = SecureRandom.uuid
79
+ transfer = MangoApi::Transfers.create(TRANSFER_DATA, idempotency_key)
80
+
81
+ it 'retrieves a replica of the original response' do
82
+ replica = MangoApi::Responses.replicate idempotency_key
83
+
84
+ expect(replica.resource).to be_kind_of MangoModel::Transfer
85
+ expect(replica.resource.id).to eq transfer.id
86
+ expect(its_the_same_transfer(transfer, replica.resource)).to be_truthy
87
+ end
88
+ end
89
+ end
90
+
91
+ describe '#CardRegistration' do
92
+ context "given a successful POST request's idempotency key" do
93
+ idempotency_key = SecureRandom.uuid
94
+ card_registration = MangoApi::Cards.create_registration(CARD_REGISTRATION_DATA, idempotency_key)
95
+
96
+ it 'retrieves a replica of the original response' do
97
+ replica = MangoApi::Responses.replicate(idempotency_key)
98
+
99
+ expect(replica.resource).to be_kind_of MangoModel::CardRegistration
100
+ expect(replica.resource.id).to eq card_registration.id
101
+ end
102
+ end
103
+ end
104
+
105
+ describe '#PreAuthorization' do
106
+ context "given a successful POST request's idempotency key" do
107
+ idempotency_key = SecureRandom.uuid
108
+ pre_authorization = MangoApi::PreAuthorizations.create(PRE_AUTHORIZATION_DATA, idempotency_key)
109
+
110
+ it 'retrieves a replica of the original response' do
111
+ replica = MangoApi::Responses.replicate idempotency_key
112
+
113
+ expect(replica.resource).to be_kind_of MangoModel::PreAuthorization
114
+ expect(replica.resource.id).to eq pre_authorization.id
115
+ expect(its_the_same_pre_auth(pre_authorization, replica.resource)).to be_truthy
116
+ end
117
+ end
118
+ end
119
+
120
+ describe '#PayIn' do
121
+
122
+ describe '#CARD WEB' do
123
+ context "given a successful POST request's idempotency key" do
124
+ idempotency_key = SecureRandom.uuid
125
+ pay_in = MangoApi::PayIns.create_card_web(CARD_WEB_PAY_IN_DATA, idempotency_key)
126
+
127
+ it 'retrieves a replica of the original response' do
128
+ replica = MangoApi::Responses.replicate idempotency_key
129
+
130
+ expect(replica.resource).to be_kind_of MangoModel::CardWebPayIn
131
+ expect(replica.resource.id).to eq pay_in.id
132
+ expect(its_the_same_card_web(pay_in, replica.resource)).to be_truthy
133
+ end
134
+ end
135
+ end
136
+
137
+ describe '#CARD DIRECT' do
138
+ context "given a successful POST request's idempotency key" do
139
+ idempotency_key = SecureRandom.uuid
140
+ pay_in = MangoApi::PayIns.create_card_direct(CARD_DIRECT_PAY_IN_DATA, idempotency_key)
141
+
142
+ it 'retrieves a replica of the original response' do
143
+ replica = MangoApi::Responses.replicate idempotency_key
144
+
145
+ expect(replica.resource).to be_kind_of MangoModel::CardDirectPayIn
146
+ expect(replica.resource.id).to eq pay_in.id
147
+ expect(its_the_same_card_direct(pay_in, replica.resource)).to be_truthy
148
+ end
149
+ end
150
+ end
151
+
152
+ describe '#CARD PREAUTHORIZED' do
153
+ context "given a successful POST request's idempotency key" do
154
+ idempotency_key = SecureRandom.uuid
155
+
156
+ it 'retrieves a replica of the original response' do
157
+ pay_in_data = build_card_pre_auth_pay_in
158
+ # noinspection RubyResolve
159
+ pay_in_data.preauthorization_id = new_pre_authorization_persisted.id
160
+ pay_in = MangoApi::PayIns.create_card_pre_authorized(pay_in_data, idempotency_key)
161
+ replica = MangoApi::Responses.replicate idempotency_key
162
+
163
+ expect(replica.resource).to be_kind_of MangoModel::CardPreAuthorizedPayIn
164
+ expect(replica.resource.id).to eq pay_in.id
165
+ expect(its_the_same_card_pre_auth(pay_in, replica.resource)).to be_truthy
166
+ end
167
+ end
168
+ end
169
+
170
+ describe '#BANK_WIRE DIRECT' do
171
+ context "given a successful POST request's idempotency key" do
172
+ idempotency_key = SecureRandom.uuid
173
+ pay_in = MangoApi::PayIns.create_bank_wire_direct(BANK_WIRE_DIRECT_PAY_IN_DATA, idempotency_key)
174
+
175
+ it 'retrieves a replica of the original response' do
176
+ replica = MangoApi::Responses.replicate idempotency_key
177
+
178
+ expect(replica.resource).to be_kind_of MangoModel::BankWireDirectPayIn
179
+ expect(replica.resource.id).to eq pay_in.id
180
+ expect(its_the_same_bank_wire_direct(pay_in, replica.resource)).to be_truthy
181
+ end
182
+ end
183
+ end
184
+
185
+ describe '#DIRECT_DEBIT WEB' do
186
+ context "given a successful POST request's idempotency key" do
187
+ idempotency_key = SecureRandom.uuid
188
+ pay_in = MangoApi::PayIns.create_direct_debit_web(DIRECT_DEBIT_WEB_PAY_IN_DATA, idempotency_key)
189
+
190
+ it 'retrieves a replica of the original response' do
191
+ replica = MangoApi::Responses.replicate idempotency_key
192
+
193
+ expect(replica.resource).to be_kind_of MangoModel::DirectDebitWebPayIn
194
+ expect(replica.resource.id).to eq pay_in.id
195
+ expect(its_the_same_direct_debit_web(pay_in, replica.resource)).to be_truthy
196
+ end
197
+ end
198
+ end
199
+
200
+ describe '#PAYPAL WEB' do
201
+ context "given a successful POST request's idempotency key" do
202
+ idempotency_key = SecureRandom.uuid
203
+ pay_in = MangoApi::PayIns.create_paypal_web(PAYPAL_PAY_IN_DATA, idempotency_key)
204
+
205
+ it 'retrieves a replica of the original response' do
206
+ replica = MangoApi::Responses.replicate idempotency_key
207
+
208
+ expect(replica.resource).to be_kind_of MangoModel::PaypalWebPayIn
209
+ expect(replica.resource.id).to eq pay_in.id
210
+ expect(its_the_same_paypal_web(pay_in, replica.resource)).to be_truthy
211
+ end
212
+ end
213
+ end
214
+
215
+ describe '#DIRECT_DEBIT DIRECT' do
216
+ context "given a successful POST request's idempotency key" do
217
+ idempotency_key = SecureRandom.uuid
218
+ pay_in = MangoApi::PayIns.create_direct_debit_direct(DIRECT_DEBIT_DIRECT_PAY_IN_DATA, idempotency_key)
219
+
220
+ it 'retrieves a replica of the original response' do
221
+ replica = MangoApi::Responses.replicate idempotency_key
222
+
223
+ expect(replica.resource).to be_kind_of MangoModel::DirectDebitDirectPayIn
224
+ expect(replica.resource.id).to eq pay_in.id
225
+ expect(its_the_same_direct_debit_direct(pay_in, replica.resource)).to be_truthy
226
+ end
227
+ end
228
+ end
229
+
230
+ describe '#APPLEPAY DIRECT' do
231
+ context "given a successful POST request's idempotency key" do
232
+ idempotency_key = SecureRandom.uuid
233
+ pay_in = MangoApi::PayIns.create_apple_pay_direct(APPLE_PAY_PAY_IN_DATA, idempotency_key)
234
+
235
+ it 'retrieves a replica of the original response' do
236
+ replica = MangoApi::Responses.replicate idempotency_key
237
+
238
+ expect(replica.resource).to be_kind_of MangoModel::ApplePayPayIn
239
+ expect(replica.resource.id).to eq pay_in.id
240
+ expect(its_the_same_apple_pay_direct(pay_in, replica.resource)).to be_truthy
241
+ end
242
+ end
243
+ end
244
+ end
245
+
246
+ describe '#Mandate' do
247
+ context "given a successful POST request's idempotency key" do
248
+ idempotency_key = SecureRandom.uuid
249
+ mandate = MangoApi::Mandates.create(MANDATE_DATA, idempotency_key)
250
+
251
+ it 'retrieves a replica of the original response' do
252
+ replica = MangoApi::Responses.replicate idempotency_key
253
+
254
+ expect(replica.resource).to be_kind_of MangoModel::Mandate
255
+ expect(replica.resource.id).to eq mandate.id
256
+ expect(its_the_same_mandate(mandate, replica.resource)).to be_truthy
257
+ end
258
+ end
259
+ end
260
+
261
+ describe '#PayOut' do
262
+ context "given a successful POST request's idempotency key" do
263
+ idempotency_key = SecureRandom.uuid
264
+ pay_out = MangoApi::PayOuts.create(PAY_OUT_DATA, idempotency_key)
265
+
266
+ it 'retrieves a replica of the original response' do
267
+ replica = MangoApi::Responses.replicate idempotency_key
268
+
269
+ expect(replica.resource).to be_kind_of MangoModel::PayOut
270
+ expect(replica.resource.id).to eq pay_out.id
271
+ expect(its_the_same_pay_out(pay_out, replica.resource)).to be_truthy
272
+ end
273
+ end
274
+ end
275
+
276
+ describe '#KycDocument' do
277
+ context "given a successful POST request's idempotency key" do
278
+ idempotency_key = SecureRandom.uuid
279
+ kyc_doc = MangoApi::KycDocuments.create KYC_DOCUMENT_DATA,
280
+ NATURAL_USER_PERSISTED.id,
281
+ idempotency_key
282
+
283
+ it 'retrieves a replica of the original response' do
284
+ replica = MangoApi::Responses.replicate idempotency_key
285
+
286
+ expect(replica.resource).to be_kind_of MangoModel::KycDocument
287
+ expect(replica.resource.id).to eq kyc_doc.id
288
+ expect(its_the_same_kyc_doc(kyc_doc, replica.resource)).to be_truthy
289
+ end
290
+ end
291
+ end
292
+
293
+ describe '#UboDeclaration' do
294
+ context "given a successful POST request's idempotency key" do
295
+ idempotency_key = SecureRandom.uuid
296
+ ubo_decl = MangoApi::UboDeclarations.create LEGAL_USER_PERSISTED.id,
297
+ idempotency_key
298
+
299
+ it 'retrieves a replica of the original response' do
300
+ replica = MangoApi::Responses.replicate idempotency_key
301
+
302
+ expect(replica.resource).to be_kind_of MangoModel::UboDeclaration
303
+ expect(replica.resource.id).to eq ubo_decl.id
304
+ end
305
+ end
306
+ end
307
+
308
+ describe '#Refund' do
309
+ context "given a successful POST request's idempotency key" do
310
+ idempotency_key = SecureRandom.uuid
311
+ transfer = MangoApi::Transfers.create TRANSFER_DATA
312
+ refund = MangoApi::Refunds.create_for_transfer transfer.id,
313
+ TRANSFER_REFUND_DATA,
314
+ idempotency_key
315
+
316
+ it 'retrieves a replica of the original response' do
317
+ replica = MangoApi::Responses.replicate idempotency_key
318
+
319
+ expect(replica.resource).to be_kind_of MangoModel::Refund
320
+ expect(replica.resource.id).to eq refund.id
321
+ end
322
+ end
323
+ end
324
+ end
295
325
  end