mollie-api-ruby 2.2.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +37 -8
  4. data/examples/apis/api_docs.rb +1 -1
  5. data/examples/apis/chargebacks.rb +17 -0
  6. data/examples/apis/connect.rb +1 -1
  7. data/examples/apis/customers.rb +7 -6
  8. data/examples/apis/invoices.rb +2 -2
  9. data/examples/apis/issuers.rb +2 -2
  10. data/examples/apis/mandates.rb +5 -5
  11. data/examples/apis/methods.rb +2 -2
  12. data/examples/apis/organizations.rb +1 -1
  13. data/examples/apis/payments.rb +43 -9
  14. data/examples/apis/permissions.rb +2 -2
  15. data/examples/apis/profiles.rb +7 -7
  16. data/examples/apis/refunds.rb +1 -1
  17. data/examples/apis/settlements.rb +5 -5
  18. data/examples/apis/subscriptions.rb +7 -7
  19. data/examples/config.ru +6 -7
  20. data/lib/{mollie/api/cacert.pem → cacert.pem} +0 -0
  21. data/lib/mollie-api-ruby.rb +1 -0
  22. data/lib/mollie.rb +39 -0
  23. data/lib/mollie/base.rb +91 -0
  24. data/lib/mollie/chargeback.rb +36 -0
  25. data/lib/mollie/client.rb +125 -0
  26. data/lib/mollie/customer.rb +36 -0
  27. data/lib/mollie/customer/mandate.rb +33 -0
  28. data/lib/mollie/customer/payment.rb +6 -0
  29. data/lib/mollie/customer/subscription.rb +65 -0
  30. data/lib/mollie/exception.rb +8 -0
  31. data/lib/mollie/invoice.rb +66 -0
  32. data/lib/mollie/issuer.rb +5 -0
  33. data/lib/mollie/list.rb +40 -0
  34. data/lib/mollie/method.rb +38 -0
  35. data/lib/mollie/organization.rb +24 -0
  36. data/lib/mollie/payment.rb +142 -0
  37. data/lib/mollie/payment/chargeback.rb +6 -0
  38. data/lib/mollie/payment/refund.rb +6 -0
  39. data/lib/mollie/permission.rb +26 -0
  40. data/lib/mollie/profile.rb +78 -0
  41. data/lib/mollie/profile/api_key.rb +19 -0
  42. data/lib/mollie/refund.rb +42 -0
  43. data/lib/mollie/relation.rb +36 -0
  44. data/lib/mollie/settlement.rb +36 -0
  45. data/lib/mollie/settlement/chargeback.rb +6 -0
  46. data/lib/mollie/settlement/payment.rb +6 -0
  47. data/lib/mollie/settlement/refund.rb +6 -0
  48. data/lib/mollie/util.rb +57 -0
  49. data/lib/mollie/version.rb +3 -0
  50. data/mollie.gemspec +2 -2
  51. data/test/helper.rb +5 -1
  52. data/test/mollie/base_test.rb +182 -0
  53. data/test/mollie/chargeback_test.rb +35 -0
  54. data/test/mollie/client_test.rb +122 -0
  55. data/test/mollie/customer/mandate_test.rb +43 -0
  56. data/test/mollie/customer/payment_test.rb +23 -0
  57. data/test/mollie/customer/subscription_test.rb +66 -0
  58. data/test/mollie/customer_test.rb +128 -0
  59. data/test/mollie/invoice_test.rb +55 -0
  60. data/test/mollie/issuer_test.rb +19 -0
  61. data/test/mollie/list_test.rb +40 -0
  62. data/test/mollie/method_test.rb +29 -0
  63. data/test/mollie/organization_test.rb +41 -0
  64. data/test/mollie/payment/chargeback_test.rb +22 -0
  65. data/test/mollie/payment/refund_test.rb +22 -0
  66. data/test/mollie/payment_test.rb +161 -0
  67. data/test/mollie/permission_test.rb +21 -0
  68. data/test/mollie/profile/apikey_test.rb +31 -0
  69. data/test/mollie/profile_test.rb +98 -0
  70. data/test/mollie/refund_test.rb +40 -0
  71. data/test/mollie/settlement/chargeback_test.rb +22 -0
  72. data/test/mollie/settlement/payment_test.rb +22 -0
  73. data/test/mollie/settlement/refund_test.rb +22 -0
  74. data/test/mollie/settlement_test.rb +156 -0
  75. data/website-docs/chargebacks/list-all.rb +12 -0
  76. data/website-docs/connect/authorize.rb +15 -0
  77. data/website-docs/connect/tokens.rb +14 -0
  78. data/website-docs/customers/create-payment.rb +13 -0
  79. data/website-docs/customers/create.rb +12 -0
  80. data/website-docs/customers/delete.rb +10 -0
  81. data/website-docs/customers/get.rb +10 -0
  82. data/website-docs/customers/list-payments.rb +10 -0
  83. data/website-docs/customers/list.rb +12 -0
  84. data/website-docs/customers/update.rb +11 -0
  85. data/website-docs/invoices/get.rb +10 -0
  86. data/website-docs/invoices/list.rb +12 -0
  87. data/website-docs/issuers/get.rb +10 -0
  88. data/website-docs/issuers/list.rb +12 -0
  89. data/website-docs/mandates/create.rb +16 -0
  90. data/website-docs/mandates/delete.rb +10 -0
  91. data/website-docs/mandates/get.rb +10 -0
  92. data/website-docs/mandates/list.rb +12 -0
  93. data/website-docs/methods/get.rb +10 -0
  94. data/website-docs/methods/list.rb +12 -0
  95. data/website-docs/organisations/get.rb +10 -0
  96. data/website-docs/payments/create-refund.rb +14 -0
  97. data/website-docs/payments/create.rb +16 -0
  98. data/website-docs/payments/delete-refund.rb +13 -0
  99. data/website-docs/payments/delete.rb +12 -0
  100. data/website-docs/payments/get-chargeback.rb +11 -0
  101. data/website-docs/payments/get-refund.rb +11 -0
  102. data/website-docs/payments/get.rb +10 -0
  103. data/website-docs/payments/list-chargeback.rb +13 -0
  104. data/website-docs/payments/list-refunds.rb +13 -0
  105. data/website-docs/payments/list.rb +12 -0
  106. data/website-docs/payments/payment-webhook.rb +21 -0
  107. data/website-docs/permissions/get.rb +10 -0
  108. data/website-docs/permissions/list.rb +12 -0
  109. data/website-docs/profiles/create.rb +15 -0
  110. data/website-docs/profiles/delete.rb +10 -0
  111. data/website-docs/profiles/get-key.rb +11 -0
  112. data/website-docs/profiles/get.rb +10 -0
  113. data/website-docs/profiles/list-keys.rb +13 -0
  114. data/website-docs/profiles/list.rb +12 -0
  115. data/website-docs/profiles/reset-key.rb +13 -0
  116. data/website-docs/profiles/update.rb +12 -0
  117. data/website-docs/refunds/list.rb +12 -0
  118. data/website-docs/settlements/get.rb +10 -0
  119. data/website-docs/settlements/list-chargebacks.rb +13 -0
  120. data/website-docs/settlements/list-payments.rb +13 -0
  121. data/website-docs/settlements/list-refunds.rb +13 -0
  122. data/website-docs/settlements/list.rb +12 -0
  123. data/website-docs/settlements/next.rb +9 -0
  124. data/website-docs/settlements/open.rb +9 -0
  125. data/website-docs/subscriptions/create.rb +14 -0
  126. data/website-docs/subscriptions/delete.rb +10 -0
  127. data/website-docs/subscriptions/get.rb +10 -0
  128. data/website-docs/subscriptions/list.rb +12 -0
  129. metadata +134 -104
  130. data/lib/mollie/api/client.rb +0 -161
  131. data/lib/mollie/api/client/version.rb +0 -7
  132. data/lib/mollie/api/exception.rb +0 -10
  133. data/lib/mollie/api/object/base.rb +0 -18
  134. data/lib/mollie/api/object/customer.rb +0 -28
  135. data/lib/mollie/api/object/customer/mandate.rb +0 -37
  136. data/lib/mollie/api/object/customer/subscription.rb +0 -69
  137. data/lib/mollie/api/object/invoice.rb +0 -70
  138. data/lib/mollie/api/object/issuer.rb +0 -9
  139. data/lib/mollie/api/object/list.rb +0 -44
  140. data/lib/mollie/api/object/method.rb +0 -42
  141. data/lib/mollie/api/object/organization.rb +0 -28
  142. data/lib/mollie/api/object/payment.rb +0 -137
  143. data/lib/mollie/api/object/payment/refund.rb +0 -47
  144. data/lib/mollie/api/object/permission.rb +0 -12
  145. data/lib/mollie/api/object/profile.rb +0 -78
  146. data/lib/mollie/api/object/profile/apikey.rb +0 -23
  147. data/lib/mollie/api/object/settlement.rb +0 -32
  148. data/lib/mollie/api/resource/base.rb +0 -53
  149. data/lib/mollie/api/resource/customers.rb +0 -11
  150. data/lib/mollie/api/resource/customers/mandates.rb +0 -27
  151. data/lib/mollie/api/resource/customers/payments.rb +0 -27
  152. data/lib/mollie/api/resource/customers/subscriptions.rb +0 -27
  153. data/lib/mollie/api/resource/invoices.rb +0 -11
  154. data/lib/mollie/api/resource/issuers.rb +0 -11
  155. data/lib/mollie/api/resource/methods.rb +0 -11
  156. data/lib/mollie/api/resource/organizations.rb +0 -11
  157. data/lib/mollie/api/resource/payments.rb +0 -11
  158. data/lib/mollie/api/resource/payments/refunds.rb +0 -27
  159. data/lib/mollie/api/resource/permissions.rb +0 -31
  160. data/lib/mollie/api/resource/profiles.rb +0 -11
  161. data/lib/mollie/api/resource/profiles/apikeys.rb +0 -33
  162. data/lib/mollie/api/resource/refunds.rb +0 -11
  163. data/lib/mollie/api/resource/settlements.rb +0 -19
  164. data/lib/mollie/api/resource/settlements/payments.rb +0 -27
  165. data/lib/mollie/api/util.rb +0 -53
  166. data/test/mollie/api/client_test.rb +0 -111
  167. data/test/mollie/api/object/base_test.rb +0 -21
  168. data/test/mollie/api/object/customer/mandate_test.rb +0 -47
  169. data/test/mollie/api/object/customer/subscription_test.rb +0 -70
  170. data/test/mollie/api/object/customer_test.rb +0 -35
  171. data/test/mollie/api/object/invoice_test.rb +0 -59
  172. data/test/mollie/api/object/issuer_test.rb +0 -23
  173. data/test/mollie/api/object/list_test.rb +0 -44
  174. data/test/mollie/api/object/method_test.rb +0 -33
  175. data/test/mollie/api/object/organization_test.rb +0 -45
  176. data/test/mollie/api/object/payment/refund_test.rb +0 -46
  177. data/test/mollie/api/object/payment_test.rb +0 -106
  178. data/test/mollie/api/object/permission_test.rb +0 -25
  179. data/test/mollie/api/object/profile/apikey_test.rb +0 -35
  180. data/test/mollie/api/object/profile_test.rb +0 -72
  181. data/test/mollie/api/object/settlement_test.rb +0 -140
  182. data/test/mollie/api/resource/base_test.rb +0 -83
  183. data/test/mollie/api/resource/customers/mandates_test.rb +0 -23
  184. data/test/mollie/api/resource/customers/payments_test.rb +0 -23
  185. data/test/mollie/api/resource/customers/subscriptions_test.rb +0 -23
  186. data/test/mollie/api/resource/customers_test.rb +0 -13
  187. data/test/mollie/api/resource/invoices_test.rb +0 -13
  188. data/test/mollie/api/resource/issuers_test.rb +0 -13
  189. data/test/mollie/api/resource/methods_test.rb +0 -13
  190. data/test/mollie/api/resource/organizations_test.rb +0 -13
  191. data/test/mollie/api/resource/payments/refunds_test.rb +0 -23
  192. data/test/mollie/api/resource/payments_test.rb +0 -13
  193. data/test/mollie/api/resource/permissions_test.rb +0 -13
  194. data/test/mollie/api/resource/profiles/apikeys_test.rb +0 -23
  195. data/test/mollie/api/resource/profiles_test.rb +0 -13
  196. data/test/mollie/api/resource/settlements_test.rb +0 -13
  197. data/test/mollie/api/util_test.rb +0 -47
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Profiles < Base
5
- def resource_object
6
- Object::Profile
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,33 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Profiles
7
- class ApiKeys < Base
8
- @profile_id = nil
9
-
10
- def resource_object
11
- Object::Profile::ApiKey
12
- end
13
-
14
- def resource_name
15
- profile_id = URI::encode(@profile_id)
16
- "profiles/#{profile_id}/apikeys"
17
- end
18
-
19
- def with(profile_or_id)
20
- @profile_id = profile_or_id.is_a?(Object::Profile) ? profile_or_id.id : profile_or_id
21
- self
22
- end
23
-
24
- def create(mode)
25
- request("POST", mode, {}) { |response|
26
- new_resource_object response
27
- }
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Refunds < Base
5
- def resource_object
6
- Object::Payment::Refund
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,19 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Settlements < Base
5
- def resource_object
6
- Object::Settlement
7
- end
8
-
9
- def next(options = {})
10
- get("next", options)
11
- end
12
-
13
- def open(options = {})
14
- get("open", options)
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,27 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Settlements
7
- class Payments < Base
8
- @settlement_id = nil
9
-
10
- def resource_object
11
- Object::Payment
12
- end
13
-
14
- def resource_name
15
- settlement_id = URI::encode(@settlement_id)
16
- "settlements/#{settlement_id}/payments"
17
- end
18
-
19
- def with(settlement_or_id)
20
- @settlement_id = settlement_or_id.is_a?(Object::Settlement) ? settlement_or_id.id : settlement_or_id
21
- self
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,53 +0,0 @@
1
- module Mollie
2
- module API
3
- module Util
4
- extend self
5
-
6
- def nested_underscore_keys(obj)
7
- if obj.is_a?(Hash)
8
- obj.each_with_object({}) do |(key, value), underscored|
9
- underscored[underscore(key)] = nested_underscore_keys(value)
10
- end
11
- elsif obj.is_a?(Array)
12
- obj.map { |v| nested_underscore_keys(v) }
13
- else
14
- obj
15
- end
16
- end
17
-
18
- def camelize_keys(hash)
19
- hash.each_with_object({}) do |(key, value), camelized|
20
- camelized[camelize(key)] = value
21
- end
22
- end
23
-
24
- def underscore(string)
25
- string.to_s.gsub(/::/, '/').
26
- gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
27
- gsub(/([a-z\d])([A-Z])/, '\1_\2').
28
- tr("-", "_").
29
- downcase.to_s
30
- end
31
-
32
- def camelize(term)
33
- string = term.to_s
34
- string = string.sub(/^(?:(?=\b|[A-Z_])|\w)/) { |match| match.downcase }
35
- string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" }
36
- string.gsub!('/'.freeze, '::'.freeze)
37
- string
38
- end
39
-
40
- def nested_openstruct(obj)
41
- if obj.is_a?(Hash)
42
- obj.each_with_object(OpenStruct.new) do |(key, value), openstructed|
43
- openstructed[key] = nested_openstruct(value)
44
- end
45
- elsif obj.is_a?(Array)
46
- obj.map { |v| nested_openstruct(v) }
47
- else
48
- obj
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,111 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- class ClientTest < Test::Unit::TestCase
6
- def client
7
- Client.new("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM")
8
- end
9
-
10
- def test_initialize
11
- assert_equal "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM", client.api_key
12
-
13
- assert_kind_of Mollie::API::Resource::Customers, client.customers
14
- assert_kind_of Mollie::API::Resource::Customers::Payments, client.customers_payments
15
- assert_kind_of Mollie::API::Resource::Customers::Mandates, client.customers_mandates
16
- assert_kind_of Mollie::API::Resource::Customers::Subscriptions, client.customers_subscriptions
17
- assert_kind_of Mollie::API::Resource::Issuers, client.issuers
18
- assert_kind_of Mollie::API::Resource::Methods, client.methods
19
- assert_kind_of Mollie::API::Resource::Organizations, client.organizations
20
- assert_kind_of Mollie::API::Resource::Payments, client.payments
21
- assert_kind_of Mollie::API::Resource::Payments::Refunds, client.payments_refunds
22
- assert_kind_of Mollie::API::Resource::Permissions, client.permissions
23
- assert_kind_of Mollie::API::Resource::Profiles, client.profiles
24
- assert_kind_of Mollie::API::Resource::Profiles::ApiKeys, client.profiles_api_keys
25
- assert_kind_of Mollie::API::Resource::Settlements, client.settlements
26
- end
27
-
28
- def test_setting_the_api_endpoint
29
- client = self.client
30
- client.api_endpoint = "http://my.endpoint/"
31
- assert_equal "http://my.endpoint", client.api_endpoint
32
- end
33
-
34
- def test_perform_http_call_defaults
35
- stub_request(:any, "https://api.mollie.nl/v1/my-method")
36
- .with(:headers => { 'Accept' => 'application/json',
37
- 'Content-type' => 'application/json',
38
- 'Authorization' => 'Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM',
39
- 'User-Agent' => /^Mollie\/#{Mollie::API::Client::VERSION} Ruby\/#{RUBY_VERSION} OpenSSL\/.*$/ })
40
- .to_return(:status => 200, :body => "{}", :headers => {})
41
- client.perform_http_call("GET", "my-method", nil, {})
42
- end
43
-
44
- def test_get_request_convert_to_camel_case
45
- stub_request(:get, "https://api.mollie.nl/v1/my-method?myParam=ok")
46
- .to_return(:status => 200, :body => "{}", :headers => {})
47
- client.perform_http_call("GET", "my-method", nil, {}, {my_param: "ok"})
48
- end
49
-
50
- def test_get_response_convert_to_snake_case
51
- response_body = <<-JSON
52
- {
53
- "someCamelCased" : {
54
- "alsoNested": "camelCaseValue"
55
- },
56
- "evenLists": [
57
- {
58
- "withCamelCase": "camelCaseValue"
59
- }
60
- ]
61
- }
62
- JSON
63
-
64
- expected_response = {
65
- 'some_camel_cased' =>
66
- { 'also_nested' => "camelCaseValue" },
67
- 'even_lists' => [
68
- { 'with_camel_case' => "camelCaseValue" }
69
- ]
70
- }
71
-
72
- stub_request(:get, "https://api.mollie.nl/v1/my-method")
73
- .to_return(:status => 200, :body => response_body, :headers => {})
74
- response = client.perform_http_call("GET", "my-method", nil, {})
75
-
76
- assert_equal expected_response, response
77
- end
78
-
79
- def test_post_requests_convert_to_camel_case
80
- expected_body = %{{"redirectUrl":"my-url"}}
81
-
82
- stub_request(:post, "https://api.mollie.nl/v1/my-method")
83
- .with(body: expected_body)
84
- .to_return(:status => 200, :body => "{}", :headers => {})
85
-
86
- client.perform_http_call("POST", "my-method", nil, redirect_url: "my-url")
87
- end
88
-
89
- def test_delete_requests_with_no_content_responses
90
- stub_request(:delete, "https://api.mollie.nl/v1/my-method/1")
91
- .to_return(:status => 204, :body => "", :headers => {})
92
-
93
- client.perform_http_call("DELETE", "my-method", "1")
94
- end
95
-
96
- def test_error_response
97
- response = <<-JSON
98
- {"error": {"message": "Error on field", "field": "my-field"}}
99
- JSON
100
- stub_request(:post, "https://api.mollie.nl/v1/my-method")
101
- .to_return(:status => 500, :body => response, :headers => {})
102
-
103
- e = assert_raise Mollie::API::Exception.new("Error on field") do
104
- client.perform_http_call("POST", "my-method", nil, {})
105
- end
106
-
107
- assert_equal "my-field", e.field
108
- end
109
- end
110
- end
111
- end
@@ -1,21 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class TestObject < Base
7
- attr_accessor :my_field
8
- end
9
-
10
- class BaseTest < Test::Unit::TestCase
11
- def test_setting_attributes
12
- attributes = {my_field: "my value", extra_field: "extra"}
13
- object = TestObject.new(attributes)
14
-
15
- assert_equal "my value", object.my_field
16
- assert_equal attributes, object.attributes
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class Customer
7
- class MandateTest < Test::Unit::TestCase
8
- def test_setting_attributes
9
- attributes = {
10
- id: "mdt_qtUgejVgMN",
11
- status: "valid",
12
- method: "creditcard",
13
- customer_id: "cst_R6JLAuqEgm",
14
- details: {
15
- card_holder: "John Doe",
16
- card_expiry_date: "2016-03-31"
17
- },
18
- created_datetime: "2016-04-13T11:32:38.0Z"
19
- }
20
-
21
- mandate = Mandate.new(attributes)
22
-
23
- assert_equal 'mdt_qtUgejVgMN', mandate.id
24
- assert_equal 'valid', mandate.status
25
- assert_equal 'creditcard', mandate.method
26
- assert_equal 'cst_R6JLAuqEgm', mandate.customer_id
27
- assert_equal Time.parse('2016-04-13T11:32:38.0Z'), mandate.created_datetime
28
-
29
- assert_equal 'John Doe', mandate.details.card_holder
30
- assert_equal '2016-03-31', mandate.details.card_expiry_date
31
- assert_equal nil, mandate.details.non_existing
32
- end
33
-
34
- def test_valid_invalid
35
- mandate = Mandate.new(status: Mandate::STATUS_VALID)
36
- assert mandate.valid?
37
- assert !mandate.invalid?
38
-
39
- mandate = Mandate.new(status: Mandate::STATUS_INVALID)
40
- assert !mandate.valid?
41
- assert mandate.invalid?
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,70 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class Customer
7
- class SubscriptionTest < Test::Unit::TestCase
8
- def test_setting_attributes
9
- attributes = {
10
- id: "sub_rVKGtNd6s3",
11
- customer_id: "cst_stTC2WHAuS",
12
- mode: "live",
13
- created_datetime: "2016-06-01T12:23:34.0Z",
14
- status: "active",
15
- amount: "25.00",
16
- times: 4,
17
- interval: "3 months",
18
- description: "Quarterly payment",
19
- method: "creditcard",
20
- cancelled_datetime: "2016-06-01T12:23:34.0Z",
21
- links: {
22
- 'webhook_url' => "https://example.org/payments/webhook"
23
- }
24
- }
25
-
26
- subscription = Subscription.new(attributes)
27
-
28
- assert_equal "sub_rVKGtNd6s3", subscription.id
29
- assert_equal "cst_stTC2WHAuS", subscription.customer_id
30
- assert_equal "live", subscription.mode
31
- assert_equal Time.parse("2016-06-01T12:23:34.0Z"), subscription.created_datetime
32
- assert_equal "active", subscription.status
33
- assert_equal BigDecimal.new(25, 2), subscription.amount
34
- assert_equal 4, subscription.times
35
- assert_equal "3 months", subscription.interval
36
- assert_equal "Quarterly payment", subscription.description
37
- assert_equal "creditcard", subscription.method
38
- assert_equal Time.parse("2016-06-01T12:23:34.0Z"), subscription.cancelled_datetime
39
- assert_equal "https://example.org/payments/webhook", subscription.webhook_url
40
- end
41
-
42
- def test_status_active
43
- assert Subscription.new(status: Subscription::STATUS_ACTIVE).active?
44
- assert !Subscription.new(status: 'not-active').active?
45
- end
46
-
47
- def test_status_pending
48
- assert Subscription.new(status: Subscription::STATUS_PENDING).pending?
49
- assert !Subscription.new(status: 'not-pending').pending?
50
- end
51
-
52
- def test_status_suspended
53
- assert Subscription.new(status: Subscription::STATUS_SUSPENDED).suspended?
54
- assert !Subscription.new(status: 'not-suspended').suspended?
55
- end
56
-
57
- def test_status_cancelled
58
- assert Subscription.new(status: Subscription::STATUS_CANCELLED).cancelled?
59
- assert !Subscription.new(status: 'not-cancelled').cancelled?
60
- end
61
-
62
- def test_status_completed
63
- assert Subscription.new(status: Subscription::STATUS_COMPLETED).completed?
64
- assert !Subscription.new(status: 'not-completed').completed?
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,35 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class CustomerTest < Test::Unit::TestCase
7
- def test_setting_attributes
8
- attributes = {
9
- id: 'cst_vsKJpSsabw',
10
- mode: 'test',
11
- name: 'Customer A',
12
- email: 'customer@example.org',
13
- locale: 'nl_NL',
14
- metadata: { my_field: 'value' },
15
- recently_used_methods: 'creditcard',
16
- created_datetime: '2016-04-06T13:23:21.0Z'
17
- }
18
-
19
- customer = Customer.new(attributes)
20
-
21
- assert_equal 'cst_vsKJpSsabw', customer.id
22
- assert_equal 'test', customer.mode
23
- assert_equal 'Customer A', customer.name
24
- assert_equal 'customer@example.org', customer.email
25
- assert_equal 'nl_NL', customer.locale
26
- assert_equal ['creditcard'], customer.recently_used_methods
27
- assert_equal Time.parse('2016-04-06T13:23:21.0Z'), customer.created_datetime
28
-
29
- assert_equal 'value', customer.metadata.my_field
30
- assert_equal nil, customer.metadata.non_existing
31
- end
32
- end
33
- end
34
- end
35
- end