mollie-api-ruby 3.1.5 → 4.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +0 -3
- data/CHANGELOG.md +6 -0
- data/README.md +63 -119
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/migration_v2_2_x.md +67 -0
- data/docs/migration_v3_x.md +227 -0
- data/examples/chargebacks/get.rb +4 -0
- data/examples/chargebacks/list.rb +1 -0
- data/{website-docs → examples}/connect/authorize.rb +3 -2
- data/{website-docs → examples}/connect/tokens.rb +1 -1
- data/examples/customers/create-payment.rb +6 -0
- data/examples/customers/create.rb +5 -0
- data/examples/customers/delete.rb +1 -0
- data/examples/customers/get.rb +1 -0
- data/examples/customers/list-payments.rb +1 -0
- data/examples/customers/list.rb +1 -0
- data/examples/customers/update.rb +4 -0
- data/examples/invoices/get.rb +1 -0
- data/examples/invoices/list.rb +1 -0
- data/examples/mandates/create.rb +9 -0
- data/examples/mandates/delete.rb +1 -0
- data/examples/mandates/get.rb +1 -0
- data/examples/mandates/list.rb +1 -0
- data/examples/methods/get.rb +4 -0
- data/examples/methods/list.rb +4 -0
- data/examples/organisations/get-current.rb +1 -0
- data/examples/organisations/get.rb +1 -0
- data/examples/payments/create.rb +9 -0
- data/examples/payments/delete.rb +1 -0
- data/examples/payments/get-customer.rb +2 -0
- data/examples/payments/get-mandate.rb +2 -0
- data/examples/payments/get-settlement.rb +2 -0
- data/examples/payments/get-subscription.rb +2 -0
- data/examples/payments/get.rb +1 -0
- data/examples/payments/list.rb +1 -0
- data/examples/payments/webhook.rb +12 -0
- data/examples/permissions/get.rb +1 -0
- data/examples/permissions/list.rb +1 -0
- data/examples/profiles/create.rb +8 -0
- data/examples/profiles/delete.rb +1 -0
- data/examples/profiles/get.rb +1 -0
- data/examples/profiles/list-chargebacks.rb +2 -0
- data/examples/profiles/list-methods.rb +2 -0
- data/examples/profiles/list-payments.rb +2 -0
- data/examples/profiles/list-refunds.rb +2 -0
- data/examples/profiles/list.rb +1 -0
- data/examples/profiles/update.rb +5 -0
- data/examples/refunds/create.rb +5 -0
- data/examples/refunds/delete.rb +4 -0
- data/examples/refunds/get-payment.rb +2 -0
- data/examples/refunds/get.rb +4 -0
- data/examples/refunds/list.rb +1 -0
- data/examples/settlements/get.rb +1 -0
- data/examples/settlements/list-chargebacks.rb +1 -0
- data/examples/settlements/list-payments.rb +1 -0
- data/examples/settlements/list-refunds.rb +1 -0
- data/examples/settlements/list.rb +1 -0
- data/examples/settlements/next.rb +1 -0
- data/examples/settlements/open.rb +1 -0
- data/examples/subscriptions/create.rb +8 -0
- data/examples/subscriptions/delete.rb +4 -0
- data/examples/subscriptions/get.rb +4 -0
- data/examples/subscriptions/list.rb +1 -0
- data/examples/subscriptions/update.rb +5 -0
- data/lib/cacert.pem +168 -48
- data/lib/mollie.rb +1 -3
- data/lib/mollie/amount.rb +20 -0
- data/lib/mollie/base.rb +9 -8
- data/lib/mollie/chargeback.rb +25 -15
- data/lib/mollie/client.rb +33 -13
- data/lib/mollie/customer.rb +9 -14
- data/lib/mollie/customer/mandate.rb +17 -5
- data/lib/mollie/customer/subscription.rb +14 -15
- data/lib/mollie/exception.rb +15 -3
- data/lib/mollie/invoice.rb +30 -26
- data/lib/mollie/list.rb +27 -18
- data/lib/mollie/method.rb +17 -25
- data/lib/mollie/organization.rb +5 -11
- data/lib/mollie/payment.rb +89 -61
- data/lib/mollie/permission.rb +0 -1
- data/lib/mollie/profile.rb +18 -13
- data/lib/mollie/refund.rb +27 -7
- data/lib/mollie/settlement.rb +50 -9
- data/lib/mollie/util.rb +11 -0
- data/lib/mollie/version.rb +1 -1
- data/mollie-api-ruby.gemspec +0 -7
- data/test/mollie/amount_test.rb +30 -0
- data/test/mollie/base_test.rb +44 -44
- data/test/mollie/chargeback_test.rb +78 -17
- data/test/mollie/client_test.rb +29 -12
- data/test/mollie/customer/mandate_test.rb +85 -9
- data/test/mollie/customer/payment_test.rb +2 -2
- data/test/mollie/customer/subscription_test.rb +71 -20
- data/test/mollie/customer_test.rb +17 -89
- data/test/mollie/invoice_test.rb +40 -24
- data/test/mollie/list_test.rb +62 -18
- data/test/mollie/method_test.rb +2 -8
- data/test/mollie/organization_test.rb +28 -23
- data/test/mollie/payment/chargeback_test.rb +2 -3
- data/test/mollie/payment/refund_test.rb +2 -3
- data/test/mollie/payment_test.rb +272 -86
- data/test/mollie/permission_test.rb +0 -2
- data/test/mollie/profile_test.rb +129 -35
- data/test/mollie/refund_test.rb +90 -10
- data/test/mollie/settlement/chargeback_test.rb +2 -4
- data/test/mollie/settlement/payment_test.rb +2 -2
- data/test/mollie/settlement/refund_test.rb +2 -3
- data/test/mollie/settlement_test.rb +199 -98
- data/test/mollie/util_test.rb +31 -0
- metadata +96 -239
- data/examples/apis/api_docs.rb +0 -37
- data/examples/apis/chargebacks.rb +0 -17
- data/examples/apis/connect.rb +0 -58
- data/examples/apis/customers.rb +0 -116
- data/examples/apis/invoices.rb +0 -38
- data/examples/apis/issuers.rb +0 -35
- data/examples/apis/mandates.rb +0 -83
- data/examples/apis/methods.rb +0 -50
- data/examples/apis/organizations.rb +0 -16
- data/examples/apis/payments.rb +0 -174
- data/examples/apis/permissions.rb +0 -32
- data/examples/apis/profiles.rb +0 -126
- data/examples/apis/refunds.rb +0 -17
- data/examples/apis/settlements.rb +0 -84
- data/examples/apis/subscriptions.rb +0 -165
- data/examples/config.ru +0 -57
- data/examples/public/images/collapse.gif +0 -0
- data/examples/public/images/expand.gif +0 -0
- data/examples/public/images/explorer_icons.png +0 -0
- data/examples/public/images/favicon-16x16.png +0 -0
- data/examples/public/images/favicon-32x32.png +0 -0
- data/examples/public/images/favicon.ico +0 -0
- data/examples/public/images/logo_small.png +0 -0
- data/examples/public/images/pet_store_api.png +0 -0
- data/examples/public/images/throbber.gif +0 -0
- data/examples/public/images/wordnik_api.png +0 -0
- data/examples/public/index.html +0 -101
- data/examples/public/javascripts/lib/backbone-min.js +0 -1
- data/examples/public/javascripts/lib/es5-shim.js +0 -1
- data/examples/public/javascripts/lib/handlebars-4.0.5.js +0 -3
- data/examples/public/javascripts/lib/highlight.9.1.0.pack.js +0 -1
- data/examples/public/javascripts/lib/highlight.9.1.0.pack_extended.js +0 -1
- data/examples/public/javascripts/lib/jquery-1.8.0.min.js +0 -3
- data/examples/public/javascripts/lib/jquery.ba-bbq.min.js +0 -1
- data/examples/public/javascripts/lib/jquery.slideto.min.js +0 -1
- data/examples/public/javascripts/lib/jquery.wiggle.min.js +0 -1
- data/examples/public/javascripts/lib/js-yaml.min.js +0 -2
- data/examples/public/javascripts/lib/jsoneditor.min.js +0 -5
- data/examples/public/javascripts/lib/lodash.min.js +0 -2
- data/examples/public/javascripts/lib/marked.js +0 -1
- data/examples/public/javascripts/lib/object-assign-pollyfill.js +0 -1
- data/examples/public/javascripts/lib/sanitize-html.min.js +0 -4
- data/examples/public/javascripts/lib/swagger-oauth.js +0 -1
- data/examples/public/javascripts/swagger-ui.js +0 -25378
- data/examples/public/javascripts/swagger-ui.min.js +0 -15
- data/examples/public/javascripts/swagger_docs.js +0 -14
- data/examples/public/o2c.html +0 -20
- data/examples/public/stylesheets/reset.css +0 -1
- data/examples/public/stylesheets/screen.css +0 -1545
- data/examples/public/stylesheets/swagger_docs.css +0 -4
- data/examples/public/stylesheets/typography.css +0 -0
- data/lib/mollie/issuer.rb +0 -5
- data/lib/mollie/profile/api_key.rb +0 -19
- data/lib/mollie/relation.rb +0 -36
- data/test/mollie/issuer_test.rb +0 -19
- data/test/mollie/profile/apikey_test.rb +0 -31
- data/website-docs/chargebacks/list-all.rb +0 -12
- data/website-docs/customers/create-payment.rb +0 -13
- data/website-docs/customers/create.rb +0 -12
- data/website-docs/customers/delete.rb +0 -10
- data/website-docs/customers/get.rb +0 -10
- data/website-docs/customers/list-payments.rb +0 -10
- data/website-docs/customers/list.rb +0 -12
- data/website-docs/customers/update.rb +0 -11
- data/website-docs/invoices/get.rb +0 -10
- data/website-docs/invoices/list.rb +0 -12
- data/website-docs/issuers/get.rb +0 -10
- data/website-docs/issuers/list.rb +0 -12
- data/website-docs/mandates/create.rb +0 -16
- data/website-docs/mandates/delete.rb +0 -10
- data/website-docs/mandates/get.rb +0 -10
- data/website-docs/mandates/list.rb +0 -12
- data/website-docs/methods/get.rb +0 -10
- data/website-docs/methods/list.rb +0 -12
- data/website-docs/organisations/get.rb +0 -10
- data/website-docs/payments/create-refund.rb +0 -14
- data/website-docs/payments/create.rb +0 -16
- data/website-docs/payments/delete-refund.rb +0 -13
- data/website-docs/payments/delete.rb +0 -12
- data/website-docs/payments/get-chargeback.rb +0 -11
- data/website-docs/payments/get-refund.rb +0 -11
- data/website-docs/payments/get.rb +0 -10
- data/website-docs/payments/list-chargeback.rb +0 -13
- data/website-docs/payments/list-refunds.rb +0 -13
- data/website-docs/payments/list.rb +0 -12
- data/website-docs/payments/payment-webhook.rb +0 -21
- data/website-docs/permissions/get.rb +0 -10
- data/website-docs/permissions/list.rb +0 -12
- data/website-docs/profiles/create.rb +0 -15
- data/website-docs/profiles/delete.rb +0 -10
- data/website-docs/profiles/get-key.rb +0 -11
- data/website-docs/profiles/get.rb +0 -10
- data/website-docs/profiles/list-keys.rb +0 -13
- data/website-docs/profiles/list.rb +0 -12
- data/website-docs/profiles/reset-key.rb +0 -13
- data/website-docs/profiles/update.rb +0 -12
- data/website-docs/refunds/list.rb +0 -12
- data/website-docs/settlements/get.rb +0 -10
- data/website-docs/settlements/list-chargebacks.rb +0 -13
- data/website-docs/settlements/list-payments.rb +0 -13
- data/website-docs/settlements/list-refunds.rb +0 -13
- data/website-docs/settlements/list.rb +0 -12
- data/website-docs/settlements/next.rb +0 -9
- data/website-docs/settlements/open.rb +0 -9
- data/website-docs/subscriptions/create.rb +0 -14
- data/website-docs/subscriptions/delete.rb +0 -10
- data/website-docs/subscriptions/get.rb +0 -10
- data/website-docs/subscriptions/list.rb +0 -12
data/lib/mollie/settlement.rb
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Settlement < Base
|
3
|
+
STATUS_OPEN = "open"
|
4
|
+
STATUS_PENDING = "pending"
|
5
|
+
STATUS_PAIDOUT = "paidout"
|
6
|
+
STATUS_FAILED = "failed"
|
7
|
+
|
3
8
|
attr_accessor :id,
|
4
9
|
:reference,
|
5
|
-
:
|
10
|
+
:created_at,
|
11
|
+
:settled_at,
|
12
|
+
:status,
|
6
13
|
:amount,
|
7
14
|
:periods,
|
8
|
-
:
|
9
|
-
:
|
10
|
-
|
15
|
+
:invoice_id,
|
16
|
+
:_links
|
17
|
+
|
18
|
+
alias_method :links, :_links
|
11
19
|
|
12
20
|
def self.open(options = {})
|
13
21
|
get("open", options)
|
@@ -17,20 +25,53 @@ module Mollie
|
|
17
25
|
get("next", options)
|
18
26
|
end
|
19
27
|
|
20
|
-
def
|
21
|
-
|
28
|
+
def open?
|
29
|
+
status == STATUS_OPEN
|
30
|
+
end
|
31
|
+
|
32
|
+
def pending?
|
33
|
+
status == STATUS_PENDING
|
34
|
+
end
|
35
|
+
|
36
|
+
def paidout?
|
37
|
+
status == STATUS_PAIDOUT
|
38
|
+
end
|
39
|
+
|
40
|
+
def failed?
|
41
|
+
status == STATUS_FAILED
|
42
|
+
end
|
43
|
+
|
44
|
+
def created_at=(created_at)
|
45
|
+
@created_at = Time.parse(created_at.to_s) rescue nil
|
46
|
+
end
|
47
|
+
|
48
|
+
def settled_at=(settled_at)
|
49
|
+
@settled_at = Time.parse(settled_at.to_s) rescue nil
|
22
50
|
end
|
23
51
|
|
24
52
|
def amount=(amount)
|
25
|
-
@amount =
|
53
|
+
@amount = Mollie::Amount.new(amount)
|
26
54
|
end
|
27
55
|
|
28
56
|
def periods=(periods)
|
29
57
|
@periods = Util.nested_openstruct(periods) if periods.is_a?(Hash)
|
30
58
|
end
|
31
59
|
|
32
|
-
def payments
|
33
|
-
|
60
|
+
def payments(options = {})
|
61
|
+
Settlement::Payment.all(options.merge(settlement_id: id))
|
62
|
+
end
|
63
|
+
|
64
|
+
def refunds(options = {})
|
65
|
+
Settlement::Refund.all(options.merge(settlement_id: id))
|
66
|
+
end
|
67
|
+
|
68
|
+
def chargebacks(options = {})
|
69
|
+
Settlement::Chargeback.all(options.merge(settlement_id: id))
|
70
|
+
end
|
71
|
+
|
72
|
+
def invoice(options = {})
|
73
|
+
return if invoice_id.nil?
|
74
|
+
Invoice.get(invoice_id, options)
|
34
75
|
end
|
35
76
|
end
|
36
77
|
end
|
data/lib/mollie/util.rb
CHANGED
@@ -53,5 +53,16 @@ module Mollie
|
|
53
53
|
obj
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
def extract_url(links, type)
|
58
|
+
links && links[type] && links[type]['href']
|
59
|
+
end
|
60
|
+
|
61
|
+
def extract_id(links, type)
|
62
|
+
href = extract_url(links, type)
|
63
|
+
return if href.nil?
|
64
|
+
uri = URI.parse(href)
|
65
|
+
File.basename(uri.path)
|
66
|
+
end
|
56
67
|
end
|
57
68
|
end
|
data/lib/mollie/version.rb
CHANGED
data/mollie-api-ruby.gemspec
CHANGED
@@ -23,11 +23,4 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency("rake")
|
24
24
|
s.add_development_dependency("test-unit")
|
25
25
|
s.add_development_dependency("webmock")
|
26
|
-
s.add_development_dependency("thin")
|
27
|
-
s.add_development_dependency("sinatra")
|
28
|
-
s.add_development_dependency("sinatra-contrib")
|
29
|
-
s.add_development_dependency("sinatra-cross_origin")
|
30
|
-
s.add_development_dependency("rack-oauth2")
|
31
|
-
s.add_development_dependency("swagger-blocks")
|
32
|
-
s.add_development_dependency("ngrok-tunnel")
|
33
26
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
module Mollie
|
4
|
+
class AmountTest < Test::Unit::TestCase
|
5
|
+
def test_value
|
6
|
+
amount = Amount.new('value' => '42.10', 'currency' => 'EUR')
|
7
|
+
assert_equal 0.421e2, amount.value
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_currency
|
11
|
+
amount = Amount.new('currency' => 'EUR')
|
12
|
+
assert_equal 'EUR', amount.currency
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_to_hash
|
16
|
+
amount = Amount.new('value' => '42.10', 'currency' => 'EUR')
|
17
|
+
|
18
|
+
assert_equal(
|
19
|
+
{ value: '42.10', currency: 'EUR' },
|
20
|
+
amount.to_h
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_nil
|
25
|
+
amount = Mollie::Amount.new(nil)
|
26
|
+
assert_nil amount.value
|
27
|
+
assert_nil amount.currency
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/test/mollie/base_test.rb
CHANGED
@@ -2,10 +2,10 @@ require 'helper'
|
|
2
2
|
|
3
3
|
module Mollie
|
4
4
|
class TestObject < Base
|
5
|
-
attr_accessor :id, :
|
5
|
+
attr_accessor :id, :foo, :my_field
|
6
6
|
|
7
7
|
class NestedObject < Base
|
8
|
-
attr_accessor :id, :testobject_id, :
|
8
|
+
attr_accessor :id, :testobject_id, :foo
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -27,7 +27,7 @@ module Mollie
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def test_get
|
30
|
-
stub_request(:get, "https://api.mollie.
|
30
|
+
stub_request(:get, "https://api.mollie.com/v2/testobjects/my-id")
|
31
31
|
.to_return(:status => 200, :body => %{{"id":"my-id"}}, :headers => {})
|
32
32
|
|
33
33
|
resource = TestObject.get("my-id")
|
@@ -36,7 +36,7 @@ module Mollie
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_nested_get
|
39
|
-
stub_request(:get, "https://api.mollie.
|
39
|
+
stub_request(:get, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects/my-id")
|
40
40
|
.to_return(:status => 200, :body => %{{"id":"my-id", "testobject_id":"object-id"}}, :headers => {})
|
41
41
|
|
42
42
|
resource = TestObject::NestedObject.get("my-id", testobject_id: 'object-id')
|
@@ -46,78 +46,78 @@ module Mollie
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_create
|
49
|
-
stub_request(:post, "https://api.mollie.
|
50
|
-
.with(body: %{{"
|
51
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "
|
49
|
+
stub_request(:post, "https://api.mollie.com/v2/testobjects")
|
50
|
+
.with(body: %{{"foo":1.95}})
|
51
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "foo":1.00}}, :headers => {})
|
52
52
|
|
53
|
-
resource = TestObject.create(
|
53
|
+
resource = TestObject.create(foo: 1.95)
|
54
54
|
|
55
55
|
assert_equal "my-id", resource.id
|
56
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
56
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
57
57
|
end
|
58
58
|
|
59
59
|
def test_nested_create
|
60
|
-
stub_request(:post, "https://api.mollie.
|
61
|
-
.with(body: %{{"
|
62
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "
|
60
|
+
stub_request(:post, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects")
|
61
|
+
.with(body: %{{"foo":1.95}})
|
62
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "foo":1.00}}, :headers => {})
|
63
63
|
|
64
|
-
resource = TestObject::NestedObject.create(
|
64
|
+
resource = TestObject::NestedObject.create(foo: 1.95, testobject_id: "object-id")
|
65
65
|
|
66
66
|
assert_equal "my-id", resource.id
|
67
67
|
assert_equal "object-id", resource.testobject_id
|
68
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
68
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
69
69
|
end
|
70
70
|
|
71
71
|
def test_update
|
72
|
-
stub_request(:
|
73
|
-
.with(body: %{{"
|
74
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "
|
72
|
+
stub_request(:patch, "https://api.mollie.com/v2/testobjects/my-id")
|
73
|
+
.with(body: %{{"foo":1.95}})
|
74
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "foo":1.00}}, :headers => {})
|
75
75
|
|
76
|
-
resource = TestObject.update("my-id",
|
76
|
+
resource = TestObject.update("my-id", foo: 1.95)
|
77
77
|
|
78
78
|
assert_equal "my-id", resource.id
|
79
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
79
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_update_instance
|
83
|
-
stub_request(:
|
84
|
-
.with(body: %{{"
|
85
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "
|
83
|
+
stub_request(:patch, "https://api.mollie.com/v2/testobjects/my-id")
|
84
|
+
.with(body: %{{"foo":1.95}})
|
85
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "foo":1.00}}, :headers => {})
|
86
86
|
|
87
87
|
resource = TestObject.new(id: "my-id")
|
88
|
-
resource.update(
|
88
|
+
resource.update(foo: 1.95)
|
89
89
|
|
90
90
|
assert_equal "my-id", resource.id
|
91
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
91
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
92
92
|
end
|
93
93
|
|
94
94
|
def test_nested_update
|
95
|
-
stub_request(:
|
96
|
-
.with(body: %{{"
|
97
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "
|
95
|
+
stub_request(:patch, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects/my-id")
|
96
|
+
.with(body: %{{"foo":1.95}})
|
97
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "foo":1.00}}, :headers => {})
|
98
98
|
|
99
|
-
resource = TestObject::NestedObject.update("my-id",
|
99
|
+
resource = TestObject::NestedObject.update("my-id", foo: 1.95, testobject_id: "object-id")
|
100
100
|
|
101
101
|
assert_equal "my-id", resource.id
|
102
102
|
assert_equal "object-id", resource.testobject_id
|
103
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
103
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
104
104
|
end
|
105
105
|
|
106
106
|
def test_nested_update_instance
|
107
|
-
stub_request(:
|
108
|
-
.with(body: %{{"
|
109
|
-
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "
|
107
|
+
stub_request(:patch, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects/my-id")
|
108
|
+
.with(body: %{{"foo":1.95}})
|
109
|
+
.to_return(:status => 201, :body => %{{"id":"my-id", "testobject_id":"object-id", "foo":1.00}}, :headers => {})
|
110
110
|
|
111
111
|
resource = TestObject::NestedObject.new(id: "my-id", testobject_id: "object-id")
|
112
|
-
resource.update(
|
112
|
+
resource.update(foo: 1.95)
|
113
113
|
|
114
114
|
assert_equal "my-id", resource.id
|
115
115
|
assert_equal "object-id", resource.testobject_id
|
116
|
-
assert_equal BigDecimal.new("1.00"), resource.
|
116
|
+
assert_equal BigDecimal.new("1.00"), resource.foo
|
117
117
|
end
|
118
118
|
|
119
119
|
def test_delete
|
120
|
-
stub_request(:delete, "https://api.mollie.
|
120
|
+
stub_request(:delete, "https://api.mollie.com/v2/testobjects/my-id")
|
121
121
|
.to_return(:status => 204, :headers => {})
|
122
122
|
|
123
123
|
resource = TestObject.delete("my-id")
|
@@ -126,7 +126,7 @@ module Mollie
|
|
126
126
|
end
|
127
127
|
|
128
128
|
def test_delete_instance
|
129
|
-
stub_request(:delete, "https://api.mollie.
|
129
|
+
stub_request(:delete, "https://api.mollie.com/v2/testobjects/my-id")
|
130
130
|
.to_return(:status => 204, :headers => {})
|
131
131
|
|
132
132
|
resource = TestObject.new(id: "my-id")
|
@@ -135,7 +135,7 @@ module Mollie
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def test_nested_delete
|
138
|
-
stub_request(:delete, "https://api.mollie.
|
138
|
+
stub_request(:delete, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects/my-id")
|
139
139
|
.to_return(:status => 204, :headers => {})
|
140
140
|
|
141
141
|
resource = TestObject::NestedObject.delete("my-id", testobject_id: "object-id")
|
@@ -144,7 +144,7 @@ module Mollie
|
|
144
144
|
end
|
145
145
|
|
146
146
|
def test_nested_delete_instance
|
147
|
-
stub_request(:delete, "https://api.mollie.
|
147
|
+
stub_request(:delete, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects/my-id")
|
148
148
|
.to_return(:status => 204, :headers => {})
|
149
149
|
|
150
150
|
resource = TestObject::NestedObject.new(id: "my-id", testobject_id: "object-id")
|
@@ -153,8 +153,8 @@ module Mollie
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def test_all
|
156
|
-
stub_request(:get, "https://api.mollie.
|
157
|
-
.to_return(:status => 200, :body => %{{"
|
156
|
+
stub_request(:get, "https://api.mollie.com/v2/testobjects")
|
157
|
+
.to_return(:status => 200, :body => %{{"_embedded": {"testobjects": [{"id":"my-id"}]}}}, :headers => {})
|
158
158
|
|
159
159
|
resource = TestObject.all
|
160
160
|
|
@@ -162,8 +162,8 @@ module Mollie
|
|
162
162
|
end
|
163
163
|
|
164
164
|
def test_nested_all
|
165
|
-
stub_request(:get, "https://api.mollie.
|
166
|
-
.to_return(:status => 200, :body => %{{"
|
165
|
+
stub_request(:get, "https://api.mollie.com/v2/nestedobjects")
|
166
|
+
.to_return(:status => 200, :body => %{{"_embedded": {"nestedobjects": [{"id":"my-id"}]}}}, :headers => {})
|
167
167
|
|
168
168
|
resource = TestObject::NestedObject.all
|
169
169
|
|
@@ -171,8 +171,8 @@ module Mollie
|
|
171
171
|
end
|
172
172
|
|
173
173
|
def test_nested_all_scoped
|
174
|
-
stub_request(:get, "https://api.mollie.
|
175
|
-
.to_return(:status => 200, :body => %{{"
|
174
|
+
stub_request(:get, "https://api.mollie.com/v2/testobjects/object-id/nestedobjects")
|
175
|
+
.to_return(:status => 200, :body => %{{"_embedded": {"nestedobjects": [{"id":"my-id"}]}}}, :headers => {})
|
176
176
|
|
177
177
|
resource = TestObject::NestedObject.all(testobject_id: 'object-id')
|
178
178
|
|
@@ -4,32 +4,93 @@ module Mollie
|
|
4
4
|
class ChargebackTest < Test::Unit::TestCase
|
5
5
|
def test_setting_attributes
|
6
6
|
attributes = {
|
7
|
-
id:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
reversed_datetime: "2016-10-08T07:59:53.0Z",
|
7
|
+
id: "re_4qqhO89gsT",
|
8
|
+
amount: { "value" => "5.95", "currency" => "EUR" },
|
9
|
+
created_at: "2016-10-08T07:59:53.0Z",
|
10
|
+
reversed_at: "2016-10-08T07:59:53.0Z",
|
11
|
+
payment_id: "tr_WDqYK6vllg",
|
12
|
+
settlement_amount: { "value" => "-5.95", "currency" => "EUR" }
|
14
13
|
}
|
15
14
|
|
16
15
|
chargeback = Chargeback.new(attributes)
|
17
16
|
|
18
17
|
assert_equal "re_4qqhO89gsT", chargeback.id
|
19
|
-
assert_equal BigDecimal.new("5.95"), chargeback.amount
|
20
|
-
|
21
|
-
assert_equal Time.parse("2016-10-08T07:59:53.0Z"), chargeback.
|
22
|
-
assert_equal Time.parse("2016-10-08T07:59:53.0Z"), chargeback.
|
18
|
+
assert_equal BigDecimal.new("5.95"), chargeback.amount.value
|
19
|
+
assert_equal "EUR", chargeback.amount.currency
|
20
|
+
assert_equal Time.parse("2016-10-08T07:59:53.0Z"), chargeback.created_at
|
21
|
+
assert_equal Time.parse("2016-10-08T07:59:53.0Z"), chargeback.reversed_at
|
22
|
+
assert_equal "tr_WDqYK6vllg", chargeback.payment_id
|
23
|
+
assert_equal BigDecimal.new("-5.95"), chargeback.settlement_amount.value
|
24
|
+
assert_equal "EUR", chargeback.settlement_amount.currency
|
23
25
|
end
|
24
26
|
|
25
|
-
def
|
26
|
-
|
27
|
-
|
27
|
+
def test_reversed?
|
28
|
+
assert Chargeback.new(reversed_at: "2016-10-08T07:59:53.0Z").reversed?
|
29
|
+
assert !Chargeback.new(reversed_at: nil).reversed?
|
28
30
|
end
|
29
31
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
32
|
+
def test_get_chargeback
|
33
|
+
stub_request(:get, "https://api.mollie.com/v2/payments/pay-id/chargebacks/chb-id")
|
34
|
+
.to_return(:status => 200, :body => %{{"id":"chb-id"}}, :headers => {})
|
35
|
+
|
36
|
+
chargeback = Payment::Chargeback.get("chb-id", payment_id: "pay-id")
|
37
|
+
assert_equal "chb-id", chargeback.id
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_get_payment
|
41
|
+
stub_request(:get, "https://api.mollie.com/v2/payments/tr_WDqYK6vllg/chargebacks/chb_n9z0tp")
|
42
|
+
.to_return(:status => 200, :body => %{
|
43
|
+
{
|
44
|
+
"resource": "chargeback",
|
45
|
+
"id": "chb_n9z0tp",
|
46
|
+
"paymentId": "tr_WDqYK6vllg"
|
47
|
+
}
|
48
|
+
}, :headers => {})
|
49
|
+
|
50
|
+
stub_request(:get, "https://api.mollie.com/v2/payments/tr_WDqYK6vllg")
|
51
|
+
.to_return(:status => 200, :body => %{
|
52
|
+
{
|
53
|
+
"resource": "payment",
|
54
|
+
"id": "tr_WDqYK6vllg"
|
55
|
+
}
|
56
|
+
}, :headers => {})
|
57
|
+
|
58
|
+
chargeback = Payment::Chargeback.get("chb_n9z0tp", payment_id: "tr_WDqYK6vllg")
|
59
|
+
assert_equal "tr_WDqYK6vllg", chargeback.payment.id
|
33
60
|
end
|
61
|
+
|
62
|
+
def test_get_settlement
|
63
|
+
stub_request(:get, "https://api.mollie.com/v2/payments/tr_WDqYK6vllg/chargebacks/chb_n9z0tp")
|
64
|
+
.to_return(:status => 200, :body => %{
|
65
|
+
{
|
66
|
+
"resource": "chargeback",
|
67
|
+
"id": "chb_n9z0tp",
|
68
|
+
"paymentId": "tr_WDqYK6vllg",
|
69
|
+
"_links": {
|
70
|
+
"settlement": {
|
71
|
+
"href": "https://api.mollie.com/v2/settlements/stl_jDk30akdN",
|
72
|
+
"type": "application/hal+json"
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}, :headers => {})
|
77
|
+
|
78
|
+
stub_request(:get, "https://api.mollie.com/v2/settlements/stl_jDk30akdN")
|
79
|
+
.to_return(:status => 200, :body => %{
|
80
|
+
{
|
81
|
+
"resource": "settlement",
|
82
|
+
"id": "stl_jDk30akdN"
|
83
|
+
}
|
84
|
+
}, :headers => {})
|
85
|
+
|
86
|
+
chargeback = Payment::Chargeback.get("chb_n9z0tp", payment_id: "tr_WDqYK6vllg")
|
87
|
+
assert_equal "stl_jDk30akdN", chargeback.settlement.id
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_nil_settlement
|
91
|
+
chargeback = Payment::Chargeback.new(id: "chb_n9z0tp")
|
92
|
+
assert_nil chargeback.settlement
|
93
|
+
end
|
94
|
+
|
34
95
|
end
|
35
96
|
end
|