payquicker-apimatic-sdk 1.0.0

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 (268) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +208 -0
  4. data/bin/console +15 -0
  5. data/lib/pay_quicker_sdk/api_helper.rb +10 -0
  6. data/lib/pay_quicker_sdk/client.rb +205 -0
  7. data/lib/pay_quicker_sdk/configuration.rb +229 -0
  8. data/lib/pay_quicker_sdk/controllers/agreements_controller.rb +129 -0
  9. data/lib/pay_quicker_sdk/controllers/balances_controller.rb +156 -0
  10. data/lib/pay_quicker_sdk/controllers/bank_accounts_controller.rb +587 -0
  11. data/lib/pay_quicker_sdk/controllers/base_controller.rb +60 -0
  12. data/lib/pay_quicker_sdk/controllers/client_side_controller.rb +237 -0
  13. data/lib/pay_quicker_sdk/controllers/compliance_controller.rb +77 -0
  14. data/lib/pay_quicker_sdk/controllers/documents_controller.rb +233 -0
  15. data/lib/pay_quicker_sdk/controllers/electronic_wallets_controller.rb +280 -0
  16. data/lib/pay_quicker_sdk/controllers/events_controller.rb +75 -0
  17. data/lib/pay_quicker_sdk/controllers/invitations_controller.rb +179 -0
  18. data/lib/pay_quicker_sdk/controllers/jobs_controller.rb +154 -0
  19. data/lib/pay_quicker_sdk/controllers/o_auth_authorization_controller.rb +43 -0
  20. data/lib/pay_quicker_sdk/controllers/payments_controller.rb +217 -0
  21. data/lib/pay_quicker_sdk/controllers/prepaid_cards_controller.rb +262 -0
  22. data/lib/pay_quicker_sdk/controllers/program_controller.rb +88 -0
  23. data/lib/pay_quicker_sdk/controllers/receipts_controller.rb +287 -0
  24. data/lib/pay_quicker_sdk/controllers/spendback_controller.rb +201 -0
  25. data/lib/pay_quicker_sdk/controllers/spendback_refunds_controller.rb +232 -0
  26. data/lib/pay_quicker_sdk/controllers/statements_controller.rb +197 -0
  27. data/lib/pay_quicker_sdk/controllers/transfers_controller.rb +259 -0
  28. data/lib/pay_quicker_sdk/controllers/users_controller.rb +151 -0
  29. data/lib/pay_quicker_sdk/controllers/webhooks_controller.rb +173 -0
  30. data/lib/pay_quicker_sdk/exceptions/api_error_result_exception.rb +80 -0
  31. data/lib/pay_quicker_sdk/exceptions/api_exception.rb +21 -0
  32. data/lib/pay_quicker_sdk/exceptions/o_auth_provider_exception.rb +64 -0
  33. data/lib/pay_quicker_sdk/http/auth/clientside.rb +53 -0
  34. data/lib/pay_quicker_sdk/http/auth/server.rb +156 -0
  35. data/lib/pay_quicker_sdk/http/http_call_back.rb +10 -0
  36. data/lib/pay_quicker_sdk/http/http_method_enum.rb +10 -0
  37. data/lib/pay_quicker_sdk/http/http_request.rb +10 -0
  38. data/lib/pay_quicker_sdk/http/http_response.rb +10 -0
  39. data/lib/pay_quicker_sdk/http/proxy_settings.rb +22 -0
  40. data/lib/pay_quicker_sdk/logging/configuration/api_logging_configuration.rb +186 -0
  41. data/lib/pay_quicker_sdk/logging/sdk_logger.rb +17 -0
  42. data/lib/pay_quicker_sdk/models/addresses.rb +45 -0
  43. data/lib/pay_quicker_sdk/models/agreement_list_result_json.rb +106 -0
  44. data/lib/pay_quicker_sdk/models/agreement_object.rb +120 -0
  45. data/lib/pay_quicker_sdk/models/agreement_result.rb +130 -0
  46. data/lib/pay_quicker_sdk/models/agreement_types.rb +64 -0
  47. data/lib/pay_quicker_sdk/models/authorization_list_result.rb +106 -0
  48. data/lib/pay_quicker_sdk/models/authorization_object.rb +194 -0
  49. data/lib/pay_quicker_sdk/models/balance_list_result.rb +106 -0
  50. data/lib/pay_quicker_sdk/models/balance_object.rb +118 -0
  51. data/lib/pay_quicker_sdk/models/balance_result.rb +128 -0
  52. data/lib/pay_quicker_sdk/models/bank_account_address.rb +132 -0
  53. data/lib/pay_quicker_sdk/models/bank_account_field.rb +83 -0
  54. data/lib/pay_quicker_sdk/models/bank_account_fields.rb +195 -0
  55. data/lib/pay_quicker_sdk/models/bank_account_list_result.rb +106 -0
  56. data/lib/pay_quicker_sdk/models/bank_account_object.rb +226 -0
  57. data/lib/pay_quicker_sdk/models/bank_account_ownership.rb +36 -0
  58. data/lib/pay_quicker_sdk/models/bank_account_required_fields.rb +125 -0
  59. data/lib/pay_quicker_sdk/models/bank_account_requirement.rb +142 -0
  60. data/lib/pay_quicker_sdk/models/bank_account_requirement_format.rb +93 -0
  61. data/lib/pay_quicker_sdk/models/bank_account_requirement_format_legend.rb +93 -0
  62. data/lib/pay_quicker_sdk/models/bank_account_requirement_list_result.rb +110 -0
  63. data/lib/pay_quicker_sdk/models/bank_account_requirement_validator.rb +86 -0
  64. data/lib/pay_quicker_sdk/models/bank_account_result.rb +234 -0
  65. data/lib/pay_quicker_sdk/models/bank_account_statuses.rb +49 -0
  66. data/lib/pay_quicker_sdk/models/bank_account_types.rb +47 -0
  67. data/lib/pay_quicker_sdk/models/bank_types.rb +68 -0
  68. data/lib/pay_quicker_sdk/models/base_model.rb +122 -0
  69. data/lib/pay_quicker_sdk/models/business_contact_roles.rb +44 -0
  70. data/lib/pay_quicker_sdk/models/card_networks.rb +36 -0
  71. data/lib/pay_quicker_sdk/models/card_processors.rb +52 -0
  72. data/lib/pay_quicker_sdk/models/category_types.rb +36 -0
  73. data/lib/pay_quicker_sdk/models/countries.rb +1031 -0
  74. data/lib/pay_quicker_sdk/models/countries_alpha_code3.rb +1028 -0
  75. data/lib/pay_quicker_sdk/models/create_invitation.rb +614 -0
  76. data/lib/pay_quicker_sdk/models/create_or_update_bank_account.rb +163 -0
  77. data/lib/pay_quicker_sdk/models/create_or_update_document.rb +82 -0
  78. data/lib/pay_quicker_sdk/models/create_or_update_document_fields.rb +81 -0
  79. data/lib/pay_quicker_sdk/models/create_or_update_electronic_wallet.rb +126 -0
  80. data/lib/pay_quicker_sdk/models/create_or_update_user.rb +614 -0
  81. data/lib/pay_quicker_sdk/models/create_spendback_refund_quote.rb +173 -0
  82. data/lib/pay_quicker_sdk/models/create_webhook_request.rb +82 -0
  83. data/lib/pay_quicker_sdk/models/currencies.rb +700 -0
  84. data/lib/pay_quicker_sdk/models/delivery_details.rb +119 -0
  85. data/lib/pay_quicker_sdk/models/document_details.rb +81 -0
  86. data/lib/pay_quicker_sdk/models/document_list_result.rb +108 -0
  87. data/lib/pay_quicker_sdk/models/document_object.rb +147 -0
  88. data/lib/pay_quicker_sdk/models/document_requirements_list_result.rb +91 -0
  89. data/lib/pay_quicker_sdk/models/document_result.rb +157 -0
  90. data/lib/pay_quicker_sdk/models/document_status_types.rb +48 -0
  91. data/lib/pay_quicker_sdk/models/document_types.rb +264 -0
  92. data/lib/pay_quicker_sdk/models/electronic_funds_transfer_types.rb +36 -0
  93. data/lib/pay_quicker_sdk/models/electronic_transfer_failure_types.rb +97 -0
  94. data/lib/pay_quicker_sdk/models/electronic_transfer_status_types.rb +46 -0
  95. data/lib/pay_quicker_sdk/models/electronic_wallet_field.rb +83 -0
  96. data/lib/pay_quicker_sdk/models/electronic_wallet_fields.rb +41 -0
  97. data/lib/pay_quicker_sdk/models/electronic_wallet_list_result.rb +106 -0
  98. data/lib/pay_quicker_sdk/models/electronic_wallet_object.rb +186 -0
  99. data/lib/pay_quicker_sdk/models/electronic_wallet_required_fields.rb +125 -0
  100. data/lib/pay_quicker_sdk/models/electronic_wallet_requirement.rb +166 -0
  101. data/lib/pay_quicker_sdk/models/electronic_wallet_requirement_format.rb +93 -0
  102. data/lib/pay_quicker_sdk/models/electronic_wallet_requirement_format_legend.rb +93 -0
  103. data/lib/pay_quicker_sdk/models/electronic_wallet_requirement_list_result.rb +110 -0
  104. data/lib/pay_quicker_sdk/models/electronic_wallet_requirement_validator.rb +86 -0
  105. data/lib/pay_quicker_sdk/models/electronic_wallet_result.rb +195 -0
  106. data/lib/pay_quicker_sdk/models/electronic_wallet_statuses.rb +48 -0
  107. data/lib/pay_quicker_sdk/models/electronic_wallet_type.rb +99 -0
  108. data/lib/pay_quicker_sdk/models/electronic_wallet_types.rb +368 -0
  109. data/lib/pay_quicker_sdk/models/event_category_types.rb +40 -0
  110. data/lib/pay_quicker_sdk/models/event_list_result.rb +106 -0
  111. data/lib/pay_quicker_sdk/models/event_object.rb +191 -0
  112. data/lib/pay_quicker_sdk/models/event_requirement_categories.rb +56 -0
  113. data/lib/pay_quicker_sdk/models/event_requirements.rb +105 -0
  114. data/lib/pay_quicker_sdk/models/event_statuses.rb +52 -0
  115. data/lib/pay_quicker_sdk/models/event_types.rb +36 -0
  116. data/lib/pay_quicker_sdk/models/expected_delivery_types.rb +36 -0
  117. data/lib/pay_quicker_sdk/models/fee_configuration.rb +154 -0
  118. data/lib/pay_quicker_sdk/models/fee_distribution.rb +159 -0
  119. data/lib/pay_quicker_sdk/models/fee_responsibility_parties.rb +44 -0
  120. data/lib/pay_quicker_sdk/models/fee_responsibility_sources.rb +36 -0
  121. data/lib/pay_quicker_sdk/models/fee_sources.rb +40 -0
  122. data/lib/pay_quicker_sdk/models/fee_values.rb +36 -0
  123. data/lib/pay_quicker_sdk/models/fees.rb +222 -0
  124. data/lib/pay_quicker_sdk/models/fx_rate.rb +144 -0
  125. data/lib/pay_quicker_sdk/models/gateway_payment_job.rb +131 -0
  126. data/lib/pay_quicker_sdk/models/gateway_payment_job_quote.rb +167 -0
  127. data/lib/pay_quicker_sdk/models/gateway_payment_quote.rb +220 -0
  128. data/lib/pay_quicker_sdk/models/gateway_spendback_quote.rb +167 -0
  129. data/lib/pay_quicker_sdk/models/gateway_transfer_quote.rb +195 -0
  130. data/lib/pay_quicker_sdk/models/genders.rb +48 -0
  131. data/lib/pay_quicker_sdk/models/government_ids.rb +45 -0
  132. data/lib/pay_quicker_sdk/models/hateoas_relationship.rb +69 -0
  133. data/lib/pay_quicker_sdk/models/hateoas_self_ref.rb +84 -0
  134. data/lib/pay_quicker_sdk/models/identity_verification_providers.rb +62 -0
  135. data/lib/pay_quicker_sdk/models/identity_verification_result_sub_types.rb +38 -0
  136. data/lib/pay_quicker_sdk/models/identity_verification_result_types.rb +57 -0
  137. data/lib/pay_quicker_sdk/models/idv_check_list_result.rb +108 -0
  138. data/lib/pay_quicker_sdk/models/idv_check_object.rb +209 -0
  139. data/lib/pay_quicker_sdk/models/idv_check_result.rb +221 -0
  140. data/lib/pay_quicker_sdk/models/invitation_list_result.rb +106 -0
  141. data/lib/pay_quicker_sdk/models/invitation_object.rb +262 -0
  142. data/lib/pay_quicker_sdk/models/invitation_result.rb +272 -0
  143. data/lib/pay_quicker_sdk/models/job_status_types.rb +68 -0
  144. data/lib/pay_quicker_sdk/models/job_types.rb +36 -0
  145. data/lib/pay_quicker_sdk/models/languages.rb +101 -0
  146. data/lib/pay_quicker_sdk/models/list_metadata.rb +116 -0
  147. data/lib/pay_quicker_sdk/models/lock_side_types.rb +37 -0
  148. data/lib/pay_quicker_sdk/models/metadata.rb +72 -0
  149. data/lib/pay_quicker_sdk/models/metadata_items.rb +80 -0
  150. data/lib/pay_quicker_sdk/models/o_auth_provider_error.rb +62 -0
  151. data/lib/pay_quicker_sdk/models/o_auth_scope_server.rb +36 -0
  152. data/lib/pay_quicker_sdk/models/o_auth_token.rb +106 -0
  153. data/lib/pay_quicker_sdk/models/occupations.rb +100 -0
  154. data/lib/pay_quicker_sdk/models/operation_result.rb +72 -0
  155. data/lib/pay_quicker_sdk/models/order_prepaid_card.rb +97 -0
  156. data/lib/pay_quicker_sdk/models/payment_job_list_result.rb +106 -0
  157. data/lib/pay_quicker_sdk/models/payment_job_object.rb +211 -0
  158. data/lib/pay_quicker_sdk/models/payment_job_result.rb +220 -0
  159. data/lib/pay_quicker_sdk/models/payment_list_result.rb +106 -0
  160. data/lib/pay_quicker_sdk/models/payment_object.rb +263 -0
  161. data/lib/pay_quicker_sdk/models/payment_purposes.rb +58 -0
  162. data/lib/pay_quicker_sdk/models/payment_result.rb +272 -0
  163. data/lib/pay_quicker_sdk/models/portal_payment_job.rb +131 -0
  164. data/lib/pay_quicker_sdk/models/portal_payment_job_quote.rb +176 -0
  165. data/lib/pay_quicker_sdk/models/portal_payment_quote.rb +228 -0
  166. data/lib/pay_quicker_sdk/models/portal_spendback_quote.rb +177 -0
  167. data/lib/pay_quicker_sdk/models/portal_transfer_quote.rb +204 -0
  168. data/lib/pay_quicker_sdk/models/prepaid_card_authorizations.rb +129 -0
  169. data/lib/pay_quicker_sdk/models/prepaid_card_capabilities.rb +69 -0
  170. data/lib/pay_quicker_sdk/models/prepaid_card_data_object.rb +136 -0
  171. data/lib/pay_quicker_sdk/models/prepaid_card_data_result.rb +146 -0
  172. data/lib/pay_quicker_sdk/models/prepaid_card_data_token_object.rb +134 -0
  173. data/lib/pay_quicker_sdk/models/prepaid_card_data_token_result.rb +145 -0
  174. data/lib/pay_quicker_sdk/models/prepaid_card_data_type.rb +36 -0
  175. data/lib/pay_quicker_sdk/models/prepaid_card_image_side.rb +36 -0
  176. data/lib/pay_quicker_sdk/models/prepaid_card_list_result.rb +106 -0
  177. data/lib/pay_quicker_sdk/models/prepaid_card_object.rb +243 -0
  178. data/lib/pay_quicker_sdk/models/prepaid_card_pin_object.rb +108 -0
  179. data/lib/pay_quicker_sdk/models/prepaid_card_pin_result.rb +121 -0
  180. data/lib/pay_quicker_sdk/models/prepaid_card_pin_token_object.rb +128 -0
  181. data/lib/pay_quicker_sdk/models/prepaid_card_pin_token_result.rb +139 -0
  182. data/lib/pay_quicker_sdk/models/prepaid_card_replacement_reasons.rb +48 -0
  183. data/lib/pay_quicker_sdk/models/prepaid_card_result.rb +254 -0
  184. data/lib/pay_quicker_sdk/models/prepaid_card_statuses.rb +71 -0
  185. data/lib/pay_quicker_sdk/models/program_list_result.rb +106 -0
  186. data/lib/pay_quicker_sdk/models/program_object.rb +138 -0
  187. data/lib/pay_quicker_sdk/models/program_result.rb +147 -0
  188. data/lib/pay_quicker_sdk/models/program_types.rb +44 -0
  189. data/lib/pay_quicker_sdk/models/receipt_descriptions.rb +84 -0
  190. data/lib/pay_quicker_sdk/models/receipt_details.rb +439 -0
  191. data/lib/pay_quicker_sdk/models/receipt_list_result.rb +106 -0
  192. data/lib/pay_quicker_sdk/models/receipt_object.rb +241 -0
  193. data/lib/pay_quicker_sdk/models/receipt_result.rb +251 -0
  194. data/lib/pay_quicker_sdk/models/receipt_statuses.rb +76 -0
  195. data/lib/pay_quicker_sdk/models/replace_prepaid_card.rb +85 -0
  196. data/lib/pay_quicker_sdk/models/retrieve_card_data.rb +73 -0
  197. data/lib/pay_quicker_sdk/models/retrieve_card_pin.rb +76 -0
  198. data/lib/pay_quicker_sdk/models/sandbox_instance.rb +76 -0
  199. data/lib/pay_quicker_sdk/models/signs.rb +40 -0
  200. data/lib/pay_quicker_sdk/models/spendback_list_result.rb +106 -0
  201. data/lib/pay_quicker_sdk/models/spendback_object.rb +291 -0
  202. data/lib/pay_quicker_sdk/models/spendback_quote_accept_result.rb +301 -0
  203. data/lib/pay_quicker_sdk/models/spendback_refund_list_result.rb +106 -0
  204. data/lib/pay_quicker_sdk/models/spendback_refund_object.rb +251 -0
  205. data/lib/pay_quicker_sdk/models/spendback_refund_result.rb +262 -0
  206. data/lib/pay_quicker_sdk/models/spendback_result.rb +301 -0
  207. data/lib/pay_quicker_sdk/models/statement_list_result.rb +106 -0
  208. data/lib/pay_quicker_sdk/models/statement_object.rb +183 -0
  209. data/lib/pay_quicker_sdk/models/statement_result.rb +192 -0
  210. data/lib/pay_quicker_sdk/models/tax_resident_statuses.rb +40 -0
  211. data/lib/pay_quicker_sdk/models/token_purposes.rb +36 -0
  212. data/lib/pay_quicker_sdk/models/transfer_list_result.rb +106 -0
  213. data/lib/pay_quicker_sdk/models/transfer_method_types.rb +48 -0
  214. data/lib/pay_quicker_sdk/models/transfer_object.rb +309 -0
  215. data/lib/pay_quicker_sdk/models/transfer_result.rb +318 -0
  216. data/lib/pay_quicker_sdk/models/transfer_statuses.rb +76 -0
  217. data/lib/pay_quicker_sdk/models/transfer_types.rb +112 -0
  218. data/lib/pay_quicker_sdk/models/translation.rb +85 -0
  219. data/lib/pay_quicker_sdk/models/uat_instance.rb +48 -0
  220. data/lib/pay_quicker_sdk/models/update_card_pin.rb +87 -0
  221. data/lib/pay_quicker_sdk/models/update_prepaid_card.rb +85 -0
  222. data/lib/pay_quicker_sdk/models/upload_fields.rb +40 -0
  223. data/lib/pay_quicker_sdk/models/user_action.rb +40 -0
  224. data/lib/pay_quicker_sdk/models/user_doc_req_item_docs_items_metadata_items.rb +101 -0
  225. data/lib/pay_quicker_sdk/models/user_doc_req_item_docs_items_metadata_items_name_items.rb +83 -0
  226. data/lib/pay_quicker_sdk/models/user_doc_req_item_docs_items_supplemental_docs_items.rb +92 -0
  227. data/lib/pay_quicker_sdk/models/user_document_requirement_item.rb +105 -0
  228. data/lib/pay_quicker_sdk/models/user_document_requirement_item_documents_items.rb +132 -0
  229. data/lib/pay_quicker_sdk/models/user_event_result.rb +201 -0
  230. data/lib/pay_quicker_sdk/models/user_impact.rb +48 -0
  231. data/lib/pay_quicker_sdk/models/user_list_result.rb +106 -0
  232. data/lib/pay_quicker_sdk/models/user_object.rb +676 -0
  233. data/lib/pay_quicker_sdk/models/user_result.rb +686 -0
  234. data/lib/pay_quicker_sdk/models/user_statuses.rb +40 -0
  235. data/lib/pay_quicker_sdk/models/user_types.rb +36 -0
  236. data/lib/pay_quicker_sdk/models/validator_types.rb +50 -0
  237. data/lib/pay_quicker_sdk/models/webhook_namespaces.rb +307 -0
  238. data/lib/pay_quicker_sdk/models/webhook_subscription_list_result.rb +106 -0
  239. data/lib/pay_quicker_sdk/models/webhook_subscription_object.rb +158 -0
  240. data/lib/pay_quicker_sdk/models/webhook_subscription_result.rb +167 -0
  241. data/lib/pay_quicker_sdk/models/webhook_subscription_statuses.rb +44 -0
  242. data/lib/pay_quicker_sdk/utilities/date_time_helper.rb +11 -0
  243. data/lib/pay_quicker_sdk/utilities/file_wrapper.rb +28 -0
  244. data/lib/pay_quicker_sdk/utilities/union_type_lookup.rb +62 -0
  245. data/lib/pay_quicker_sdk.rb +274 -0
  246. data/test/controllers/controller_test_base.rb +24 -0
  247. data/test/controllers/test_agreements_controller.rb +108 -0
  248. data/test/controllers/test_balances_controller.rb +132 -0
  249. data/test/controllers/test_bank_accounts_controller.rb +645 -0
  250. data/test/controllers/test_client_side_controller.rb +295 -0
  251. data/test/controllers/test_compliance_controller.rb +86 -0
  252. data/test/controllers/test_documents_controller.rb +212 -0
  253. data/test/controllers/test_electronic_wallets_controller.rb +292 -0
  254. data/test/controllers/test_events_controller.rb +138 -0
  255. data/test/controllers/test_invitations_controller.rb +162 -0
  256. data/test/controllers/test_jobs_controller.rb +114 -0
  257. data/test/controllers/test_payments_controller.rb +323 -0
  258. data/test/controllers/test_prepaid_cards_controller.rb +351 -0
  259. data/test/controllers/test_program_controller.rb +134 -0
  260. data/test/controllers/test_receipts_controller.rb +813 -0
  261. data/test/controllers/test_spendback_controller.rb +302 -0
  262. data/test/controllers/test_spendback_refunds_controller.rb +128 -0
  263. data/test/controllers/test_statements_controller.rb +192 -0
  264. data/test/controllers/test_transfers_controller.rb +613 -0
  265. data/test/controllers/test_users_controller.rb +483 -0
  266. data/test/controllers/test_webhooks_controller.rb +402 -0
  267. data/test/http_response_catcher.rb +19 -0
  268. metadata +380 -0
@@ -0,0 +1,351 @@
1
+ # pay_quicker_sdk
2
+ #
3
+ # This file was automatically generated for PayQuicker by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class PrepaidCardsControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.prepaid_cards
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Retrieve a list of [prepaid cards](page:resources/prepaid-cards) by user token that supports filtering, sorting, and pagination through existing mechanisms.
17
+ #
18
+ def test_list_prepaid_cards
19
+ # Parameters for the API call
20
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
21
+ page = 1
22
+ page_size = 20
23
+ filter = 'string'
24
+ sort = 'string'
25
+ language = 'en-US'
26
+
27
+ # Perform the API call through the SDK function
28
+ result = @controller.list_prepaid_cards(user_token, page, page_size,
29
+ filter: filter, sort: sort,
30
+ language: language)
31
+
32
+ # Test response code
33
+ assert_equal(200, @response_catcher.response.status_code)
34
+ # Test headers
35
+ expected_headers = {}
36
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
37
+
38
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
39
+
40
+ # Test whether the captured response is as we expected
41
+ refute_nil(result)
42
+ expected_body = JSON.parse(
43
+ '{"payload":[{"token":"dest-b61bc870-8ab8-4870-a209-6398b60269d5","cardN'\
44
+ 'etwork":"VISA","cardNumber":"483318******3940","cardPackage":"712940","'\
45
+ 'country":"US","createdOn":"2022-04-20T18:43:15Z","currency":"USD","cvv"'\
46
+ ':"***","expires":"04/2025","status":"PENDING_ACTIVATION","bankInDetails'\
47
+ '":[{"key":"BANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value'\
48
+ '":"8037390305203"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOO'\
49
+ 'GLEPAY","SAMSUNGPAY"],"userToken":"user-2bbfc967-d12e-4647-a887-d905172'\
50
+ 'fb4bc","links":[{"href":"https://api.sandbox.payquicker.io/api/v2/users'\
51
+ '/user-2bbfc967-d12e-4647-a887-d905172fb4bc/prepaid-cards/dest-b61bc870-'\
52
+ '8ab8-4870-a209-6398b60269d5","params":{"rel":"self"}}]},{"token":"dest-'\
53
+ '9a8f1dc9-5e59-4ce5-a919-fc586d85d6e5","cardNetwork":"VISA","cardNumber"'\
54
+ ':"483318******4628","cardPackage":"712940","country":"US","createdOn":"'\
55
+ '2022-04-20T18:42:47Z","currency":"USD","cvv":"***","expires":"06/2025",'\
56
+ '"status":"CLOSED_LOST_STOLEN_DAMAGED","capabilities":["BANK_IN","SET_PI'\
57
+ 'N","APPLEPAY","GOOGLEPAY","SAMSUNGPAY"],"userToken":"user-2bbfc967-d12e'\
58
+ '-4647-a887-d905172fb4bc","links":[{"href":"https://api.sandbox.payquick'\
59
+ 'er.io/api/v2/users/user-2bbfc967-d12e-4647-a887-d905172fb4bc/prepaid-ca'\
60
+ 'rds/dest-9a8f1dc9-5e59-4ce5-a919-fc586d85d6e5","params":{"rel":"self"}}'\
61
+ ']},{"token":"dest-d9c6edab-ddec-4941-b980-f33cfe2f9f6b","cardNetwork":"'\
62
+ 'VISA","cardNumber":"483318******1805","cardPackage":"712940","country":'\
63
+ '"US","createdOn":"2022-04-20T18:36:16Z","currency":"USD","cvv":"***","e'\
64
+ 'xpires":"10/2025","status":"CLOSED_LOST_STOLEN_DAMAGED","capabilities":'\
65
+ '["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAMSUNGPAY"],"userToken":"'\
66
+ 'user-2bbfc967-d12e-4647-a887-d905172fb4bc","links":[{"href":"https://ap'\
67
+ 'i.sandbox.payquicker.io/api/v2/users/user-2bbfc967-d12e-4647-a887-d9051'\
68
+ '72fb4bc/prepaid-cards/dest-d9c6edab-ddec-4941-b980-f33cfe2f9f6b","param'\
69
+ 's":{"rel":"self"}}]}],"meta":{"pageNo":"1","pageSize":"100","pageCount"'\
70
+ ':"1","recordCount":"3","timezone":"GMT","requestRef":"request-reference'\
71
+ '-value"},"links":[{"href":"https://api.sandbox.payquicker.io/api/v2/use'\
72
+ 'rs/user-2bbfc967-d12e-4647-a887-d905172fb4bc/prepaid-cards","params":{"'\
73
+ 'rel":"self"}}]}'
74
+ )
75
+ received_body = JSON.parse(@response_catcher.response.raw_body)
76
+ assert(ComparisonHelper.match_body(expected_body, received_body))
77
+ end
78
+
79
+ # Order a [prepaid card](page:resources/prepaid-cards) for the user by specifying a cardPackage.
80
+ #
81
+ #Assign a prepaid card to a user when a program token and card reference number are supplied.
82
+ def test_order_prepaid_card
83
+ # Parameters for the API call
84
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
85
+ body = OrderPrepaidCard.from_hash(APIHelper.json_deserialize(
86
+ '{"cardPackage":"712940","programToken":"prog-6a272eca-9487-d83a-c9e4-8d'\
87
+ 'f8c9a7f6eb"}', false))
88
+
89
+ # Perform the API call through the SDK function
90
+ result = @controller.order_prepaid_card(user_token, body: body)
91
+
92
+ # Test response code
93
+ assert_equal(200, @response_catcher.response.status_code)
94
+ # Test headers
95
+ expected_headers = {}
96
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
97
+
98
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
99
+
100
+ # Test whether the captured response is as we expected
101
+ refute_nil(result)
102
+ expected_body = JSON.parse(
103
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
104
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
105
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
106
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
107
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
108
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
109
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
110
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
111
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
112
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
113
+ 'questRef":"request-reference-value"}}'
114
+ )
115
+ received_body = JSON.parse(@response_catcher.response.raw_body)
116
+ assert(ComparisonHelper.match_body(expected_body, received_body))
117
+ end
118
+
119
+ # Order a [prepaid card](page:resources/prepaid-cards) for the user by specifying a cardPackage.
120
+ #
121
+ #Assign a prepaid card to a user when a program token and card reference number are supplied.
122
+ def test_order_prepaid_card1
123
+ # Parameters for the API call
124
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
125
+ body = OrderPrepaidCard.from_hash(APIHelper.json_deserialize(
126
+ '{"cardPackage":"712940","programToken":"prog-6a272eca-9487-d83a-c9e4-8d'\
127
+ 'f8c9a7f6eb"}', false))
128
+
129
+ # Perform the API call through the SDK function
130
+ result = @controller.order_prepaid_card(user_token, body: body)
131
+
132
+ # Test response code
133
+ assert_equal(201, @response_catcher.response.status_code)
134
+ # Test headers
135
+ expected_headers = {}
136
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
137
+
138
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
139
+
140
+ # Test whether the captured response is as we expected
141
+ refute_nil(result)
142
+ expected_body = JSON.parse(
143
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
144
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
145
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
146
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
147
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
148
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
149
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
150
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
151
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
152
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
153
+ 'questRef":"request-reference-value"}}'
154
+ )
155
+ received_body = JSON.parse(@response_catcher.response.raw_body)
156
+ assert(ComparisonHelper.match_body(expected_body, received_body))
157
+ end
158
+
159
+ # Replace a [prepaid card](page:resources/prepaid-cards) by destination token.
160
+ #
161
+ def test_replace_prepaid_card
162
+ # Parameters for the API call
163
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
164
+ destination_token = 'dest-4aed86e2-4929-45bf-814d-9030aef21e79'
165
+ body = ReplacePrepaidCard.from_hash(APIHelper.json_deserialize(
166
+ '{"cardPackage":"23654","cardReplacementReason":"LOST"}', false))
167
+
168
+ # Perform the API call through the SDK function
169
+ result = @controller.replace_prepaid_card(user_token, destination_token,
170
+ body: body)
171
+
172
+ # Test response code
173
+ assert_equal(200, @response_catcher.response.status_code)
174
+ # Test headers
175
+ expected_headers = {}
176
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
177
+
178
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
179
+
180
+ # Test whether the captured response is as we expected
181
+ refute_nil(result)
182
+ expected_body = JSON.parse(
183
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
184
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
185
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
186
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
187
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
188
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
189
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
190
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
191
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
192
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
193
+ 'questRef":"request-reference-value"}}'
194
+ )
195
+ received_body = JSON.parse(@response_catcher.response.raw_body)
196
+ assert(ComparisonHelper.match_body(expected_body, received_body))
197
+ end
198
+
199
+ # Replace a [prepaid card](page:resources/prepaid-cards) by destination token.
200
+ #
201
+ def test_replace_prepaid_card1
202
+ # Parameters for the API call
203
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
204
+ destination_token = 'dest-4aed86e2-4929-45bf-814d-9030aef21e79'
205
+ body = ReplacePrepaidCard.from_hash(APIHelper.json_deserialize(
206
+ '{"cardPackage":"23654","cardReplacementReason":"LOST"}', false))
207
+
208
+ # Perform the API call through the SDK function
209
+ result = @controller.replace_prepaid_card(user_token, destination_token,
210
+ body: body)
211
+
212
+ # Test response code
213
+ assert_equal(201, @response_catcher.response.status_code)
214
+ # Test headers
215
+ expected_headers = {}
216
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
217
+
218
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
219
+
220
+ # Test whether the captured response is as we expected
221
+ refute_nil(result)
222
+ expected_body = JSON.parse(
223
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
224
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
225
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
226
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
227
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
228
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
229
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
230
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
231
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
232
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
233
+ 'questRef":"request-reference-value"}}'
234
+ )
235
+ received_body = JSON.parse(@response_catcher.response.raw_body)
236
+ assert(ComparisonHelper.match_body(expected_body, received_body))
237
+ end
238
+
239
+ # Retrieve [prepaid card](page:resources/prepaid-cards) details by destination token.
240
+ #
241
+ def test_retrieve_prepaid_card
242
+ # Parameters for the API call
243
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
244
+ destination_token = 'dest-4aed86e2-4929-45bf-814d-9030aef21e79'
245
+
246
+ # Perform the API call through the SDK function
247
+ result = @controller.retrieve_prepaid_card(user_token, destination_token)
248
+
249
+ # Test response code
250
+ assert_equal(200, @response_catcher.response.status_code)
251
+ # Test headers
252
+ expected_headers = {}
253
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
254
+
255
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
256
+
257
+ # Test whether the captured response is as we expected
258
+ refute_nil(result)
259
+ expected_body = JSON.parse(
260
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
261
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
262
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
263
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
264
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
265
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
266
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
267
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
268
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
269
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
270
+ 'questRef":"request-reference-value"}}'
271
+ )
272
+ received_body = JSON.parse(@response_catcher.response.raw_body)
273
+ assert(ComparisonHelper.match_body(expected_body, received_body))
274
+ end
275
+
276
+ # Partial [prepaid card](page:resources/prepaid-cards) update.
277
+ #
278
+ def test_update_prepaid_card
279
+ # Parameters for the API call
280
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
281
+ destination_token = 'dest-4aed86e2-4929-45bf-814d-9030aef21e79'
282
+ body = UpdatePrepaidCard.from_hash(APIHelper.json_deserialize(
283
+ '{"cardPackage":"","status":"QUEUED"}', false))
284
+
285
+ # Perform the API call through the SDK function
286
+ result = @controller.update_prepaid_card(user_token, destination_token,
287
+ body: body)
288
+
289
+ # Test response code
290
+ assert_equal(201, @response_catcher.response.status_code)
291
+ # Test headers
292
+ expected_headers = {}
293
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
294
+
295
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
296
+
297
+ # Test whether the captured response is as we expected
298
+ refute_nil(result)
299
+ expected_body = JSON.parse(
300
+ '{"token":"dest-fcd31b51-0968-4537-8722-f486bdd5cd74","cardNetwork":"VIS'\
301
+ 'A","cardNumber":"483318******2127","cardPackage":"712940","country":"US'\
302
+ '","createdOn":"2022-05-06T18:14:52Z","currency":"USD","cvv":"***","expi'\
303
+ 'res":"06/2025","status":"PENDING_ACTIVATION","bankInDetails":[{"key":"B'\
304
+ 'ANK_ACH_ABA","value":"026014892"},{"key":"BANK_BBAN","value":"803739085'\
305
+ '3101"}],"capabilities":["BANK_IN","SET_PIN","APPLEPAY","GOOGLEPAY","SAM'\
306
+ 'SUNGPAY"],"userToken":"user-ae92315b-6190-4e56-bdf5-c0189ac420a1","link'\
307
+ 's":[{"href":"https://api.sandbox.payquicker.io/api/v2/users/user-ae9231'\
308
+ '5b-6190-4e56-bdf5-c0189ac420a1/prepaid-cards/dest-fcd31b51-0968-4537-87'\
309
+ '22-f486bdd5cd74","params":{"rel":"self"}}],"meta":{"timezone":"GMT","re'\
310
+ 'questRef":"request-reference-value"}}'
311
+ )
312
+ received_body = JSON.parse(@response_catcher.response.raw_body)
313
+ assert(ComparisonHelper.match_body(expected_body, received_body))
314
+ end
315
+
316
+ # TODO
317
+ def test_list_card_authorizations
318
+ # Parameters for the API call
319
+ user_token = 'user-2bbfc967-d12e-4647-a887-d905172fb4bc'
320
+ destination_token = 'dest-4aed86e2-4929-45bf-814d-9030aef21e79'
321
+
322
+ # Perform the API call through the SDK function
323
+ result = @controller.list_card_authorizations(user_token, destination_token)
324
+
325
+ # Test response code
326
+ assert_equal(200, @response_catcher.response.status_code)
327
+ # Test headers
328
+ expected_headers = {}
329
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
330
+
331
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
332
+
333
+ # Test whether the captured response is as we expected
334
+ refute_nil(result)
335
+ expected_body = JSON.parse(
336
+ '{"payload":[{"type":"UNSETTLED_AUTHORIZATION","createdOn":"2022-05-04T1'\
337
+ '3:22:53Z","sign":"DEBIT","sourceToken":"dest-8e35fc1b-82f4-4bf5-93d1-27'\
338
+ 'f71a192bc2","amount":-35,"currency":"USD","status":"UNSETTLED","descrip'\
339
+ 'tions":[{"language":"en-US","translation":"Completed Bank Transfer Requ'\
340
+ 'est"}],"authDate":"2022-05-04T13:22:53Z","reference":"CC008AB44895"}],"'\
341
+ 'meta":{"pageNo":"1","pageSize":"100","pageCount":"0","recordCount":"0",'\
342
+ '"timezone":"GMT","requestRef":"request-reference-value"},"links":[{"hre'\
343
+ 'f":"https://api.sandbox.payquicker.io/api/v2/users/user-cf6244d7-f6b8-4'\
344
+ '625-906a-9f21fc8c774b/prepaid-cards/dest-8e35fc1b-82f4-4bf5-93d1-27f71a'\
345
+ '192bc2/authorizations","params":{"rel":"self"}}]}'
346
+ )
347
+ received_body = JSON.parse(@response_catcher.response.raw_body)
348
+ assert(ComparisonHelper.match_body(expected_body, received_body))
349
+ end
350
+
351
+ end
@@ -0,0 +1,134 @@
1
+ # pay_quicker_sdk
2
+ #
3
+ # This file was automatically generated for PayQuicker by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class ProgramControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.program
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Retrieve a list of [programs](page:resources/programs) that supports filtering, sorting, and pagination through existing mechanisms.
17
+ #
18
+ def test_list_programs
19
+ # Parameters for the API call
20
+ page = 1
21
+ page_size = 20
22
+ filter = 'string'
23
+ sort = 'string'
24
+ language = 'en-US'
25
+
26
+ # Perform the API call through the SDK function
27
+ result = @controller.list_programs(page, page_size, filter: filter,
28
+ sort: sort, language: language)
29
+
30
+ # Test response code
31
+ assert_equal(200, @response_catcher.response.status_code)
32
+ # Test headers
33
+ expected_headers = {}
34
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
35
+
36
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
37
+
38
+ # Test whether the captured response is as we expected
39
+ refute_nil(result)
40
+ expected_body = JSON.parse(
41
+ '{"payload":[{"token":"prog-0146a716-4055-2598-ce14-df5ece519a98","curre'\
42
+ 'ncy":"USD","bank":"PATHWARD","electricWallets":[{"type":"TIGO_MONEY","e'\
43
+ 'lectronicWalletCountry":"SV","electronicWalletCurrency":"USD"},{"type":'\
44
+ '"TIGO_MONEY","electronicWalletCountry":"GT","electronicWalletCurrency":'\
45
+ '"GTQ"},{"type":"AIRTEL_MONEY","electronicWalletCountry":"TZ","electroni'\
46
+ 'cWalletCurrency":"TZS"},{"type":"MCASH","electronicWalletCountry":"LK",'\
47
+ '"electronicWalletCurrency":"LKR"}],"type":"COMMERCIAL","links":[{"href"'\
48
+ ':"https://api.sandbox.payquicker.io/api/v2/programs/prog-0146a716-4055-'\
49
+ '2598-ce14-df5ece519a98","params":{"rel":"self"}}]},{"token":"prog-dbfe1'\
50
+ '489-f3ba-3f5a-6904-9b9ad91ceaf6","currency":"MXN","bank":"PATHWARD","el'\
51
+ 'ectricWallets":[],"type":"COMMERCIAL","links":[{"href":"https://api.san'\
52
+ 'dbox.payquicker.io/api/v2/programs/prog-dbfe1489-f3ba-3f5a-6904-9b9ad91'\
53
+ 'ceaf6","params":{"rel":"self"}}]},{"token":"prog-8a9e37bf-d9a9-a40a-96c'\
54
+ '4-e286d1fa8fc5","currency":"USD","bank":"PATHWARD","electricWallets":[{'\
55
+ '"type":"TIGO_MONEY","electronicWalletCountry":"SV","electronicWalletCur'\
56
+ 'rency":"USD"},{"type":"TIGO_MONEY","electronicWalletCountry":"GT","elec'\
57
+ 'tronicWalletCurrency":"GTQ"},{"type":"AIRTEL_MONEY","electronicWalletCo'\
58
+ 'untry":"TZ","electronicWalletCurrency":"TZS"},{"type":"MCASH","electron'\
59
+ 'icWalletCountry":"LK","electronicWalletCurrency":"LKR"}],"type":"COMMER'\
60
+ 'CIAL","links":[{"href":"https://api.sandbox.payquicker.io/api/v2/progra'\
61
+ 'ms/prog-8a9e37bf-d9a9-a40a-96c4-e286d1fa8fc5","params":{"rel":"self"}}]'\
62
+ '},{"token":"prog-76f58bb0-c8ae-d0fa-d1e4-15143ffb53fa","currency":"EUR"'\
63
+ ',"bank":"PPS","electricWallets":[],"type":"COMMERCIAL","links":[{"href"'\
64
+ ':"https://api.sandbox.payquicker.io/api/v2/programs/prog-76f58bb0-c8ae-'\
65
+ 'd0fa-d1e4-15143ffb53fa","params":{"rel":"self"}}]},{"token":"prog-bbde3'\
66
+ '9a9-04ca-1c0a-5d74-758a4ad47b84","currency":"GBP","bank":"PPS","electri'\
67
+ 'cWallets":[],"type":"COMMERCIAL","links":[{"href":"https://api.sandbox.'\
68
+ 'payquicker.io/api/v2/programs/prog-bbde39a9-04ca-1c0a-5d74-758a4ad47b84'\
69
+ '","params":{"rel":"self"}}]},{"token":"prog-8136128b-3f5b-2f69-15a4-f25'\
70
+ '592ebce51","currency":"MXN","bank":"PATHWARD","electricWallets":[],"typ'\
71
+ 'e":"COMMERCIAL","links":[{"href":"https://api.sandbox.payquicker.io/api'\
72
+ '/v2/programs/prog-8136128b-3f5b-2f69-15a4-f25592ebce51","params":{"rel"'\
73
+ ':"self"}}]},{"token":"prog-42469a3e-15c8-11f8-02a4-1053f176700e","curre'\
74
+ 'ncy":"EUR","bank":"PATHWARD","electricWallets":[{"type":"TIGO_MONEY","e'\
75
+ 'lectronicWalletCountry":"SV","electronicWalletCurrency":"USD"},{"type":'\
76
+ '"TIGO_MONEY","electronicWalletCountry":"GT","electronicWalletCurrency":'\
77
+ '"GTQ"},{"type":"AIRTEL_MONEY","electronicWalletCountry":"TZ","electroni'\
78
+ 'cWalletCurrency":"TZS"},{"type":"MCASH","electronicWalletCountry":"LK",'\
79
+ '"electronicWalletCurrency":"LKR"}],"type":"COMMERCIAL","links":[{"href"'\
80
+ ':"https://api.sandbox.payquicker.io/api/v2/programs/prog-42469a3e-15c8-'\
81
+ '11f8-02a4-1053f176700e","params":{"rel":"self"}}]},{"token":"prog-f8725'\
82
+ 'c56-b289-8f4b-1f94-cd27f2963cbf","currency":"HKD","bank":"PATHWARD","el'\
83
+ 'ectricWallets":[],"type":"COMMERCIAL","links":[{"href":"https://api.san'\
84
+ 'dbox.payquicker.io/api/v2/programs/prog-f8725c56-b289-8f4b-1f94-cd27f29'\
85
+ '63cbf","params":{"rel":"self"}}]},{"token":"prog-95753dc7-0b4a-65a9-7bd'\
86
+ '4-6504b6774cb9","currency":"USD","bank":"MCB","electricWallets":[],"typ'\
87
+ 'e":"CONSUMER_GPR","links":[{"href":"https://api.sandbox.payquicker.io/a'\
88
+ 'pi/v2/programs/prog-95753dc7-0b4a-65a9-7bd4-6504b6774cb9","params":{"re'\
89
+ 'l":"self"}}]}],"meta":{"pageNo":"1","pageSize":"100","pageCount":"0","r'\
90
+ 'ecordCount":"0","timezone":"GMT","requestRef":"request-reference-value"'\
91
+ '},"links":[{"href":"https://api.sandbox.payquicker.io/api/v2/programs",'\
92
+ '"params":{"rel":"self"}}]}'
93
+ )
94
+ received_body = JSON.parse(@response_catcher.response.raw_body)
95
+ assert(ComparisonHelper.match_body(expected_body, received_body))
96
+ end
97
+
98
+ # Retrieve a single [program](page:resources/programs) by its program token.
99
+ #
100
+ def test_retrieve_program
101
+ # Parameters for the API call
102
+ program_token = 'prog-6a272eca-9487-d83a-c9e4-8df8c9a7f6eb'
103
+ language = 'en-US'
104
+
105
+ # Perform the API call through the SDK function
106
+ result = @controller.retrieve_program(program_token, language: language)
107
+
108
+ # Test response code
109
+ assert_equal(200, @response_catcher.response.status_code)
110
+ # Test headers
111
+ expected_headers = {}
112
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
113
+
114
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
115
+
116
+ # Test whether the captured response is as we expected
117
+ refute_nil(result)
118
+ expected_body = JSON.parse(
119
+ '{"token":"prog-6a272eca-9487-d83a-c9e4-8df8c9a7f6eb","currency":"USD","'\
120
+ 'bank":"MCB","electricWallets":[{"type":"TIGO_MONEY","electronicWalletCo'\
121
+ 'untry":"SV","electronicWalletCurrency":"USD"},{"type":"TIGO_MONEY","ele'\
122
+ 'ctronicWalletCountry":"GT","electronicWalletCurrency":"GTQ"},{"type":"A'\
123
+ 'IRTEL_MONEY","electronicWalletCountry":"TZ","electronicWalletCurrency":'\
124
+ '"TZS"},{"type":"MCASH","electronicWalletCountry":"LK","electronicWallet'\
125
+ 'Currency":"LKR"}],"type":"CONSUMER_GPR","links":[{"href":"https://api.s'\
126
+ 'andbox.payquicker.io/api/v2/programs/prog-6a272eca-9487-d83a-c9e4-8df8c'\
127
+ '9a7f6eb","params":{"rel":"self"}}],"meta":{"timezone":"GMT","requestRef'\
128
+ '":"request-reference-value"}}'
129
+ )
130
+ received_body = JSON.parse(@response_catcher.response.raw_body)
131
+ assert(ComparisonHelper.match_body(expected_body, received_body))
132
+ end
133
+
134
+ end