mock_chargebee 0.0.4 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c4c4be5f02b98c87635fdbc94c8c9443abc2ec2de554436fe3f6a2803289535
4
- data.tar.gz: 7a87c889ce9467bd63285473da59df46c6f78a76ff06877468a5fe00ba102bf2
3
+ metadata.gz: 3f41b56f20e82e2cffff78ffd4e71aee15e165ee3ca3503ecdde77d9f77c2adc
4
+ data.tar.gz: 1085bda9c628e4ed8d58ddc7637157471240c30bcf3a993eef0d69f368a1822b
5
5
  SHA512:
6
- metadata.gz: 47fc5f6ca550dfdec30a70d61773421d57398c748e5f1dbc2d588aa70ae31174f9ee62a0a0b360187dbde9ca7cdd771deecb38a1334515fab6a453dabe4362a0
7
- data.tar.gz: 00c992d940924ad011e12d4612be7baa3765f9eb0b0bd42a142eae34dfbcaebc8cb46d6e25bfbb675795348ac65c1167a173c5409dc00504745e53fc81339d51
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", JSON.parse(File.read("#{File.dirname(__FILE__)}/../fixtures/#{arg}.json")))
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 = "cust"
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["id"] ||= unique_id
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["id"], 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["id"], 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
@@ -13,7 +13,9 @@ module MockChargebee
13
13
  add_repositories :customers,
14
14
  :subscriptions,
15
15
  :coupons,
16
- :portal_sessions
16
+ :portal_sessions,
17
+ :plans,
18
+ :payment_sources
17
19
 
18
20
  class RepoHash < Hash
19
21
  def fetch(*)
@@ -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
@@ -2,7 +2,7 @@
2
2
 
3
3
  module MockChargebee
4
4
  module RequestHandlers
5
- class PortalSession < Base
5
+ class PortalSessions < Base
6
6
  private
7
7
 
8
8
  def post
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MockChargebee
4
- VERSION = '0.0.4'
4
+ VERSION = '0.0.9'
5
5
  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
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-02-04 00:00:00.000000000 Z
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