mousetrap 0.4.4 → 0.5.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.5.0
@@ -90,6 +90,12 @@ module Mousetrap
90
90
  customer
91
91
  end
92
92
 
93
+ def self.update(customer_code, attributes)
94
+ customer = new(attributes)
95
+ customer.code = customer_code
96
+ customer.send :update
97
+ end
98
+
93
99
 
94
100
  protected
95
101
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mousetrap}
8
- s.version = "0.4.4"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jon Larkowski", "Sandro Turriate", "Wolfram Arnold", "Corey Grusden"]
12
- s.date = %q{2009-10-23}
12
+ s.date = %q{2009-10-25}
13
13
  s.description = %q{CheddarGetter API Client in Ruby}
14
14
  s.email = %q{jonlarkowski@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -137,6 +137,82 @@ describe "The Wrapper Gem" do
137
137
  end
138
138
  end
139
139
 
140
+ describe ".update" do
141
+ describe "Given a customer" do
142
+ before :all do
143
+ @customer = Factory :new_customer
144
+ @api_customer = nil
145
+
146
+ # TODO: figure out why multiple records are being created even though
147
+ # we use "before :all". Until then, here's the kludge...
148
+ if Mousetrap::Customer.all.size == 1
149
+ @api_customer = Mousetrap::Customer.all.first
150
+ @customer = @api_customer
151
+ else
152
+ @customer.save
153
+ @api_customer = Mousetrap::Customer[@customer.code]
154
+ end
155
+ end
156
+
157
+ describe "When I update the customer, with only customer attributes" do
158
+ before :all do
159
+ @api_customer = Mousetrap::Customer[@customer.code]
160
+
161
+ updated_attributes = {
162
+ :first_name => 'new_first',
163
+ :last_name => 'new_last',
164
+ :email => 'new_email@example.com',
165
+ :company => 'new_company'
166
+ }
167
+
168
+ @customer = Mousetrap::Customer.new updated_attributes
169
+ @customer.code = @api_customer.code
170
+ @customer.id = @api_customer.id
171
+
172
+ Mousetrap::Customer.update(@api_customer.code, updated_attributes)
173
+ end
174
+
175
+ it_should_behave_like "a Customer record from CheddarGetter"
176
+ end
177
+
178
+ describe "When I update the customer, with customer and subscription attributes" do
179
+ before :all do
180
+ @api_customer = Mousetrap::Customer[@customer.code]
181
+
182
+ updated_attributes = {
183
+ :first_name => 'new_first',
184
+ :last_name => 'new_last',
185
+ :email => 'new_email@example.com',
186
+ :company => 'new_company',
187
+ :subscription_attributes => {
188
+ :plan_code => 'TEST',
189
+ :billing_first_name => 'new_billing_first',
190
+ :billing_last_name => 'new_billing_last',
191
+ :credit_card_number => '5555555555554444',
192
+ :credit_card_expiration_month => '01',
193
+ :credit_card_expiration_year => '2013',
194
+ :billing_zip_code => '12345'
195
+ }
196
+ }
197
+
198
+ @credit_card_type = 'mc'
199
+
200
+ @customer = Mousetrap::Customer.new updated_attributes
201
+
202
+ # set up our test comparison objects as if they came from API gets
203
+ @customer.code = @api_customer.code
204
+ @customer.id = @api_customer.id
205
+ @customer.subscription.send(:id=, @api_customer.subscription.id)
206
+
207
+ Mousetrap::Customer.update(@api_customer.code, updated_attributes)
208
+ end
209
+
210
+ it_should_behave_like "a Customer record from CheddarGetter"
211
+ it_should_behave_like "an active Subscription record from CheddarGetter"
212
+ end
213
+ end
214
+ end
215
+
140
216
  describe "#cancel" do
141
217
  describe "Given a customer" do
142
218
  before :all do
@@ -114,6 +114,32 @@ describe Mousetrap::Customer do
114
114
  end
115
115
  end
116
116
 
117
+ describe '.update' do
118
+ def do_update
119
+ Mousetrap::Customer.update('some customer code', 'some attributes')
120
+ end
121
+
122
+ it "makes a new customer from the attributes" do
123
+ Mousetrap::Customer.should_receive(:new).with('some attributes').and_return(stub(:null_object => true))
124
+ do_update
125
+ end
126
+
127
+ it "sets the new customer code to the argument" do
128
+ customer = mock
129
+ customer.stub :update
130
+ Mousetrap::Customer.stub :new => customer
131
+ customer.should_receive(:code=).with('some customer code')
132
+ do_update
133
+ end
134
+
135
+ it "calls #update" do
136
+ customer = mock(:null_object => true)
137
+ Mousetrap::Customer.stub :new => customer
138
+ customer.should_receive :update
139
+ do_update
140
+ end
141
+ end
142
+
117
143
  describe '#cancel' do
118
144
  context "for existing records" do
119
145
  it 'cancels' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mousetrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Larkowski
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-10-23 00:00:00 -04:00
15
+ date: 2009-10-25 00:00:00 -04:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency