mollie-api-ruby 2.2.1 → 3.1.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 (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