chargify_api_ares 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +7 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +57 -0
  5. data/Guardfile +15 -0
  6. data/README.md +29 -37
  7. data/Rakefile +12 -5
  8. data/chargify_api_ares.gemspec +25 -63
  9. data/examples/coupons.rb +50 -0
  10. data/{samples → examples}/customers.rb +1 -1
  11. data/{samples → examples}/metered_components.rb +5 -2
  12. data/{samples → examples}/products.rb +1 -1
  13. data/{samples → examples}/subscriptions.rb +2 -2
  14. data/{samples → examples}/transactions.rb +2 -3
  15. data/lib/chargify_api_ares.rb +14 -314
  16. data/lib/chargify_api_ares/config.rb +16 -0
  17. data/lib/chargify_api_ares/resources/base.rb +14 -0
  18. data/lib/chargify_api_ares/resources/component.rb +4 -0
  19. data/lib/chargify_api_ares/resources/coupon.rb +19 -0
  20. data/lib/chargify_api_ares/resources/customer.rb +21 -0
  21. data/lib/chargify_api_ares/resources/payment_profile.rb +4 -0
  22. data/lib/chargify_api_ares/resources/product.rb +25 -0
  23. data/lib/chargify_api_ares/resources/product_family.rb +34 -0
  24. data/lib/chargify_api_ares/resources/site.rb +7 -0
  25. data/lib/chargify_api_ares/resources/statement.rb +4 -0
  26. data/lib/chargify_api_ares/resources/subscription.rb +123 -0
  27. data/lib/chargify_api_ares/resources/transaction.rb +17 -0
  28. data/lib/chargify_api_ares/resources/usage.rb +11 -0
  29. data/spec/factories.rb +28 -24
  30. data/spec/remote/remote.example.yml +6 -0
  31. data/spec/remote/remote_spec.rb +347 -452
  32. data/spec/remote/spec_helper.rb +11 -15
  33. data/spec/{base_spec.rb → resources/base_spec.rb} +1 -1
  34. data/spec/resources/coupon_spec.rb +35 -0
  35. data/spec/resources/customer_spec.rb +36 -0
  36. data/spec/resources/product_family_spec.rb +57 -0
  37. data/spec/resources/product_spec.rb +23 -0
  38. data/spec/{subscriptions_component_spec.rb → resources/subscription_component_spec.rb} +2 -2
  39. data/spec/{subscription_spec.rb → resources/subscription_spec.rb} +2 -2
  40. data/spec/resources/usage_spec.rb +44 -0
  41. data/spec/spec_helper.rb +6 -8
  42. data/spec/{mocks → support}/fake_resource.rb +0 -0
  43. metadata +148 -29
  44. data/VERSION +0 -1
  45. data/config/remote.example.yml +0 -7
  46. data/spec/components_spec.rb +0 -48
  47. data/spec/customer_spec.rb +0 -23
  48. data/spec/product_spec.rb +0 -23
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.9
@@ -1,7 +0,0 @@
1
- # Copy this file to config/remote.yml and make adjustments as necessary.
2
- #
3
- # Note: Remote tests will only work when configured to run on a test site that uses the Bogus gateway.
4
- # Warning: all data in the site specified by 'subdomain' will be cleared and replaced with test data.
5
- run_tests: true
6
- subdomain: yoursubdomain
7
- api_key: xxx
@@ -1,48 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Chargify::Component do
4
- describe "Recording usage" do
5
- before do
6
- @subscription = Factory(:subscription)
7
- @component = Factory(:component)
8
- @now = DateTime.now.to_s
9
- end
10
-
11
- it "should create a usage record" do
12
- u = Chargify::Usage.new
13
- u.subscription_id = @subscription.id
14
- u.component_id = @component.id
15
- u.quantity = 5
16
- u.memo = @now
17
- u.save
18
-
19
- component = Chargify::Usage.find(:last, :params => {:subscription_id => @subscription.id, :component_id => @component.id})
20
- component.memo.should == @now
21
- component.quantity.should == 5
22
- end
23
- end
24
-
25
- describe "Listing usages" do
26
- before do
27
- @subscription = Factory(:subscription)
28
- @component = Factory(:component)
29
- @now = DateTime.now.to_s
30
- create_usage
31
- end
32
-
33
- it "should return all usages for a component and subscription" do
34
- component = Chargify::Usage.find(:last, :params => {:subscription_id => @subscription.id, :component_id => @component.id})
35
- component.quantity.should == 5
36
- end
37
- end
38
-
39
- def create_usage
40
- u = Chargify::Usage.new
41
- u.subscription_id = @subscription.id
42
- u.component_id = @component.id
43
- u.quantity = 5
44
- u.memo = @now
45
- u.save
46
- end
47
- end
48
-
@@ -1,23 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Chargify::Customer do
4
-
5
- context 'find by reference' do
6
- before do
7
- @reference = 'ref0123'
8
- @existing_customer = Factory(:customer, :reference => @reference, :id => FactoryGirl.generate(:customer_id))
9
- FakeWeb.register_uri(:get, "#{test_domain}/customers/lookup.xml?reference=#{@existing_customer.reference}", :body => @existing_customer.attributes.to_xml)
10
- end
11
-
12
- it 'finds the correct customer by reference' do
13
- customer = Chargify::Customer.find_by_reference(@reference)
14
- customer.should eql(@existing_customer)
15
- end
16
-
17
- it 'is an instance of Chargify::Customer' do
18
- customer = Chargify::Customer.find_by_reference(@reference)
19
- customer.should be_instance_of(Chargify::Customer)
20
- end
21
- end
22
-
23
- end
data/spec/product_spec.rb DELETED
@@ -1,23 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Chargify::Product do
4
-
5
- context 'find by handle' do
6
- before do
7
- @handle = 'handle1'
8
- @existing_product = Factory(:product, :handle => @handle, :id => FactoryGirl.generate(:product_id))
9
- FakeWeb.register_uri(:get, "#{test_domain}/products/lookup.xml?handle=#{@existing_product.handle}", :body => @existing_product.attributes.to_xml)
10
- end
11
-
12
- it 'finds the correct product by handle' do
13
- product = Chargify::Product.find_by_handle(@handle)
14
- product.should eql(@existing_product)
15
- end
16
-
17
- it 'is an instance of Chargify::Product' do
18
- product = Chargify::Product.find_by_handle(@handle)
19
- product.should be_instance_of(Chargify::Product)
20
- end
21
- end
22
-
23
- end