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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +7 -0
- data/README.md +37 -8
- data/examples/apis/api_docs.rb +1 -1
- data/examples/apis/chargebacks.rb +17 -0
- data/examples/apis/connect.rb +1 -1
- data/examples/apis/customers.rb +7 -6
- data/examples/apis/invoices.rb +2 -2
- data/examples/apis/issuers.rb +2 -2
- data/examples/apis/mandates.rb +5 -5
- data/examples/apis/methods.rb +2 -2
- data/examples/apis/organizations.rb +1 -1
- data/examples/apis/payments.rb +43 -9
- data/examples/apis/permissions.rb +2 -2
- data/examples/apis/profiles.rb +7 -7
- data/examples/apis/refunds.rb +1 -1
- data/examples/apis/settlements.rb +5 -5
- data/examples/apis/subscriptions.rb +7 -7
- data/examples/config.ru +6 -7
- data/lib/{mollie/api/cacert.pem → cacert.pem} +0 -0
- data/lib/mollie-api-ruby.rb +1 -0
- data/lib/mollie.rb +39 -0
- data/lib/mollie/base.rb +91 -0
- data/lib/mollie/chargeback.rb +36 -0
- data/lib/mollie/client.rb +125 -0
- data/lib/mollie/customer.rb +36 -0
- data/lib/mollie/customer/mandate.rb +33 -0
- data/lib/mollie/customer/payment.rb +6 -0
- data/lib/mollie/customer/subscription.rb +65 -0
- data/lib/mollie/exception.rb +8 -0
- data/lib/mollie/invoice.rb +66 -0
- data/lib/mollie/issuer.rb +5 -0
- data/lib/mollie/list.rb +40 -0
- data/lib/mollie/method.rb +38 -0
- data/lib/mollie/organization.rb +24 -0
- data/lib/mollie/payment.rb +142 -0
- data/lib/mollie/payment/chargeback.rb +6 -0
- data/lib/mollie/payment/refund.rb +6 -0
- data/lib/mollie/permission.rb +26 -0
- data/lib/mollie/profile.rb +78 -0
- data/lib/mollie/profile/api_key.rb +19 -0
- data/lib/mollie/refund.rb +42 -0
- data/lib/mollie/relation.rb +36 -0
- data/lib/mollie/settlement.rb +36 -0
- data/lib/mollie/settlement/chargeback.rb +6 -0
- data/lib/mollie/settlement/payment.rb +6 -0
- data/lib/mollie/settlement/refund.rb +6 -0
- data/lib/mollie/util.rb +57 -0
- data/lib/mollie/version.rb +3 -0
- data/mollie.gemspec +2 -2
- data/test/helper.rb +5 -1
- data/test/mollie/base_test.rb +182 -0
- data/test/mollie/chargeback_test.rb +35 -0
- data/test/mollie/client_test.rb +122 -0
- data/test/mollie/customer/mandate_test.rb +43 -0
- data/test/mollie/customer/payment_test.rb +23 -0
- data/test/mollie/customer/subscription_test.rb +66 -0
- data/test/mollie/customer_test.rb +128 -0
- data/test/mollie/invoice_test.rb +55 -0
- data/test/mollie/issuer_test.rb +19 -0
- data/test/mollie/list_test.rb +40 -0
- data/test/mollie/method_test.rb +29 -0
- data/test/mollie/organization_test.rb +41 -0
- data/test/mollie/payment/chargeback_test.rb +22 -0
- data/test/mollie/payment/refund_test.rb +22 -0
- data/test/mollie/payment_test.rb +161 -0
- data/test/mollie/permission_test.rb +21 -0
- data/test/mollie/profile/apikey_test.rb +31 -0
- data/test/mollie/profile_test.rb +98 -0
- data/test/mollie/refund_test.rb +40 -0
- data/test/mollie/settlement/chargeback_test.rb +22 -0
- data/test/mollie/settlement/payment_test.rb +22 -0
- data/test/mollie/settlement/refund_test.rb +22 -0
- data/test/mollie/settlement_test.rb +156 -0
- data/website-docs/chargebacks/list-all.rb +12 -0
- data/website-docs/connect/authorize.rb +15 -0
- data/website-docs/connect/tokens.rb +14 -0
- data/website-docs/customers/create-payment.rb +13 -0
- data/website-docs/customers/create.rb +12 -0
- data/website-docs/customers/delete.rb +10 -0
- data/website-docs/customers/get.rb +10 -0
- data/website-docs/customers/list-payments.rb +10 -0
- data/website-docs/customers/list.rb +12 -0
- data/website-docs/customers/update.rb +11 -0
- data/website-docs/invoices/get.rb +10 -0
- data/website-docs/invoices/list.rb +12 -0
- data/website-docs/issuers/get.rb +10 -0
- data/website-docs/issuers/list.rb +12 -0
- data/website-docs/mandates/create.rb +16 -0
- data/website-docs/mandates/delete.rb +10 -0
- data/website-docs/mandates/get.rb +10 -0
- data/website-docs/mandates/list.rb +12 -0
- data/website-docs/methods/get.rb +10 -0
- data/website-docs/methods/list.rb +12 -0
- data/website-docs/organisations/get.rb +10 -0
- data/website-docs/payments/create-refund.rb +14 -0
- data/website-docs/payments/create.rb +16 -0
- data/website-docs/payments/delete-refund.rb +13 -0
- data/website-docs/payments/delete.rb +12 -0
- data/website-docs/payments/get-chargeback.rb +11 -0
- data/website-docs/payments/get-refund.rb +11 -0
- data/website-docs/payments/get.rb +10 -0
- data/website-docs/payments/list-chargeback.rb +13 -0
- data/website-docs/payments/list-refunds.rb +13 -0
- data/website-docs/payments/list.rb +12 -0
- data/website-docs/payments/payment-webhook.rb +21 -0
- data/website-docs/permissions/get.rb +10 -0
- data/website-docs/permissions/list.rb +12 -0
- data/website-docs/profiles/create.rb +15 -0
- data/website-docs/profiles/delete.rb +10 -0
- data/website-docs/profiles/get-key.rb +11 -0
- data/website-docs/profiles/get.rb +10 -0
- data/website-docs/profiles/list-keys.rb +13 -0
- data/website-docs/profiles/list.rb +12 -0
- data/website-docs/profiles/reset-key.rb +13 -0
- data/website-docs/profiles/update.rb +12 -0
- data/website-docs/refunds/list.rb +12 -0
- data/website-docs/settlements/get.rb +10 -0
- data/website-docs/settlements/list-chargebacks.rb +13 -0
- data/website-docs/settlements/list-payments.rb +13 -0
- data/website-docs/settlements/list-refunds.rb +13 -0
- data/website-docs/settlements/list.rb +12 -0
- data/website-docs/settlements/next.rb +9 -0
- data/website-docs/settlements/open.rb +9 -0
- data/website-docs/subscriptions/create.rb +14 -0
- data/website-docs/subscriptions/delete.rb +10 -0
- data/website-docs/subscriptions/get.rb +10 -0
- data/website-docs/subscriptions/list.rb +12 -0
- metadata +134 -104
- data/lib/mollie/api/client.rb +0 -161
- data/lib/mollie/api/client/version.rb +0 -7
- data/lib/mollie/api/exception.rb +0 -10
- data/lib/mollie/api/object/base.rb +0 -18
- data/lib/mollie/api/object/customer.rb +0 -28
- data/lib/mollie/api/object/customer/mandate.rb +0 -37
- data/lib/mollie/api/object/customer/subscription.rb +0 -69
- data/lib/mollie/api/object/invoice.rb +0 -70
- data/lib/mollie/api/object/issuer.rb +0 -9
- data/lib/mollie/api/object/list.rb +0 -44
- data/lib/mollie/api/object/method.rb +0 -42
- data/lib/mollie/api/object/organization.rb +0 -28
- data/lib/mollie/api/object/payment.rb +0 -137
- data/lib/mollie/api/object/payment/refund.rb +0 -47
- data/lib/mollie/api/object/permission.rb +0 -12
- data/lib/mollie/api/object/profile.rb +0 -78
- data/lib/mollie/api/object/profile/apikey.rb +0 -23
- data/lib/mollie/api/object/settlement.rb +0 -32
- data/lib/mollie/api/resource/base.rb +0 -53
- data/lib/mollie/api/resource/customers.rb +0 -11
- data/lib/mollie/api/resource/customers/mandates.rb +0 -27
- data/lib/mollie/api/resource/customers/payments.rb +0 -27
- data/lib/mollie/api/resource/customers/subscriptions.rb +0 -27
- data/lib/mollie/api/resource/invoices.rb +0 -11
- data/lib/mollie/api/resource/issuers.rb +0 -11
- data/lib/mollie/api/resource/methods.rb +0 -11
- data/lib/mollie/api/resource/organizations.rb +0 -11
- data/lib/mollie/api/resource/payments.rb +0 -11
- data/lib/mollie/api/resource/payments/refunds.rb +0 -27
- data/lib/mollie/api/resource/permissions.rb +0 -31
- data/lib/mollie/api/resource/profiles.rb +0 -11
- data/lib/mollie/api/resource/profiles/apikeys.rb +0 -33
- data/lib/mollie/api/resource/refunds.rb +0 -11
- data/lib/mollie/api/resource/settlements.rb +0 -19
- data/lib/mollie/api/resource/settlements/payments.rb +0 -27
- data/lib/mollie/api/util.rb +0 -53
- data/test/mollie/api/client_test.rb +0 -111
- data/test/mollie/api/object/base_test.rb +0 -21
- data/test/mollie/api/object/customer/mandate_test.rb +0 -47
- data/test/mollie/api/object/customer/subscription_test.rb +0 -70
- data/test/mollie/api/object/customer_test.rb +0 -35
- data/test/mollie/api/object/invoice_test.rb +0 -59
- data/test/mollie/api/object/issuer_test.rb +0 -23
- data/test/mollie/api/object/list_test.rb +0 -44
- data/test/mollie/api/object/method_test.rb +0 -33
- data/test/mollie/api/object/organization_test.rb +0 -45
- data/test/mollie/api/object/payment/refund_test.rb +0 -46
- data/test/mollie/api/object/payment_test.rb +0 -106
- data/test/mollie/api/object/permission_test.rb +0 -25
- data/test/mollie/api/object/profile/apikey_test.rb +0 -35
- data/test/mollie/api/object/profile_test.rb +0 -72
- data/test/mollie/api/object/settlement_test.rb +0 -140
- data/test/mollie/api/resource/base_test.rb +0 -83
- data/test/mollie/api/resource/customers/mandates_test.rb +0 -23
- data/test/mollie/api/resource/customers/payments_test.rb +0 -23
- data/test/mollie/api/resource/customers/subscriptions_test.rb +0 -23
- data/test/mollie/api/resource/customers_test.rb +0 -13
- data/test/mollie/api/resource/invoices_test.rb +0 -13
- data/test/mollie/api/resource/issuers_test.rb +0 -13
- data/test/mollie/api/resource/methods_test.rb +0 -13
- data/test/mollie/api/resource/organizations_test.rb +0 -13
- data/test/mollie/api/resource/payments/refunds_test.rb +0 -23
- data/test/mollie/api/resource/payments_test.rb +0 -13
- data/test/mollie/api/resource/permissions_test.rb +0 -13
- data/test/mollie/api/resource/profiles/apikeys_test.rb +0 -23
- data/test/mollie/api/resource/profiles_test.rb +0 -13
- data/test/mollie/api/resource/settlements_test.rb +0 -13
- data/test/mollie/api/util_test.rb +0 -47
@@ -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,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
|
data/lib/mollie/api/util.rb
DELETED
@@ -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
|