chargify_api_ares 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.3.5
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{chargify_api_ares}
8
- s.version = "0.3.4"
8
+ s.version = "0.3.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Klett", "The Lab Rats @ Phase Two Labs", "Brian Rose", "Nathan Verni"]
12
- s.date = %q{2010-08-03}
12
+ s.date = %q{2010-08-25}
13
13
  s.description = %q{}
14
14
  s.email = %q{mklett@grasshopper.com}
15
15
  s.extra_rdoc_files = [
@@ -46,7 +46,7 @@ Gem::Specification.new do |s|
46
46
  s.homepage = %q{http://github.com/grasshopperlabs/chargify_api_ares}
47
47
  s.rdoc_options = ["--charset=UTF-8"]
48
48
  s.require_paths = ["lib"]
49
- s.rubygems_version = %q{1.3.6}
49
+ s.rubygems_version = %q{1.3.7}
50
50
  s.summary = %q{A Chargify API wrapper for Ruby using ActiveResource}
51
51
  s.test_files = [
52
52
  "spec/base_spec.rb",
@@ -66,7 +66,7 @@ Gem::Specification.new do |s|
66
66
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
67
67
  s.specification_version = 3
68
68
 
69
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
69
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
70
70
  else
71
71
  end
72
72
  else
@@ -141,6 +141,10 @@ module Chargify
141
141
  post :credits, :credit => attrs
142
142
  end
143
143
 
144
+ def refund(attrs = {})
145
+ post :refunds, :refund => attrs
146
+ end
147
+
144
148
  def reactivate(params = {})
145
149
  put :reactivate, params
146
150
  end
@@ -149,6 +153,10 @@ module Chargify
149
153
  put :reset_balance
150
154
  end
151
155
 
156
+ def migrate(attrs = {})
157
+ post :migrations, :migration => attrs
158
+ end
159
+
152
160
  def transactions()
153
161
  Transaction.find(:all, :params =>{:subscription_id => self.id})
154
162
  end
@@ -255,6 +255,30 @@ if run_remote_tests?
255
255
  end
256
256
  end
257
257
 
258
+ describe "adding a refund" do
259
+ before(:each) do
260
+ @subscription = create_once(:subscription) do
261
+ Chargify::Subscription.create(
262
+ :product_handle => @@pro_plan.handle,
263
+ :customer_reference => @@johnadoe.reference,
264
+ :payment_profile_attributes => good_payment_profile_attributes
265
+ )
266
+ end
267
+
268
+ @subscription.charge(:amount => 7, :memo => 'One Time Charge')
269
+ @subscription.reload
270
+ end
271
+
272
+ it "creates a refund" do
273
+ lambda{
274
+ @subscription.refund :payment_id => @subscription.transactions[0].id, :amount => 7,
275
+ :memo => 'Refunding One Time Charge'
276
+ }.should change{@subscription.reload.transactions.size}.by(1)
277
+ @subscription.transactions.first.amount_in_cents.should == 700
278
+ @subscription.transactions.first.transaction_type.should == 'refund'
279
+ end
280
+ end
281
+
258
282
  def already_cleared_site_data?
259
283
  @@already_cleared_site_data ||= nil
260
284
  @@already_cleared_site_data == true
@@ -285,7 +309,7 @@ if run_remote_tests?
285
309
  result = @@acme_projects.save
286
310
  result.should be_true
287
311
  end
288
-
312
+
289
313
  begin
290
314
  @@basic_plan ||= Chargify::Product.find_by_handle('basic')
291
315
  rescue ActiveResource::ResourceNotFound
data/spec/spec_helper.rb CHANGED
@@ -11,6 +11,7 @@ ActiveResource::Base.send :include, ActiveResource::FakeResource
11
11
  FakeWeb.allow_net_connect = false
12
12
  require 'factory_girl'
13
13
  require 'faker'
14
+ require 'factories'
14
15
 
15
16
  Chargify.configure do |c|
16
17
  c.subdomain = 'test'
@@ -63,4 +63,16 @@ describe Chargify::Subscription do
63
63
  @subscription.cancel
64
64
  find_subscription.should raise_error
65
65
  end
66
- end
66
+
67
+ it 'migrates the subscription' do
68
+ id = Factory.next(:subscription_id)
69
+ subscription = Factory(:subscription, :id => id)
70
+ expected_response = [subscription.attributes].to_xml(:root => 'subscription')
71
+ FakeWeb.register_uri(:post, "#{test_domain}/subscriptions/#{id}/migrations.xml?migration%5Bproduct_handle%5D=upgraded-plan", :status => 201, :body => expected_response)
72
+
73
+ response = subscription.migrate(:product_handle => 'upgraded-plan')
74
+
75
+ response.body.should == expected_response
76
+ response.should be_a(Net::HTTPCreated)
77
+ end
78
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chargify_api_ares
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 4
10
- version: 0.3.4
9
+ - 5
10
+ version: 0.3.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Klett
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-08-03 00:00:00 -04:00
21
+ date: 2010-08-25 00:00:00 -04:00
22
22
  default_executable:
23
23
  dependencies: []
24
24