Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# encoding: utf-8
require 'test_helper'
class GooglePlacesDetailsTest < GeocoderTestCase
def setup
Geocoder.configure(lookup: :google_places_details)
set_api_key!(:google_places_details)
end
def test_google_places_details_result_components
assert_equal "Manhattan", madison_square_garden.address_components_of_type(:sublocality).first["long_name"]
end
def test_google_places_details_result_components_contains_route
assert_equal "Pennsylvania Plaza", madison_square_garden.address_components_of_type(:route).first["long_name"]
end
def test_google_places_details_result_components_contains_street_number
assert_equal "4", madison_square_garden.address_components_of_type(:street_number).first["long_name"]
end
def test_google_places_details_street_address_returns_formatted_street_address
assert_equal "4 Pennsylvania Plaza", madison_square_garden.street_address
end
def test_google_places_details_result_contains_place_id
assert_equal "ChIJhRwB-yFawokR5Phil-QQ3zM", madison_square_garden.place_id
end
def test_google_places_details_result_contains_latitude
assert_equal madison_square_garden.latitude, 40.750504
end
def test_google_places_details_result_contains_longitude
assert_equal madison_square_garden.longitude, -73.993439
end
def test_google_places_details_result_contains_rating
assert_equal 4.4, madison_square_garden.rating
end
def test_google_places_details_result_contains_rating_count
assert_equal 382, madison_square_garden.rating_count
end
def test_google_places_details_result_contains_reviews
reviews = madison_square_garden.reviews
assert_equal 2, reviews.size
assert_equal "John Smith", reviews.first["author_name"]
assert_equal 5, reviews.first["rating"]
assert_equal "It's nice.", reviews.first["text"]
assert_equal "en", reviews.first["language"]
end
def test_google_places_details_result_contains_types
assert_equal madison_square_garden.types, %w(stadium establishment)
end
def test_google_places_details_result_contains_website
assert_equal madison_square_garden.website, "http://www.thegarden.com/"
end
def test_google_places_details_result_contains_phone_number
assert_equal madison_square_garden.phone_number, "+1 212-465-6741"
end
def test_google_places_details_query_url_contains_placeid
url = lookup.query_url(Geocoder::Query.new("some-place-id"))
assert_match(/placeid=some-place-id/, url)
end
def test_google_places_details_query_url_contains_language
url = lookup.query_url(Geocoder::Query.new("some-place-id", language: "de"))
assert_match(/language=de/, url)
end
def test_google_places_details_query_url_always_uses_https
url = lookup.query_url(Geocoder::Query.new("some-place-id"))
assert_match(%r(^https://), url)
end
def test_google_places_details_result_with_no_reviews_shows_empty_reviews
assert_equal no_reviews_result.reviews, []
end
def test_google_places_details_result_with_no_types_shows_empty_types
assert_equal no_types_result.types, []
end
def test_google_places_details_result_with_invalid_place_id_empty
silence_warnings do
assert_equal Geocoder.search("invalid request"), []
end
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
end
def test_raises_exception_on_google_places_details_invalid_request
Geocoder.configure(always_raise: [Geocoder::InvalidRequest])
assert_raises Geocoder::InvalidRequest do
Geocoder.search("invalid request")
end
end
private
def lookup
Geocoder::Lookup::GooglePlacesDetails.new
end
def madison_square_garden
Geocoder.search("ChIJhRwB-yFawokR5Phil-QQ3zM").first
end
def no_reviews_result
Geocoder.search("no reviews").first
end
def no_types_result
Geocoder.search("no types").first
end
end