Skip to content

Commit b86a17e

Browse files
committed
update request handlers to return list objects for list requests
1 parent d08a424 commit b86a17e

17 files changed

+53
-23
lines changed

lib/stripe_mock.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
require 'stripe'
66

77
require 'stripe_mock/version'
8-
require 'stripe_mock/data'
9-
require 'stripe_mock/list'
108
require 'stripe_mock/util'
119
require 'stripe_mock/error_queue'
1210

11+
require 'stripe_mock/data'
12+
require 'stripe_mock/data/list'
13+
1314
require 'stripe_mock/errors/stripe_mock_error'
1415
require 'stripe_mock/errors/unsupported_request_error'
1516
require 'stripe_mock/errors/uninitialized_instance_error'

lib/stripe_mock/data.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,5 +440,10 @@ def self.mock_delete_discount_response
440440
:id => "di_test_coupon"
441441
}
442442
end
443+
444+
def self.mock_list_object(data, params = {})
445+
list = StripeMock::Data::List.new(data, params)
446+
list.to_h
447+
end
443448
end
444449
end

lib/stripe_mock/list.rb renamed to lib/stripe_mock/data/list.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ def has_more?
2222
(offset + limit) < data.size
2323
end
2424

25+
def method_missing(method_name, *args, &block)
26+
hash = to_hash
27+
28+
if hash.keys.include?(method_name)
29+
hash[method_name]
30+
else
31+
super
32+
end
33+
end
34+
35+
def respond_to?(method_name, priv = false)
36+
to_hash.keys.include?(method_name) || super
37+
end
38+
2539
private
2640

2741
# TODO: REFACTOR

lib/stripe_mock/request_handlers/cards.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@ def create_card(route, method_url, params, headers)
2222
def retrieve_cards(route, method_url, params, headers)
2323
route =~ method_url
2424
customer = assert_existence :customer, $1, customers[$1]
25-
2625
cards = customer[:cards]
27-
cards[:count] = cards[:data].length
28-
cards
26+
27+
Data.mock_list_object(cards[:data])
2928
end
3029

3130
def retrieve_card(route, method_url, params, headers)

lib/stripe_mock/request_handlers/charges.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ def new_charge(route, method_url, params, headers)
3232

3333
def get_charges(route, method_url, params, headers)
3434
params[:offset] ||= 0
35-
params[:count] ||= 10
35+
params[:limit] ||= 10
3636

3737
clone = charges.clone
3838

3939
if params[:customer]
4040
clone.delete_if { |k,v| v[:customer] != params[:customer] }
4141
end
4242

43-
clone.values[params[:offset], params[:count]]
43+
Data.mock_list_object(clone.values, params)
4444
end
4545

4646
def get_charge(route, method_url, params, headers)

lib/stripe_mock/request_handlers/coupons.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def delete_coupon(route, method_url, params, headers)
2525
end
2626

2727
def list_coupons(route, method_url, params, headers)
28-
coupons.values
28+
Data.mock_list_object(coupons.values, params)
2929
end
3030

3131
end

lib/stripe_mock/request_handlers/customers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def get_customer(route, method_url, params, headers)
6969
end
7070

7171
def list_customers(route, method_url, params, headers)
72-
customers.values
72+
Data.mock_list_object(customers.values, params)
7373
end
7474

7575
end

lib/stripe_mock/request_handlers/invoice_items.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def delete_invoice_item(route, method_url, params, headers)
3232
end
3333

3434
def list_invoice_items(route, method_url, params, headers)
35-
invoice_items.values
35+
Data.mock_list_object(invoice_items.values, params)
3636
end
3737

3838
def get_invoice_item(route, method_url, params, headers)

lib/stripe_mock/request_handlers/invoices.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ def update_invoice(route, method_url, params, headers)
2626

2727
def list_invoices(route, method_url, params, headers)
2828
params[:offset] ||= 0
29-
params[:count] ||= 10
29+
params[:limit] ||= 10
3030

3131
result = invoices.clone
3232

3333
if params[:customer]
3434
result.delete_if { |k,v| v[:customer] != params[:customer] }
3535
end
3636

37-
result.values[params[:offset], params[:count]]
37+
Data.mock_list_object(result.values, params)
3838
end
3939

4040
def get_invoice(route, method_url, params, headers)

lib/stripe_mock/request_handlers/plans.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def delete_plan(route, method_url, params, headers)
3232
end
3333

3434
def list_plans(route, method_url, params, headers)
35-
plans.values
35+
Data.mock_list_object(plans.values)
3636
end
3737

3838
end

0 commit comments

Comments
 (0)