yelp4r 1.1.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.
@@ -0,0 +1,42 @@
1
+ <html>
2
+ <body>
3
+ <div>
4
+ <ul class="attr-list">
5
+ <li>Canada</li>
6
+ <ul>
7
+ <li>Vancouver, BC</li>
8
+ <ul>
9
+ <li>Ambleside</li>
10
+ <li>Yaletown</li>
11
+ </ul>
12
+ <li>Toronto, ON</li>
13
+ </ul>
14
+ <li>USA</li>
15
+ <ul>
16
+ <li>Berkeley, CA</li>
17
+ <ul>
18
+ <li>Claremont</li>
19
+ <li>Downtown Berkeley</li>
20
+ <li>East Solano Ave</li>
21
+ <li>Elmwood</li>
22
+ </ul>
23
+ <li>New York, NY</li>
24
+ <ul>
25
+ <li>Bronx</li>
26
+ <ul>
27
+ <li>Baychester</li>
28
+ <li>Bedford Park</li>
29
+ </ul>
30
+ <li>Brooklyn</li>
31
+ <ul>
32
+ <li>Bath Beach</li>
33
+ <li>Bay Ridge</li>
34
+ </ul>
35
+ <li>Staten Island</li>
36
+ </ul>
37
+ <li>Seattle, WA</li>
38
+ </ul>
39
+ </ul>
40
+ </div>
41
+ </body>
42
+ </html>
data/spec/rcov.opts ADDED
@@ -0,0 +1 @@
1
+ --exclude "spec/*"
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,256 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ require 'yelp4r'
11
+
12
+ module Yelp4rSpecHelper
13
+
14
+ def yelp4r_client
15
+ Yelp4r::Client.new('jprr4VyNVMGZrd-FARdSQA')
16
+ end
17
+
18
+ end
19
+
20
+ module Yelp4rNeighsSpecHelper
21
+
22
+ def yelp4r_test_neighs_list
23
+ [
24
+ {"Canada" => [
25
+ {"Vancouver, BC" => [
26
+ "Ambleside", "Yaletown"
27
+ ]
28
+ },
29
+ "Toronto, ON"
30
+ ]
31
+ },
32
+ {"USA" => [
33
+ {"Berkeley, CA" => [
34
+ "Claremont", "Downtown Berkeley", "East Solano Ave", "Elmwood"
35
+ ]
36
+ },
37
+ {"New York, NY" => [
38
+ {"Bronx" => [
39
+ "Baychester", "Bedford Park"
40
+ ]
41
+ },
42
+ {"Brooklyn" => [
43
+ "Bath Beach", "Bay Ridge"
44
+ ]
45
+ },
46
+ "Staten Island"
47
+ ]
48
+ },
49
+ "Seattle, WA"
50
+ ]
51
+ }
52
+ ]
53
+ end
54
+
55
+ def yelp4r_test_neighs_opts
56
+ [
57
+ '<option value="Canada">Canada</option>',
58
+ '<option value="Vancouver, BC, Canada">&nbsp;-&nbsp;Vancouver, BC</option>',
59
+ '<option value="Ambleside, Vancouver, BC, Canada">&nbsp;-&nbsp;-&nbsp;Ambleside</option>',
60
+ '<option value="Yaletown, Vancouver, BC, Canada">&nbsp;-&nbsp;-&nbsp;Yaletown</option>',
61
+ '<option value="Toronto, ON, Canada">&nbsp;-&nbsp;Toronto, ON</option>',
62
+ '<option value="USA">USA</option>',
63
+ '<option value="Berkeley, CA, USA">&nbsp;-&nbsp;Berkeley, CA</option>',
64
+ '<option value="Claremont, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Claremont</option>',
65
+ '<option value="Downtown Berkeley, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Downtown Berkeley</option>',
66
+ '<option value="East Solano Ave, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;East Solano Ave</option>',
67
+ '<option value="Elmwood, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Elmwood</option>',
68
+ '<option value="New York, NY, USA">&nbsp;-&nbsp;New York, NY</option>',
69
+ '<option value="Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Bronx</option>',
70
+ '<option value="Baychester, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Baychester</option>',
71
+ '<option value="Bedford Park, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bedford Park</option>',
72
+ '<option value="Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Brooklyn</option>',
73
+ '<option value="Bath Beach, Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bath Beach</option>',
74
+ '<option value="Bay Ridge, Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bay Ridge</option>',
75
+ '<option value="Staten Island, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Staten Island</option>',
76
+ '<option value="Seattle, WA, USA">&nbsp;-&nbsp;Seattle, WA</option>'
77
+ ]
78
+ end
79
+
80
+ def yelp4r_test_neighs_opts_single_selected
81
+ [
82
+ '<option value="Canada">Canada</option>',
83
+ '<option value="Vancouver, BC, Canada">&nbsp;-&nbsp;Vancouver, BC</option>',
84
+ '<option value="Ambleside, Vancouver, BC, Canada">&nbsp;-&nbsp;-&nbsp;Ambleside</option>',
85
+ '<option value="Yaletown, Vancouver, BC, Canada" selected="selected">&nbsp;-&nbsp;-&nbsp;Yaletown</option>',
86
+ '<option value="Toronto, ON, Canada">&nbsp;-&nbsp;Toronto, ON</option>',
87
+ '<option value="USA">USA</option>',
88
+ '<option value="Berkeley, CA, USA">&nbsp;-&nbsp;Berkeley, CA</option>',
89
+ '<option value="Claremont, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Claremont</option>',
90
+ '<option value="Downtown Berkeley, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Downtown Berkeley</option>',
91
+ '<option value="East Solano Ave, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;East Solano Ave</option>',
92
+ '<option value="Elmwood, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Elmwood</option>',
93
+ '<option value="New York, NY, USA">&nbsp;-&nbsp;New York, NY</option>',
94
+ '<option value="Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Bronx</option>',
95
+ '<option value="Baychester, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Baychester</option>',
96
+ '<option value="Bedford Park, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bedford Park</option>',
97
+ '<option value="Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Brooklyn</option>',
98
+ '<option value="Bath Beach, Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bath Beach</option>',
99
+ '<option value="Bay Ridge, Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bay Ridge</option>',
100
+ '<option value="Staten Island, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Staten Island</option>',
101
+ '<option value="Seattle, WA, USA">&nbsp;-&nbsp;Seattle, WA</option>'
102
+ ]
103
+ end
104
+
105
+ def yelp4r_test_neighs_opts_multiple_selected
106
+ [
107
+ '<option value="Canada">Canada</option>',
108
+ '<option value="Vancouver, BC, Canada">&nbsp;-&nbsp;Vancouver, BC</option>',
109
+ '<option value="Ambleside, Vancouver, BC, Canada">&nbsp;-&nbsp;-&nbsp;Ambleside</option>',
110
+ '<option value="Yaletown, Vancouver, BC, Canada" selected="selected">&nbsp;-&nbsp;-&nbsp;Yaletown</option>',
111
+ '<option value="Toronto, ON, Canada">&nbsp;-&nbsp;Toronto, ON</option>',
112
+ '<option value="USA">USA</option>',
113
+ '<option value="Berkeley, CA, USA">&nbsp;-&nbsp;Berkeley, CA</option>',
114
+ '<option value="Claremont, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Claremont</option>',
115
+ '<option value="Downtown Berkeley, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Downtown Berkeley</option>',
116
+ '<option value="East Solano Ave, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;East Solano Ave</option>',
117
+ '<option value="Elmwood, Berkeley, CA, USA">&nbsp;-&nbsp;-&nbsp;Elmwood</option>',
118
+ '<option value="New York, NY, USA" selected="selected">&nbsp;-&nbsp;New York, NY</option>',
119
+ '<option value="Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Bronx</option>',
120
+ '<option value="Baychester, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Baychester</option>',
121
+ '<option value="Bedford Park, Bronx, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bedford Park</option>',
122
+ '<option value="Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Brooklyn</option>',
123
+ '<option value="Bath Beach, Brooklyn, New York, NY, USA" selected="selected">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bath Beach</option>',
124
+ '<option value="Bay Ridge, Brooklyn, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;-&nbsp;Bay Ridge</option>',
125
+ '<option value="Staten Island, New York, NY, USA">&nbsp;-&nbsp;-&nbsp;Staten Island</option>',
126
+ '<option value="Seattle, WA, USA">&nbsp;-&nbsp;Seattle, WA</option>'
127
+ ]
128
+ end
129
+
130
+ end
131
+
132
+ module Yelp4rCatsSpecHelper
133
+
134
+ def yelp4r_test_cats_list
135
+ [
136
+ {"active" => {
137
+ :display => "Active Life",
138
+ :children => [
139
+ {"amusementparks" => {:display => "Amusement Parks"}},
140
+ {"fitness" => {
141
+ :display => "Fitness & Instruction",
142
+ :children => [
143
+ {"dancestudio" => {:display => "Dance Studios"}},
144
+ {"gyms" => {:display => "Gyms"}},
145
+ {"martialarts" => {:display => "Martial Arts"}}
146
+ ]
147
+ }
148
+ }
149
+ ]
150
+ }
151
+ },
152
+ {"auto" => {
153
+ :display => "Automotive",
154
+ :children => [
155
+ {"auto_detailing" => {:display => "Auto Detailing"}},
156
+ {"autoglass" => {:display => "Auto Glass Services"}}
157
+ ]
158
+ }
159
+ },
160
+ {"shopping" => {
161
+ :display => "Shopping",
162
+ :children => [
163
+ {"homeandgarden" => {
164
+ :display => "Home & Garden",
165
+ :children => [
166
+ {"appliances" => {:display => "Appliances"}},
167
+ {"furniture" => {:display => "Furniture Stores"}}
168
+ ]
169
+ }
170
+ },
171
+ {"sportgoods" => {
172
+ :display => "Sporting Goods",
173
+ :children => [
174
+ {"bikes" => {:display => "Bikes"}},
175
+ {"outdoorgear" => {:display => "Outdoor Gear"}},
176
+ {"sportswear" => {:display => "Sports Wear"}}
177
+ ]
178
+ }
179
+ },
180
+ {"thrift_stores" => {:display => "Thrift Stores"}}
181
+ ]
182
+ }
183
+ }
184
+ ]
185
+ end
186
+
187
+ def yelp4r_test_cats_opts
188
+ [
189
+ '<option value="active">Active Life</option>',
190
+ '<option value="amusementparks">&nbsp;-&nbsp;Amusement Parks</option>',
191
+ '<option value="fitness">&nbsp;-&nbsp;Fitness & Instruction</option>',
192
+ '<option value="dancestudio">&nbsp;-&nbsp;-&nbsp;Dance Studios</option>',
193
+ '<option value="gyms">&nbsp;-&nbsp;-&nbsp;Gyms</option>',
194
+ '<option value="martialarts">&nbsp;-&nbsp;-&nbsp;Martial Arts</option>',
195
+ '<option value="auto">Automotive</option>',
196
+ '<option value="auto_detailing">&nbsp;-&nbsp;Auto Detailing</option>',
197
+ '<option value="autoglass">&nbsp;-&nbsp;Auto Glass Services</option>',
198
+ '<option value="shopping">Shopping</option>',
199
+ '<option value="homeandgarden">&nbsp;-&nbsp;Home & Garden</option>',
200
+ '<option value="appliances">&nbsp;-&nbsp;-&nbsp;Appliances</option>',
201
+ '<option value="furniture">&nbsp;-&nbsp;-&nbsp;Furniture Stores</option>',
202
+ '<option value="sportgoods">&nbsp;-&nbsp;Sporting Goods</option>',
203
+ '<option value="bikes">&nbsp;-&nbsp;-&nbsp;Bikes</option>',
204
+ '<option value="outdoorgear">&nbsp;-&nbsp;-&nbsp;Outdoor Gear</option>',
205
+ '<option value="sportswear">&nbsp;-&nbsp;-&nbsp;Sports Wear</option>',
206
+ '<option value="thrift_stores">&nbsp;-&nbsp;Thrift Stores</option>'
207
+ ]
208
+ end
209
+
210
+ def yelp4r_test_cats_opts_single_selected
211
+ [
212
+ '<option value="active">Active Life</option>',
213
+ '<option value="amusementparks">&nbsp;-&nbsp;Amusement Parks</option>',
214
+ '<option value="fitness">&nbsp;-&nbsp;Fitness & Instruction</option>',
215
+ '<option value="dancestudio">&nbsp;-&nbsp;-&nbsp;Dance Studios</option>',
216
+ '<option value="gyms" selected="selected">&nbsp;-&nbsp;-&nbsp;Gyms</option>',
217
+ '<option value="martialarts">&nbsp;-&nbsp;-&nbsp;Martial Arts</option>',
218
+ '<option value="auto">Automotive</option>',
219
+ '<option value="auto_detailing">&nbsp;-&nbsp;Auto Detailing</option>',
220
+ '<option value="autoglass">&nbsp;-&nbsp;Auto Glass Services</option>',
221
+ '<option value="shopping">Shopping</option>',
222
+ '<option value="homeandgarden">&nbsp;-&nbsp;Home & Garden</option>',
223
+ '<option value="appliances">&nbsp;-&nbsp;-&nbsp;Appliances</option>',
224
+ '<option value="furniture">&nbsp;-&nbsp;-&nbsp;Furniture Stores</option>',
225
+ '<option value="sportgoods">&nbsp;-&nbsp;Sporting Goods</option>',
226
+ '<option value="bikes">&nbsp;-&nbsp;-&nbsp;Bikes</option>',
227
+ '<option value="outdoorgear">&nbsp;-&nbsp;-&nbsp;Outdoor Gear</option>',
228
+ '<option value="sportswear">&nbsp;-&nbsp;-&nbsp;Sports Wear</option>',
229
+ '<option value="thrift_stores">&nbsp;-&nbsp;Thrift Stores</option>'
230
+ ]
231
+ end
232
+
233
+ def yelp4r_test_cats_opts_multiple_selected
234
+ [
235
+ '<option value="active">Active Life</option>',
236
+ '<option value="amusementparks">&nbsp;-&nbsp;Amusement Parks</option>',
237
+ '<option value="fitness">&nbsp;-&nbsp;Fitness & Instruction</option>',
238
+ '<option value="dancestudio">&nbsp;-&nbsp;-&nbsp;Dance Studios</option>',
239
+ '<option value="gyms" selected="selected">&nbsp;-&nbsp;-&nbsp;Gyms</option>',
240
+ '<option value="martialarts">&nbsp;-&nbsp;-&nbsp;Martial Arts</option>',
241
+ '<option value="auto">Automotive</option>',
242
+ '<option value="auto_detailing">&nbsp;-&nbsp;Auto Detailing</option>',
243
+ '<option value="autoglass" selected="selected">&nbsp;-&nbsp;Auto Glass Services</option>',
244
+ '<option value="shopping">Shopping</option>',
245
+ '<option value="homeandgarden">&nbsp;-&nbsp;Home & Garden</option>',
246
+ '<option value="appliances" selected="selected">&nbsp;-&nbsp;-&nbsp;Appliances</option>',
247
+ '<option value="furniture">&nbsp;-&nbsp;-&nbsp;Furniture Stores</option>',
248
+ '<option value="sportgoods">&nbsp;-&nbsp;Sporting Goods</option>',
249
+ '<option value="bikes">&nbsp;-&nbsp;-&nbsp;Bikes</option>',
250
+ '<option value="outdoorgear">&nbsp;-&nbsp;-&nbsp;Outdoor Gear</option>',
251
+ '<option value="sportswear">&nbsp;-&nbsp;-&nbsp;Sports Wear</option>',
252
+ '<option value="thrift_stores">&nbsp;-&nbsp;Thrift Stores</option>'
253
+ ]
254
+ end
255
+
256
+ end
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/yelp4r'
3
+
4
+ describe Yelp4r::Categories do
5
+ include Yelp4rSpecHelper
6
+ include Yelp4rCatsSpecHelper
7
+
8
+ before do
9
+ @yelp_cats = Yelp4r::Categories.new
10
+ @yelp_cats.parse_url = File.dirname(__FILE__) + "/../fixtures/categories.html"
11
+ end
12
+
13
+ describe 'initialize' do
14
+ it 'should set the url for the page to parse' do
15
+ @yelp_cats.parse_url.should_not be_blank
16
+ end
17
+ end
18
+
19
+ describe 'list' do
20
+ before do
21
+ @cats = @yelp_cats.list
22
+ end
23
+
24
+ it "should return the list of categies" do
25
+ @cats.should_not be_blank
26
+ @cats.should == yelp4r_test_cats_list
27
+ end
28
+ end
29
+
30
+ describe 'options_from_list' do
31
+ it "should return an array of options" do
32
+ @yelp_cats.options_from_list.should_not be_blank
33
+ @yelp_cats.options_from_list.should == yelp4r_test_cats_opts
34
+ end
35
+
36
+ it "should return an array of options with a single selected value when given a string" do
37
+ @opts = @yelp_cats.options_from_list("gyms")
38
+ @opts.should_not be_blank
39
+ @opts.should == yelp4r_test_cats_opts_single_selected
40
+ end
41
+
42
+ it "should return an array of options with multiple selected values when given a array" do
43
+ @opts = @yelp_cats.options_from_list(["gyms", "autoglass", "appliances"])
44
+ @opts.should_not be_blank
45
+ @opts.should == yelp4r_test_cats_opts_multiple_selected
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,22 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/yelp4r'
3
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/client'
4
+
5
+ describe Yelp4r::Client do
6
+ include Yelp4rSpecHelper
7
+
8
+ describe 'initialize' do
9
+ before do
10
+ @client = yelp4r_client
11
+ end
12
+
13
+ it 'sets the base_uri' do
14
+ @client.class.base_uri.should == 'http://api.yelp.com'
15
+ end
16
+
17
+ it 'sets default params to include the api key' do
18
+ @client.class.default_params.should == {:ywsid => 'jprr4VyNVMGZrd-FARdSQA'}
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,75 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/yelp4r'
3
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/client'
4
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/neighborhood_search'
5
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/response'
6
+
7
+ describe Yelp4r::NeighborhoodSearch do
8
+ include Yelp4rSpecHelper
9
+
10
+ before do
11
+ @client = yelp4r_client
12
+ @neighborhood_search = Yelp4r::NeighborhoodSearch.new(@client)
13
+ end
14
+
15
+ describe 'initialize' do
16
+ it 'set the client' do
17
+ @neighborhood_search.client.class.should == Yelp4r::Client
18
+ end
19
+ end
20
+
21
+ describe 'search_by_geocode' do
22
+ it 'should return results when passed a lat lon' do
23
+ @results = get_neighborhoods(42.3500, -71.0780)
24
+ @results.should be_success
25
+ @results.data.should_not be_blank
26
+ @results.error_message.should be_blank
27
+ end
28
+
29
+ it 'should not return results when given invalid params' do
30
+ @results = get_neighborhoods(42.3500, '')
31
+ @results.should_not be_success
32
+ @results.data.should be_blank
33
+ @results.error_message.should_not be_blank
34
+ end
35
+
36
+ def get_neighborhoods(*params)
37
+ @neighborhood_search.search_by_geocode(*params)
38
+ end
39
+ end
40
+
41
+ describe 'search_by_location' do
42
+ it 'should return results when given a location' do
43
+ @results = get_neighborhoods('1512 Shattuck Ave., Berkely, CA')
44
+ @results.should be_success
45
+ @results.data.should_not be_blank
46
+ @results.error_message.should be_blank
47
+ end
48
+
49
+ it 'should return results when given a location and a country code' do
50
+ @results = get_neighborhoods('1512 Shattuck Ave., Berkely, CA', 'US')
51
+ @results.should be_success
52
+ @results.data.should_not be_blank
53
+ @results.error_message.should be_blank
54
+ end
55
+
56
+ it 'should error when missing a location' do
57
+ @results = get_neighborhoods('')
58
+ @results.should_not be_success
59
+ @results.data.should be_blank
60
+ @results.error_message.should_not be_blank
61
+ end
62
+
63
+ it 'should error when given an invalid params' do
64
+ @results = get_neighborhoods('', 'US')
65
+ @results.should_not be_success
66
+ @results.data.should be_blank
67
+ @results.error_message.should_not be_blank
68
+ end
69
+
70
+ def get_neighborhoods(*params)
71
+ @neighborhood_search.search_by_location(*params)
72
+ end
73
+ end
74
+
75
+ end
@@ -0,0 +1,53 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/yelp4r'
3
+
4
+ describe Yelp4r::Neighborhoods do
5
+ include Yelp4rSpecHelper
6
+ include Yelp4rNeighsSpecHelper
7
+
8
+ before do
9
+ @yelp_neighs = Yelp4r::Neighborhoods.new
10
+ @yelp_neighs.parse_url = File.dirname(__FILE__) + "/../fixtures/neighborhoods.html"
11
+ end
12
+
13
+ describe 'initialize' do
14
+ it 'should set the url for the page to parse' do
15
+ @yelp_neighs.parse_url.should_not be_blank
16
+ end
17
+ end
18
+
19
+ describe 'list' do
20
+ before do
21
+ @neighs = @yelp_neighs.list
22
+ end
23
+
24
+ it "should return the list of neighborhoods" do
25
+ @neighs.should_not be_blank
26
+ @neighs.should == yelp4r_test_neighs_list
27
+ end
28
+ end
29
+
30
+ describe 'options_from_collection' do
31
+ it "should return an array of options" do
32
+ @yelp_neighs.options_from_list.should_not be_blank
33
+ @yelp_neighs.options_from_list.should == yelp4r_test_neighs_opts
34
+ end
35
+
36
+ it "should return an array of options with a single selected value when given a string" do
37
+ @opts = @yelp_neighs.options_from_list("Yaletown, Vancouver, BC, Canada")
38
+ @opts.should_not be_blank
39
+ @opts.should == yelp4r_test_neighs_opts_single_selected
40
+ end
41
+
42
+ it "should return an array of options with multiple selected values when given a array" do
43
+ @opts = @yelp_neighs.options_from_list([
44
+ "Yaletown, Vancouver, BC, Canada",
45
+ "New York, NY, USA",
46
+ "Bath Beach, Brooklyn, New York, NY, USA"
47
+ ])
48
+ @opts.should_not be_blank
49
+ @opts.should == yelp4r_test_neighs_opts_multiple_selected
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,41 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/yelp4r'
3
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/client'
4
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/phone_search'
5
+ require File.dirname(__FILE__) + '/../../lib/yelp4r/response'
6
+
7
+ describe Yelp4r::PhoneSearch do
8
+ include Yelp4rSpecHelper
9
+
10
+ before do
11
+ @client = yelp4r_client
12
+ @phone_search = Yelp4r::PhoneSearch.new(@client)
13
+ end
14
+
15
+ describe 'initialize' do
16
+ it 'set the client' do
17
+ @phone_search.client.class.should == Yelp4r::Client
18
+ end
19
+ end
20
+
21
+ describe 'phone_search' do
22
+ it 'should return data on a valid phone number' do
23
+ @results = phone_get('4155463149')
24
+ @results.should be_success
25
+ @results.data.should_not be_blank
26
+ @results.error_message.should be_blank
27
+ end
28
+
29
+ it 'should not return data on an invalid phone number' do
30
+ @results = phone_get('415546314')
31
+ @results.should_not be_success
32
+ @results.data.should be_blank
33
+ @results.error_message.should_not be_blank
34
+ end
35
+
36
+ def phone_get(*params)
37
+ @phone_search.search_by_phone_number(*params)
38
+ end
39
+ end
40
+
41
+ end