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,37 +1,37 @@
1
- require_relative '../../lib/mangopay/api/service/settlement_transfers'
2
- require_relative '../context/settlement_transfer_context'
3
-
4
- describe MangoApi::SettlementTransfers do
5
- include_context 'settlement_transfer_context'
6
-
7
- describe '.create' do
8
-
9
- context 'given a valid object' do
10
- id = REPUDIATION_PERSISTED.id
11
- transfer = SETTLEMENT_TRANSFER_DATA
12
-
13
- it 'creates the settlement transfer entity' do
14
- created = MangoApi::SettlementTransfers.create(id, transfer)
15
-
16
- expect(created).to be_kind_of MangoModel::SettlementTransfer
17
- expect(created.id).not_to be_nil
18
- expect(created.repudiation_id).to eq id
19
- end
20
- end
21
- end
22
-
23
- describe '.get' do
24
-
25
- context "given an existing entity's ID" do
26
- transfer = SETTLEMENT_TRANSFER_PERSISTED
27
- id = transfer.id
28
-
29
- it 'retrieves the corresponding entity' do
30
- retrieved = MangoApi::SettlementTransfers.get id
31
-
32
- expect(retrieved).to be_kind_of MangoModel::SettlementTransfer
33
- expect(retrieved.id).to eq id
34
- end
35
- end
36
- end
1
+ require_relative '../../lib/mangopay/api/service/settlement_transfers'
2
+ require_relative '../context/settlement_transfer_context'
3
+
4
+ describe MangoApi::SettlementTransfers do
5
+ include_context 'settlement_transfer_context'
6
+
7
+ describe '.create' do
8
+
9
+ context 'given a valid object' do
10
+ id = REPUDIATION_PERSISTED.id
11
+ transfer = SETTLEMENT_TRANSFER_DATA
12
+
13
+ it 'creates the settlement transfer entity' do
14
+ created = MangoApi::SettlementTransfers.create(id, transfer)
15
+
16
+ expect(created).to be_kind_of MangoModel::SettlementTransfer
17
+ expect(created.id).not_to be_nil
18
+ expect(created.repudiation_id).to eq id
19
+ end
20
+ end
21
+ end
22
+
23
+ describe '.get' do
24
+
25
+ context "given an existing entity's ID" do
26
+ transfer = SETTLEMENT_TRANSFER_PERSISTED
27
+ id = transfer.id
28
+
29
+ it 'retrieves the corresponding entity' do
30
+ retrieved = MangoApi::SettlementTransfers.get id
31
+
32
+ expect(retrieved).to be_kind_of MangoModel::SettlementTransfer
33
+ expect(retrieved.id).to eq id
34
+ end
35
+ end
36
+ end
37
37
  end
@@ -1,233 +1,348 @@
1
- require_relative '../../lib/mangopay/api/service/transactions'
2
- require_relative '../../lib/mangopay/api/service/clients'
3
- require_relative '../context/dispute_context'
4
- require_relative '../context/pre_authorization_context'
5
- require_relative '../../lib/mangopay/common/sort_field'
6
- require_relative '../../lib/mangopay/common/sort_direction'
7
-
8
- describe MangoApi::Transactions do
9
- include_context 'dispute_context'
10
- include_context 'pre_authorization_context'
11
-
12
- describe '.of_user' do
13
-
14
- context "given an existing user entity's id" do
15
- id = NATURAL_USER_PERSISTED.id
16
-
17
- context 'not having specified filters' do
18
- results = MangoApi::Transactions.of_user id
19
-
20
- it 'retrieves list with default parameters' do
21
- expect(results).to be_kind_of Array
22
- results.each do |result|
23
- expect(result).to be_kind_of MangoModel::Transaction
24
- expect(result.id).not_to be_nil
25
- expect(result.author_id).to eq id
26
- end
27
- end
28
- end
29
-
30
- context 'having specified filters' do
31
- results = MangoApi::Transactions.of_user id do |filter|
32
- filter.page = 1
33
- filter.per_page = 3
34
- filter.sort_field = MangoPay::SortField::CREATION_DATE
35
- filter.sort_direction = MangoPay::SortDirection::ASC
36
- end
37
-
38
- it 'retrieves list with specified parameters' do
39
- expect(results).to be_kind_of Array
40
- results.each do |result|
41
- expect(result).to be_kind_of MangoModel::Transaction
42
- expect(result.id).not_to be_nil
43
- expect(result.author_id).to eq id
44
- end
45
- end
46
- end
47
- end
48
- end
49
-
50
- describe '.of_wallet' do
51
-
52
- describe "given an existing wallet entity's id" do
53
- id = WALLET_PERSISTED.id
54
-
55
- context 'not having specified filters' do
56
- results = MangoApi::Transactions.of_wallet id
57
-
58
- it 'retrieves list with default parameters' do
59
- expect(results).to be_kind_of Array
60
- results.each do |result|
61
- expect(result).to be_kind_of MangoModel::Transaction
62
- expect(result.id).not_to be_nil
63
- expect(result.credited_wallet_id == id \
64
- || result.debited_wallet_id == id).to be_truthy
65
- end
66
- end
67
- end
68
-
69
- context 'having specified filters' do
70
- results = MangoApi::Transactions.of_wallet id do |filter|
71
- filter.page = 1
72
- filter.per_page = 3
73
- filter.sort_field = MangoPay::SortField::CREATION_DATE
74
- filter.sort_direction = MangoPay::SortDirection::ASC
75
- end
76
-
77
- it 'retrieves list with specified parameters' do
78
- expect(results).to be_kind_of Array
79
- results.each do |result|
80
- expect(result).to be_kind_of MangoModel::Transaction
81
- expect(result.id).not_to be_nil
82
- expect(result.credited_wallet_id == id \
83
- || result.debited_wallet_id == id).to be_truthy
84
- end
85
- end
86
- end
87
- end
88
- end
89
-
90
- describe '.of_dispute' do
91
-
92
- describe "given an existing dispute entity's id" do
93
- id = DISPUTE_PERSISTED.id
94
-
95
- context 'not having specified filters' do
96
- results = MangoApi::Transactions.of_dispute id
97
-
98
- it 'retrieves list with default parameters' do
99
- expect(results).to be_kind_of Array
100
- results.each do |result|
101
- expect(result).to be_kind_of MangoModel::Transaction
102
- expect(result.id).not_to be_nil
103
- end
104
- end
105
- end
106
-
107
- context 'having specified filters' do
108
- results = MangoApi::Transactions.of_dispute id do |filter|
109
- filter.page = 1
110
- filter.per_page = 3
111
- filter.sort_field = MangoPay::SortField::CREATION_DATE
112
- filter.sort_direction = MangoPay::SortDirection::ASC
113
- end
114
-
115
- it 'retrieves list with specified parameters' do
116
- expect(results).to be_kind_of Array
117
- results.each do |result|
118
- expect(result).to be_kind_of MangoModel::Transaction
119
- expect(result.id).not_to be_nil
120
- end
121
- end
122
- end
123
- end
124
- end
125
-
126
- describe '.of_client' do
127
-
128
- describe 'from a correctly-configured environment' do
129
- context 'not having specified filters' do
130
- results = MangoApi::Transactions.of_client
131
-
132
- it 'retrieves list with default parameters' do
133
- expect(results).to be_kind_of Array
134
- results.each do |result|
135
- expect(result).to be_kind_of MangoModel::Transaction
136
- expect(result.id).not_to be_nil
137
- end
138
- end
139
- end
140
-
141
- context 'having specified filters' do
142
- results = MangoApi::Transactions.of_client do |filter|
143
- filter.page = 1
144
- filter.per_page = 3
145
- filter.sort_field = MangoPay::SortField::CREATION_DATE
146
- filter.sort_direction = MangoPay::SortDirection::ASC
147
- end
148
-
149
- it 'retrieves list with specified parameters' do
150
- expect(results).to be_kind_of Array
151
- results.each do |result|
152
- expect(result).to be_kind_of MangoModel::Transaction
153
- expect(result.id).not_to be_nil
154
- end
155
- end
156
- end
157
- end
158
- end
159
-
160
- describe '.of_client_wallet' do
161
-
162
- describe 'from a correctly-configured environment' do
163
- context 'not having specified filters' do
164
- results = MangoApi::Transactions
165
- .of_client_wallet MangoModel::FundsType::FEES,
166
- MangoModel::CurrencyIso::EUR
167
-
168
- it 'retrieves list with default parameters' do
169
- expect(results).to be_kind_of Array
170
- results.each do |result|
171
- expect(result).to be_kind_of MangoModel::Transaction
172
- expect(result.id).not_to be_nil
173
- end
174
- end
175
- end
176
-
177
- context 'having specified filters' do
178
- results = MangoApi::Transactions
179
- .of_client_wallet(MangoModel::FundsType::CREDIT,
180
- MangoModel::CurrencyIso::EUR) do |filter|
181
- filter.page = 1
182
- filter.per_page = 3
183
- filter.sort_field = MangoPay::SortField::CREATION_DATE
184
- filter.sort_direction = MangoPay::SortDirection::ASC
185
- end
186
-
187
- it 'retrieves list with specified parameters' do
188
- expect(results).to be_kind_of Array
189
- results.each do |result|
190
- expect(result).to be_kind_of MangoModel::Transaction
191
- expect(result.id).not_to be_nil
192
- end
193
- end
194
- end
195
- end
196
- end
197
-
198
- describe '.of_pre_authorization' do
199
-
200
- describe "given a valid pre-authorization entity's ID" do
201
- id = PRE_AUTHORIZATION_PERSISTED.id
202
-
203
- context 'not having specified filters' do
204
- results = MangoApi::Transactions.of_pre_authorization id
205
-
206
- it 'retrieves list with default parameters' do
207
- expect(results).to be_kind_of Array
208
- results.each do |result|
209
- expect(result).to be_kind_of MangoModel::Transaction
210
- expect(result.id).not_to be_nil
211
- end
212
- end
213
- end
214
-
215
- context 'having specified filters' do
216
- results = MangoApi::Transactions.of_pre_authorization id do |filter|
217
- filter.page = 1
218
- filter.per_page = 3
219
- filter.sort_field = MangoPay::SortField::CREATION_DATE
220
- filter.sort_direction = MangoPay::SortDirection::ASC
221
- end
222
-
223
- it 'retrieves list with specified parameters' do
224
- expect(results).to be_kind_of Array
225
- results.each do |result|
226
- expect(result).to be_kind_of MangoModel::Transaction
227
- expect(result.id).not_to be_nil
228
- end
229
- end
230
- end
231
- end
232
- end
1
+ require_relative '../../lib/mangopay/api/service/transactions'
2
+ require_relative '../../lib/mangopay/api/service/clients'
3
+ require_relative '../context/dispute_context'
4
+ require_relative '../context/pre_authorization_context'
5
+ require_relative '../context/mandate_context'
6
+ require_relative '../context/bank_account_context'
7
+ require_relative '../../lib/mangopay/common/sort_field'
8
+ require_relative '../../lib/mangopay/common/sort_direction'
9
+
10
+ describe MangoApi::Transactions do
11
+ include_context 'dispute_context'
12
+ include_context 'pre_authorization_context'
13
+ include_context 'bank_account_context'
14
+ include_context 'mandate_context'
15
+
16
+ describe '.of_user' do
17
+
18
+ context "given an existing user entity's id" do
19
+ id = NATURAL_USER_PERSISTED.id
20
+
21
+ context 'not having specified filters' do
22
+ results = MangoApi::Transactions.of_user id
23
+
24
+ it 'retrieves list with default parameters' do
25
+ expect(results).to be_kind_of Array
26
+ results.each do |result|
27
+ expect(result).to be_kind_of MangoModel::Transaction
28
+ expect(result.id).not_to be_nil
29
+ expect(result.author_id).to eq id
30
+ end
31
+ end
32
+ end
33
+
34
+ context 'having specified filters' do
35
+ results = MangoApi::Transactions.of_user id do |filter|
36
+ filter.page = 1
37
+ filter.per_page = 3
38
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
39
+ filter.sort_direction = MangoPay::SortDirection::ASC
40
+ end
41
+
42
+ it 'retrieves list with specified parameters' do
43
+ expect(results).to be_kind_of Array
44
+ results.each do |result|
45
+ expect(result).to be_kind_of MangoModel::Transaction
46
+ expect(result.id).not_to be_nil
47
+ expect(result.author_id).to eq id
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ describe '.of_wallet' do
55
+
56
+ describe "given an existing wallet entity's id" do
57
+ id = WALLET_PERSISTED.id
58
+
59
+ context 'not having specified filters' do
60
+ results = MangoApi::Transactions.of_wallet id
61
+
62
+ it 'retrieves list with default parameters' do
63
+ expect(results).to be_kind_of Array
64
+ results.each do |result|
65
+ expect(result).to be_kind_of MangoModel::Transaction
66
+ expect(result.id).not_to be_nil
67
+ expect(result.credited_wallet_id == id \
68
+ || result.debited_wallet_id == id).to be_truthy
69
+ end
70
+ end
71
+ end
72
+
73
+ context 'having specified filters' do
74
+ results = MangoApi::Transactions.of_wallet id do |filter|
75
+ filter.page = 1
76
+ filter.per_page = 3
77
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
78
+ filter.sort_direction = MangoPay::SortDirection::ASC
79
+ end
80
+
81
+ it 'retrieves list with specified parameters' do
82
+ expect(results).to be_kind_of Array
83
+ results.each do |result|
84
+ expect(result).to be_kind_of MangoModel::Transaction
85
+ expect(result.id).not_to be_nil
86
+ expect(result.credited_wallet_id == id \
87
+ || result.debited_wallet_id == id).to be_truthy
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+
94
+ describe '.of_dispute' do
95
+
96
+ describe "given an existing dispute entity's id" do
97
+ id = DISPUTE_PERSISTED.id
98
+
99
+ context 'not having specified filters' do
100
+ results = MangoApi::Transactions.of_dispute id
101
+
102
+ it 'retrieves list with default parameters' do
103
+ expect(results).to be_kind_of Array
104
+ results.each do |result|
105
+ expect(result).to be_kind_of MangoModel::Transaction
106
+ expect(result.id).not_to be_nil
107
+ end
108
+ end
109
+ end
110
+
111
+ context 'having specified filters' do
112
+ results = MangoApi::Transactions.of_dispute id do |filter|
113
+ filter.page = 1
114
+ filter.per_page = 3
115
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
116
+ filter.sort_direction = MangoPay::SortDirection::ASC
117
+ end
118
+
119
+ it 'retrieves list with specified parameters' do
120
+ expect(results).to be_kind_of Array
121
+ results.each do |result|
122
+ expect(result).to be_kind_of MangoModel::Transaction
123
+ expect(result.id).not_to be_nil
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+
130
+ describe '.of_client' do
131
+
132
+ describe 'from a correctly-configured environment' do
133
+ context 'not having specified filters' do
134
+ results = MangoApi::Transactions.of_client
135
+
136
+ it 'retrieves list with default parameters' do
137
+ expect(results).to be_kind_of Array
138
+ results.each do |result|
139
+ expect(result).to be_kind_of MangoModel::Transaction
140
+ expect(result.id).not_to be_nil
141
+ end
142
+ end
143
+ end
144
+
145
+ context 'having specified filters' do
146
+ results = MangoApi::Transactions.of_client do |filter|
147
+ filter.page = 1
148
+ filter.per_page = 3
149
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
150
+ filter.sort_direction = MangoPay::SortDirection::ASC
151
+ end
152
+
153
+ it 'retrieves list with specified parameters' do
154
+ expect(results).to be_kind_of Array
155
+ results.each do |result|
156
+ expect(result).to be_kind_of MangoModel::Transaction
157
+ expect(result.id).not_to be_nil
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
163
+
164
+ describe '.of_client_wallet' do
165
+
166
+ describe 'from a correctly-configured environment' do
167
+ context 'not having specified filters' do
168
+ results = MangoApi::Transactions
169
+ .of_client_wallet MangoModel::FundsType::FEES,
170
+ MangoModel::CurrencyIso::EUR
171
+
172
+ it 'retrieves list with default parameters' do
173
+ expect(results).to be_kind_of Array
174
+ results.each do |result|
175
+ expect(result).to be_kind_of MangoModel::Transaction
176
+ expect(result.id).not_to be_nil
177
+ end
178
+ end
179
+ end
180
+
181
+ context 'having specified filters' do
182
+ results = MangoApi::Transactions
183
+ .of_client_wallet(MangoModel::FundsType::CREDIT,
184
+ MangoModel::CurrencyIso::EUR) do |filter|
185
+ filter.page = 1
186
+ filter.per_page = 3
187
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
188
+ filter.sort_direction = MangoPay::SortDirection::ASC
189
+ end
190
+
191
+ it 'retrieves list with specified parameters' do
192
+ expect(results).to be_kind_of Array
193
+ results.each do |result|
194
+ expect(result).to be_kind_of MangoModel::Transaction
195
+ expect(result.id).not_to be_nil
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
201
+
202
+ describe '.of_pre_authorization' do
203
+
204
+ describe "given a valid pre-authorization entity's ID" do
205
+ id = PRE_AUTHORIZATION_PERSISTED.id
206
+
207
+ context 'not having specified filters' do
208
+ results = MangoApi::Transactions.of_pre_authorization id
209
+
210
+ it 'retrieves list with default parameters' do
211
+ expect(results).to be_kind_of Array
212
+ results.each do |result|
213
+ expect(result).to be_kind_of MangoModel::Transaction
214
+ expect(result.id).not_to be_nil
215
+ end
216
+ end
217
+ end
218
+
219
+ context 'having specified filters' do
220
+ results = MangoApi::Transactions.of_pre_authorization id do |filter|
221
+ filter.page = 1
222
+ filter.per_page = 3
223
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
224
+ filter.sort_direction = MangoPay::SortDirection::ASC
225
+ end
226
+
227
+ it 'retrieves list with specified parameters' do
228
+ expect(results).to be_kind_of Array
229
+ results.each do |result|
230
+ expect(result).to be_kind_of MangoModel::Transaction
231
+ expect(result.id).not_to be_nil
232
+ end
233
+ end
234
+ end
235
+ end
236
+ end
237
+
238
+ describe '.of_card' do
239
+
240
+ describe "given a valid card entity's ID" do
241
+ id = CARD.id
242
+
243
+ context 'not having specified filters' do
244
+ results = MangoApi::Transactions.of_card id
245
+
246
+ it 'retrieves list with default parameters' do
247
+ expect(results).to be_kind_of Array
248
+ results.each do |result|
249
+ expect(result).to be_kind_of MangoModel::Transaction
250
+ expect(result.id).not_to be_nil
251
+ end
252
+ end
253
+ end
254
+
255
+ context 'having specified filters' do
256
+ results = MangoApi::Transactions.of_card id do |filter|
257
+
258
+ filter.page = 1
259
+ filter.per_page = 3
260
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
261
+ filter.sort_direction = MangoPay::SortDirection::ASC
262
+ end
263
+
264
+ it 'retrieves list with specified parameters' do
265
+ expect(results).to be_kind_of Array
266
+ results.each do |result|
267
+ expect(result).to be_kind_of MangoModel::Transaction
268
+ expect(result.id).not_to be_nil
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
274
+
275
+ describe '.of_mandate' do
276
+
277
+ describe "given a valid mandate entity's ID" do
278
+ id = MANDATE_PERSISTED.id
279
+
280
+ context 'not having specified filters' do
281
+ results = MangoApi::Transactions.of_mandate id
282
+
283
+ it 'retrieves list with default parameters' do
284
+ expect(results).to be_kind_of Array
285
+ results.each do |result|
286
+ expect(result).to be_kind_of MangoModel::Transaction
287
+ expect(result.id).not_to be_nil
288
+ end
289
+ end
290
+ end
291
+
292
+ context 'having specified filters' do
293
+ results = MangoApi::Transactions.of_mandate id do |filter|
294
+ filter.page = 1
295
+ filter.per_page = 3
296
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
297
+ filter.sort_direction = MangoPay::SortDirection::ASC
298
+ end
299
+
300
+ it 'retrieves list with specified parameters' do
301
+ expect(results).to be_kind_of Array
302
+ results.each do |result|
303
+ expect(result).to be_kind_of MangoModel::Transaction
304
+ expect(result.id).not_to be_nil
305
+ end
306
+ end
307
+ end
308
+ end
309
+ end
310
+
311
+ describe '.of_bank_account' do
312
+
313
+ describe "given a valid bank account entity's ID" do
314
+ id = IBAN_ACCOUNT_PERSISTED.id
315
+
316
+ context 'not having specified filters' do
317
+ results = MangoApi::Transactions.of_bank_account id
318
+
319
+ it 'retrieves list with default parameters' do
320
+ expect(results).to be_kind_of Array
321
+ results.each do |result|
322
+ expect(result).to be_kind_of MangoModel::Transaction
323
+ expect(result.id).not_to be_nil
324
+ end
325
+ end
326
+ end
327
+
328
+ context 'having specified filters' do
329
+ results = MangoApi::Transactions.of_bank_account id do |filter|
330
+ filter.page = 1
331
+ filter.per_page = 3
332
+ filter.sort_field = MangoPay::SortField::CREATION_DATE
333
+ filter.sort_direction = MangoPay::SortDirection::ASC
334
+ filter.status = MangoModel::TransactionStatus::CREATED
335
+ end
336
+
337
+ it 'retrieves list with specified parameters' do
338
+ expect(results).to be_kind_of Array
339
+ results.each do |result|
340
+ expect(result).to be_kind_of MangoModel::Transaction
341
+ expect(result.id).not_to be_nil
342
+ expect(result.status).to be MangoModel::TransactionStatus::CREATED
343
+ end
344
+ end
345
+ end
346
+ end
347
+ end
233
348
  end