shoppr 0.1.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,28 +4,33 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
4
4
  include Shoppr
5
5
 
6
6
  context "When mapping general search response XML to ruby objects" do
7
- setup { @general_response = GeneralSearchResponse.from_xml(fixture_file('general_search_specs_offers_reviews.xml')) }
7
+ setup do
8
+ @client = Shoppr::Client.new(true)
9
+ stub_get 'http://sandbox.api.shopping.com/publisher/3.0/rest/GeneralSearch?apiKey=authorized-key&showProductReviews=true&trackingId=7000610&groupItemsByCategory=true&showProductSpecs=true&showProductOffers=true&keyword=nikon', 'general_search_specs_offers_reviews.xml'
10
+ # @general_response = GeneralSearchResponse.from_xml(fixture_file('general_search_specs_offers_reviews.xml'))
11
+ @general_response = @client.search({:keyword => "nikon", :show_product_specs => true, :show_product_reviews => true, :show_product_offers => true})
12
+ end
8
13
 
9
14
  should "include server detail information" do
10
- @general_response.server_detail.api_version.should == '3.1 R21.4'
15
+ @general_response.server_detail.api_version.should == '3.1 R25.4.1'
11
16
  @general_response.server_detail.api_env.should == 'sandbox'
12
17
  end
13
18
 
14
19
  should "include exceptions" do
15
20
  @general_response.exceptions.size.should == 1
16
- @general_response.exceptions.first.code.should == 1112
21
+ @general_response.exceptions.first.code.should == '1112'
17
22
  end
18
23
 
19
24
  should "include client tracking info" do
20
- @general_response.client_tracking.height.should == 19
21
- @general_response.client_tracking.width.should == 106
25
+ @general_response.client_tracking.height.should == '19'
26
+ @general_response.client_tracking.width.should == '106'
22
27
  @general_response.client_tracking.type.should == 'logo'
23
28
  @general_response.client_tracking.alt_text.should == 'Digital Cameras'
24
29
  end
25
30
 
26
31
  should "include search history info" do
27
32
  @general_response.search_history.category_selections.size.should == 3
28
- @general_response.search_history.category_selections.last.id.should == 7185
33
+ @general_response.search_history.category_selections.last.id.should == '7185'
29
34
  @general_response.search_history.category_selections.last.category_url.should == 'http://www.shopping.com/xPP-digital_cameras-nikon~linkin_id-7000610?oq=nikon'
30
35
  end
31
36
 
@@ -44,13 +49,13 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
44
49
  end
45
50
 
46
51
  should "include category properties" do
47
- @categories.first.id.should == 7185
52
+ @categories.first.id.should == '7185'
48
53
  @categories.first.name.should == 'Digital Cameras'
49
54
  @categories.first.category_url.should == 'http://www.shopping.com/xPP-digital_cameras-nikon~linkin_id-7000610?oq=nikon'
50
55
  end
51
56
 
52
57
  should "include products" do
53
- @categories.first.products.size.should == 5
58
+ @categories.first.products.size.should == 2
54
59
  end
55
60
 
56
61
  context "when mapping products" do
@@ -59,13 +64,11 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
59
64
  end
60
65
 
61
66
  should "should map product attributes" do
62
- @product.id.should == 37724181
63
- @product.name.should == 'Nikon D40 Digital Camera with 18-55mm lens'
64
- @product.short_description.should == '6.24 Megapixel, SLR Camera, 2.5 in. LCD Screen, 3x Optical Zoom, Weight: 1.06 lb.'
65
- @product.min_price.should == 375.00
66
- @product.max_price.should == 600.00
67
- @product.product_offers_url.should == 'http://www.shopping.com/xPO-Nikon-D40-with-G-II-18-55mm-Lens~linkin_id-7000610'
68
- @product.product_specs_url.should == 'http://www.shopping.com/xPF-Nikon-D40-with-G-II-18-55mm-Lens~linkin_id-7000610'
67
+ @product.id.should == '95738382'
68
+ @product.name.should == "Nikon COOLPIX S4000 Digital Camera"
69
+ @product.short_description.should == '12 Megapixel, Compact Camera, 3 in. LCD Screen, 4x Optical Zoom, With High Definition Video, Weight: 0.29 lb.'
70
+ @product.min_price.should == '167.00'
71
+ @product.max_price.should == '301.00'
69
72
  end
70
73
 
71
74
  context "when mapping offers" do
@@ -75,23 +78,10 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
75
78
 
76
79
  should "should include offer info" do
77
80
  @product.offers.size.should == 5
78
- @offer.featured?.should == true
79
- @offer.smart_buy?.should == false
80
- @offer.used?.should == false
81
- @offer.name.should == 'Nikon D40 6.1 Megapixel Digital SLR Camera 3X Zoom Kit Outfit, with 18-55mm f/3.5-5.6G ED II AF-S DX Zoom Nikkor Lens - Refurbished by Nikon U.S.A.'
82
- @offer.description.length.should_not == 0
83
- @offer.category_id.should == 7185
84
- @offer.manufacturer.should == 'Nikon'
85
- @offer.images.size.should == 4
86
- @offer.images.last.width.should == 400
87
- @offer.stock_status.should == 'in-stock'
88
- @offer.store_notes.should == 'Refurbished Model'
89
- #@offer.currency.should == 'USD'
90
- @offer.base_price.should == 374.95
91
- @offer.tax.should == nil
92
- @offer.shipping_cost.should == 0.00
93
- @offer.total_price.should == nil
94
- @offer.offer_url.include?('http://').should == true
81
+ @offer.featured.should == false
82
+ @offer.smart_buy.should == false
83
+ @offer.used.should == false
84
+ @offer.name.should == 'Coolpix S4000 Digital Camera, 12MP, 4x Zoom, Black'
95
85
  end
96
86
 
97
87
  context "when mapping store info" do
@@ -100,20 +90,17 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
100
90
  end
101
91
 
102
92
  should "should include store info" do
103
- @store.name.should == 'Adorama'
104
- @store.logo.height.should == 31
105
- @store.rating.should == 4.50
106
- @store.review_count.should == 6187
107
- @store.review_url.should == 'http://www.shopping.com/xMR-null~MRD-9391~S-1~linkin_id-7000610'
108
- @store.rating_image.source_url.should == 'http://img.shopping.com/sc/mr/sdc_checks_45.gif'
109
- @store.country_code.should == 'US'
93
+ @store.name.should == 'PC Connection Express'
94
+ @store.logo.height.should == '31'
95
+ @store.rating.should == '4.50'
96
+ @store.review_count.should == '5686'
110
97
  end
111
98
  end
112
99
 
113
100
  end
114
101
 
115
102
  should "include specifications" do
116
- @product.specifications.size.should == 15
103
+ @product.specifications.size.should == 14
117
104
  end
118
105
 
119
106
  context "when mapping feature groups" do
@@ -122,24 +109,19 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
122
109
  end
123
110
 
124
111
  should "should include feature info" do
125
- @feature_group.features.size.should == 5
112
+ @feature_group.features.size.should == 6
126
113
  @feature = @feature_group.features[3]
127
- @feature.name.should == 'Image Sensor Type'
128
- @feature.description.nil?.should == false
129
- @feature.values.first.should == 'CCD'
114
+ @feature.name.should == 'Optical Zoom'
130
115
  end
131
116
  end
132
117
 
133
118
 
134
119
  should "include review info" do
135
- @product.review_count.should == 101
136
- @product.rating.should == 4.00
120
+ @product.review_count.should == '4'
121
+ @product.rating.should == '4.00'
137
122
  @product.rating_image.source_url.should == 'http://img.shopping.com/sc/pr/sdc_stars_sm_4.gif'
138
- @product.reviews.size.should == 5
139
- @product.overall_rating.should == 4.00
140
- @product.feature_ratings.size.should == 5
141
- @product.feature_ratings.last.name.should == 'Shutter Lag'
142
- @product.feature_ratings.last.value.should == 4.64
123
+ @product.reviews.size.should == 1
124
+ @product.overall_rating.should == '4.00'
143
125
  end
144
126
 
145
127
  context "when mapping consumer reviews" do
@@ -148,17 +130,9 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
148
130
  end
149
131
 
150
132
  should "include review info" do
151
- @review.author_id.should == 'phill525'
152
- @review.post_date.yday.should == 124
153
- @review.rating.should == 5.00
154
- @review.feature_ratings.size.should == 5
155
- @review.feature_ratings.first.name.should == 'Ease of Use:'
156
- @review.feature_ratings.first.value.should == 4
157
- @review.summary.should == 'Nikon D40'
158
- @review.pros.should == 'Lots of features.<br>Easy to use.<br>Intuitive menu.'
159
- @review.cons.should == 'No video capture like most recent SLR\'s, but not really a "con".'
160
- @review.content.should == 'This is an EXCELLENT camera for the money.&nbsp; Don\'t be drawn to more expensive cameras just becau'
161
- @review.url.should == 'http://www.epinions.com/content_469199523460?linkin_id=7000610'
133
+ @review.author_id.should == 'hdsquared'
134
+ @review.post_date.to_datetime.yday.should == 146
135
+ @review.rating.should == '1.00'
162
136
  end
163
137
  end
164
138
 
@@ -166,19 +140,14 @@ class GeneralSearchResponseTest < Test::Unit::TestCase
166
140
 
167
141
  should "should include images" do
168
142
  #@product.images.size.should == 4
169
- @product.images.first.height.should == 100
170
- @product.images.last.width.should == 400
171
- @product.images.last.source_url.should == 'http://di1.shopping.com/images/pi/dd/9b/90/37724181-400x400-0-0.jpg?p=w2.8817498383328ac21657&a=2&c=1&l=7000610&t=090810232437&r=5'
143
+ @product.images.first.height.should == '100'
144
+ @product.images.last.width.should == '350'
145
+ @product.images.last.source_url.should == "http://di1.shopping.com/images/pi/36/ff/8e/95738382-350x349-0-0.jpg?p=p2.90ca531eeb3e309b5933&a=2&c=1&l=7000610&t=100610122258&r=2"
172
146
  end
173
147
  end
174
148
 
175
149
  end
176
-
177
-
178
- should "include offers" do
179
- @categories.first.offers.size.should == 0
180
- end
181
-
150
+
182
151
  should "include attributes" do
183
152
  @categories.first.attributes.size.should == 5
184
153
  end
@@ -4,7 +4,7 @@ class GenericResponseTest < Test::Unit::TestCase
4
4
  include Shoppr
5
5
 
6
6
  context "When mapping generic response XML to ruby objects" do
7
- setup { @response = GenericResponse.from_xml(fixture_file('generic_response.xml')) }
7
+ setup { @response = Shoppr::Client.new(true).generic_response }
8
8
 
9
9
  should "include server detail information" do
10
10
  @response.server_detail.api_version.should == '3.1 R21.4'
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoppr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ hash: 17
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 3
10
+ version: 0.2.3
5
11
  platform: ruby
6
12
  authors:
7
13
  - Wynn Netherland
@@ -10,91 +16,123 @@ autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2009-12-02 00:00:00 -06:00
19
+ date: 2010-06-16 00:00:00 -05:00
14
20
  default_executable:
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
17
- name: mash
18
- type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
23
+ name: hashie
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
21
27
  requirements:
22
28
  - - "="
23
29
  - !ruby/object:Gem::Version
24
- version: 0.0.3
25
- version:
30
+ hash: 23
31
+ segments:
32
+ - 0
33
+ - 2
34
+ - 0
35
+ version: 0.2.0
36
+ type: :runtime
37
+ version_requirements: *id001
26
38
  - !ruby/object:Gem::Dependency
27
39
  name: httparty
28
- type: :runtime
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
31
43
  requirements:
32
- - - ~>
44
+ - - ">="
33
45
  - !ruby/object:Gem::Version
34
- version: 0.4.3
35
- version:
46
+ hash: 11
47
+ segments:
48
+ - 0
49
+ - 5
50
+ - 0
51
+ version: 0.5.0
52
+ type: :runtime
53
+ version_requirements: *id002
36
54
  - !ruby/object:Gem::Dependency
37
55
  name: thoughtbot-shoulda
38
- type: :development
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
41
59
  requirements:
42
60
  - - ">="
43
61
  - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
44
65
  version: "0"
45
- version:
66
+ type: :development
67
+ version_requirements: *id003
46
68
  - !ruby/object:Gem::Dependency
47
69
  name: jeremymcanally-matchy
48
- type: :development
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
51
73
  requirements:
52
74
  - - ">="
53
75
  - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
54
79
  version: "0"
55
- version:
80
+ type: :development
81
+ version_requirements: *id004
56
82
  - !ruby/object:Gem::Dependency
57
83
  name: mocha
58
- type: :development
59
- version_requirement:
60
- version_requirements: !ruby/object:Gem::Requirement
84
+ prerelease: false
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
61
87
  requirements:
62
88
  - - ">="
63
89
  - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
64
93
  version: "0"
65
- version:
94
+ type: :development
95
+ version_requirements: *id005
66
96
  - !ruby/object:Gem::Dependency
67
97
  name: fakeweb
68
- type: :development
69
- version_requirement:
70
- version_requirements: !ruby/object:Gem::Requirement
98
+ prerelease: false
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
71
101
  requirements:
72
102
  - - ">="
73
103
  - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
74
107
  version: "0"
75
- version:
76
- - !ruby/object:Gem::Dependency
77
- name: mash
78
108
  type: :development
79
- version_requirement:
80
- version_requirements: !ruby/object:Gem::Requirement
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: hashie
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
81
115
  requirements:
82
116
  - - ">="
83
117
  - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
84
121
  version: "0"
85
- version:
122
+ type: :development
123
+ version_requirements: *id007
86
124
  description:
87
- email: wynn@squeejee.com
125
+ email: jim@squeejee.com
88
126
  executables: []
89
127
 
90
128
  extensions: []
91
129
 
92
130
  extra_rdoc_files:
93
- - README.rdoc
131
+ - README.markdown
94
132
  files:
95
133
  - History
96
134
  - License
97
- - README.rdoc
135
+ - README.markdown
98
136
  - Rakefile
99
137
  - VERSION.yml
100
138
  - lib/shoppr.rb
@@ -140,21 +178,27 @@ rdoc_options:
140
178
  require_paths:
141
179
  - lib
142
180
  required_ruby_version: !ruby/object:Gem::Requirement
181
+ none: false
143
182
  requirements:
144
183
  - - ">="
145
184
  - !ruby/object:Gem::Version
185
+ hash: 3
186
+ segments:
187
+ - 0
146
188
  version: "0"
147
- version:
148
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
+ none: false
149
191
  requirements:
150
192
  - - ">="
151
193
  - !ruby/object:Gem::Version
194
+ hash: 3
195
+ segments:
196
+ - 0
152
197
  version: "0"
153
- version:
154
198
  requirements: []
155
199
 
156
200
  rubyforge_project: shoppr
157
- rubygems_version: 1.3.5
201
+ rubygems_version: 1.3.7
158
202
  signing_key:
159
203
  specification_version: 3
160
204
  summary: Ruby wrapper for the Shopping.com API
@@ -1,17 +0,0 @@
1
- = shoppr
2
-
3
- The Ruby Shopping.com API gem.
4
-
5
- == examples
6
-
7
- See the examples directory.
8
-
9
- http://github.com/squeejee/shoppr/tree/master/examples
10
-
11
- == docs
12
-
13
- http://rdoc.info/projects/squeejee/shoppr
14
-
15
- == Copyright
16
-
17
- Copyright (c) 2009 Squeejee. See LICENSE for details.