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.
- 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
|