mock_chargebee 0.0.4 → 0.0.9
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 +4 -4
- data/lib/mock_chargebee/fixtures/payment_source.json +27 -0
- data/lib/mock_chargebee/fixtures/plan.json +24 -0
- data/lib/mock_chargebee/models/base.rb +6 -1
- data/lib/mock_chargebee/models/customer.rb +19 -4
- data/lib/mock_chargebee/models/payment_source.rb +31 -0
- data/lib/mock_chargebee/models/plan.rb +31 -0
- data/lib/mock_chargebee/repositories.rb +3 -1
- data/lib/mock_chargebee/request_handlers/customers.rb +6 -0
- data/lib/mock_chargebee/request_handlers/payment_sources.rb +14 -0
- data/lib/mock_chargebee/request_handlers/plans.rb +25 -0
- data/lib/mock_chargebee/request_handlers/portal_sessions.rb +1 -1
- data/lib/mock_chargebee/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f41b56f20e82e2cffff78ffd4e71aee15e165ee3ca3503ecdde77d9f77c2adc
|
|
4
|
+
data.tar.gz: 1085bda9c628e4ed8d58ddc7637157471240c30bcf3a993eef0d69f368a1822b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cb13e1fc57de840a309f818110205922e38045bd75997b44e7a35b133b87db4d22bb00d6e14244071fc0e392091c7471796b7f0bddd0a088c7856d77471fa154
|
|
7
|
+
data.tar.gz: 21a4c7a64dbfe9ce96c00d2cc12d2bcbdd9305a28d921a22e281c0b47b467ac89284f91c88475c3f8e94f5d11ab64f7a56856445e0a924e3d1ecd7c71e0a13c0
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"card": {
|
|
3
|
+
"brand": "visa",
|
|
4
|
+
"expiry_month": 5,
|
|
5
|
+
"expiry_year": 2022,
|
|
6
|
+
"first_name": "MyCard",
|
|
7
|
+
"funding_type": "credit",
|
|
8
|
+
"iin": "******",
|
|
9
|
+
"last4": "4242",
|
|
10
|
+
"last_name": "testing",
|
|
11
|
+
"masked_number": "************4242",
|
|
12
|
+
"object": "card"
|
|
13
|
+
},
|
|
14
|
+
"created_at": 1517501366,
|
|
15
|
+
"customer_id": "__test__KyVnHhSBWSnun3m",
|
|
16
|
+
"deleted": false,
|
|
17
|
+
"gateway": "stripe",
|
|
18
|
+
"gateway_account_id": "gw___test__KyVnGlSBWSlFuCx",
|
|
19
|
+
"id": "pm___test__KyVnHhSBWSoLV3o",
|
|
20
|
+
"issuing_country": "US",
|
|
21
|
+
"object": "payment_source",
|
|
22
|
+
"reference_id": "cus_I57Fg22l3szyZI/card_1HUx0bJv9j0DyntJi5f2GxEj",
|
|
23
|
+
"resource_version": 1517501366000,
|
|
24
|
+
"status": "valid",
|
|
25
|
+
"type": "card",
|
|
26
|
+
"updated_at": 1517501366
|
|
27
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"addon_applicability": "all",
|
|
3
|
+
"charge_model": "flat_fee",
|
|
4
|
+
"currency_code": "USD",
|
|
5
|
+
"enabled_in_hosted_pages": true,
|
|
6
|
+
"enabled_in_portal": true,
|
|
7
|
+
"free_quantity": 0,
|
|
8
|
+
"giftable": false,
|
|
9
|
+
"id": "silver",
|
|
10
|
+
"invoice_name": "sample plan",
|
|
11
|
+
"is_shippable": false,
|
|
12
|
+
"name": "Silver",
|
|
13
|
+
"object": "plan",
|
|
14
|
+
"period": 1,
|
|
15
|
+
"period_unit": "month",
|
|
16
|
+
"price": 5000,
|
|
17
|
+
"pricing_model": "flat_fee",
|
|
18
|
+
"resource_version": 1517505797000,
|
|
19
|
+
"show_description_in_invoices": false,
|
|
20
|
+
"show_description_in_quotes": false,
|
|
21
|
+
"status": "active",
|
|
22
|
+
"taxable": true,
|
|
23
|
+
"updated_at": 1517505797
|
|
24
|
+
}
|
|
@@ -11,11 +11,16 @@ module MockChargebee
|
|
|
11
11
|
Util.generate_id(self::RESOURCE_ID_PREFIX)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def self.already_exists!(id)
|
|
15
|
+
raise ChargeBee::InvalidRequestError.new(400, message: "The value #{id} is already present.")
|
|
16
|
+
end
|
|
17
|
+
|
|
14
18
|
def self.load_fixtures(*args)
|
|
15
19
|
args.each do |arg|
|
|
16
20
|
define_singleton_method("#{arg}_fixture") do
|
|
17
21
|
instance_variable_get("@#{arg}_fixture") ||
|
|
18
|
-
instance_variable_set("@#{arg}_fixture",
|
|
22
|
+
instance_variable_set("@#{arg}_fixture",
|
|
23
|
+
JSON.parse(File.read("#{File.dirname(__FILE__)}/../fixtures/#{arg}.json")))
|
|
19
24
|
end
|
|
20
25
|
end
|
|
21
26
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module MockChargebee
|
|
4
4
|
module Models
|
|
5
5
|
class Customer < Base
|
|
6
|
-
RESOURCE_ID_PREFIX =
|
|
6
|
+
RESOURCE_ID_PREFIX = 'cust'
|
|
7
7
|
|
|
8
8
|
load_fixtures :customer
|
|
9
9
|
|
|
@@ -12,9 +12,11 @@ module MockChargebee
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def self.create(params)
|
|
15
|
-
params[
|
|
15
|
+
already_exists!(params['id']) if already_exists?(params['id'])
|
|
16
|
+
|
|
17
|
+
params['id'] ||= unique_id
|
|
16
18
|
customer = customer_fixture.merge(params)
|
|
17
|
-
repositories.customers.store(customer[
|
|
19
|
+
repositories.customers.store(customer['id'], customer)
|
|
18
20
|
|
|
19
21
|
customer
|
|
20
22
|
end
|
|
@@ -22,10 +24,23 @@ module MockChargebee
|
|
|
22
24
|
def self.update(id, params)
|
|
23
25
|
customer = find(id)
|
|
24
26
|
customer.merge!(params)
|
|
25
|
-
repositories.customers.store(customer[
|
|
27
|
+
repositories.customers.store(customer['id'], customer)
|
|
26
28
|
|
|
27
29
|
customer
|
|
28
30
|
end
|
|
31
|
+
|
|
32
|
+
def self.delete(id)
|
|
33
|
+
customer = find(id)
|
|
34
|
+
repositories.customers.delete(id)
|
|
35
|
+
|
|
36
|
+
customer
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.already_exists?(id)
|
|
40
|
+
return false if id.nil?
|
|
41
|
+
|
|
42
|
+
repositories.customers[id].present?
|
|
43
|
+
end
|
|
29
44
|
end
|
|
30
45
|
end
|
|
31
46
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module MockChargebee
|
|
4
|
+
module Models
|
|
5
|
+
class PaymentSource < Base
|
|
6
|
+
RESOURCE_ID_PREFIX = 'payment_source'
|
|
7
|
+
|
|
8
|
+
load_fixtures :payment_source
|
|
9
|
+
|
|
10
|
+
def self.find(id)
|
|
11
|
+
repositories.payment_sources.fetch(id)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.create(params)
|
|
15
|
+
already_exists!(params['reference_id']) if already_exists?(params['reference_id'])
|
|
16
|
+
|
|
17
|
+
params['id'] = unique_id
|
|
18
|
+
source = payment_source_fixture.merge(params)
|
|
19
|
+
repositories.payment_sources.store(source['id'], source)
|
|
20
|
+
|
|
21
|
+
source
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.already_exists?(ref_id)
|
|
25
|
+
return false if ref_id.nil?
|
|
26
|
+
|
|
27
|
+
repositories.payment_sources.values.include?(ref_id)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module MockChargebee
|
|
4
|
+
module Models
|
|
5
|
+
class Plan < Base
|
|
6
|
+
RESOURCE_ID_PREFIX = 'plan'
|
|
7
|
+
|
|
8
|
+
load_fixtures :plan
|
|
9
|
+
|
|
10
|
+
def self.find(id)
|
|
11
|
+
repositories.plans.fetch(id)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.create(params)
|
|
15
|
+
params['id'] ||= unique_id
|
|
16
|
+
plan = plan_fixture.merge(params)
|
|
17
|
+
repositories.plans.store(plan['id'], plan)
|
|
18
|
+
|
|
19
|
+
plan
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.update(id, params)
|
|
23
|
+
plan = find(id)
|
|
24
|
+
plan.merge!(params)
|
|
25
|
+
repositories.plans.store(plan['id'], plan)
|
|
26
|
+
|
|
27
|
+
plan
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -15,6 +15,12 @@ module MockChargebee
|
|
|
15
15
|
{ customer: customer }
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
def post_delete
|
|
19
|
+
customer = Models::Customer.delete(id)
|
|
20
|
+
|
|
21
|
+
{ customer: customer }
|
|
22
|
+
end
|
|
23
|
+
|
|
18
24
|
def post_subscriptions
|
|
19
25
|
customer = Models::Customer.find(id)
|
|
20
26
|
subscription = Models::Subscription.create_for_customer(customer, params)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module MockChargebee
|
|
2
|
+
module RequestHandlers
|
|
3
|
+
class PaymentSources < Base
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def post
|
|
7
|
+
customer = Models::Customer.find(params['customer_id'])
|
|
8
|
+
payment_source = Models::PaymentSource.create(params)
|
|
9
|
+
|
|
10
|
+
{ customer: customer, payment_source: payment_source }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module MockChargebee
|
|
4
|
+
module RequestHandlers
|
|
5
|
+
class Plans < Base
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
def post
|
|
9
|
+
plan = if id.nil?
|
|
10
|
+
Models::Plan.create(params)
|
|
11
|
+
else
|
|
12
|
+
Models::Plan.update(id, params)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
{ plan: plan }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get
|
|
19
|
+
plan = Models::Plan.find(id)
|
|
20
|
+
|
|
21
|
+
{ plan: plan }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mock_chargebee
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Cass
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -110,6 +110,8 @@ files:
|
|
|
110
110
|
- lib/mock_chargebee/errors.rb
|
|
111
111
|
- lib/mock_chargebee/fixtures/coupon.json
|
|
112
112
|
- lib/mock_chargebee/fixtures/customer.json
|
|
113
|
+
- lib/mock_chargebee/fixtures/payment_source.json
|
|
114
|
+
- lib/mock_chargebee/fixtures/plan.json
|
|
113
115
|
- lib/mock_chargebee/fixtures/portal_session.json
|
|
114
116
|
- lib/mock_chargebee/fixtures/subscription.json
|
|
115
117
|
- lib/mock_chargebee/fixtures/subscription_cancel_response.json
|
|
@@ -209,6 +211,8 @@ files:
|
|
|
209
211
|
- lib/mock_chargebee/models/base.rb
|
|
210
212
|
- lib/mock_chargebee/models/coupon.rb
|
|
211
213
|
- lib/mock_chargebee/models/customer.rb
|
|
214
|
+
- lib/mock_chargebee/models/payment_source.rb
|
|
215
|
+
- lib/mock_chargebee/models/plan.rb
|
|
212
216
|
- lib/mock_chargebee/models/portal_session.rb
|
|
213
217
|
- lib/mock_chargebee/models/subscription.rb
|
|
214
218
|
- lib/mock_chargebee/repositories.rb
|
|
@@ -216,6 +220,8 @@ files:
|
|
|
216
220
|
- lib/mock_chargebee/request_handlers/base.rb
|
|
217
221
|
- lib/mock_chargebee/request_handlers/coupons.rb
|
|
218
222
|
- lib/mock_chargebee/request_handlers/customers.rb
|
|
223
|
+
- lib/mock_chargebee/request_handlers/payment_sources.rb
|
|
224
|
+
- lib/mock_chargebee/request_handlers/plans.rb
|
|
219
225
|
- lib/mock_chargebee/request_handlers/portal_sessions.rb
|
|
220
226
|
- lib/mock_chargebee/request_handlers/subscriptions.rb
|
|
221
227
|
- lib/mock_chargebee/services/apply_coupons.rb
|