qype-qype 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.markdown +24 -0
- data/Rakefile +19 -0
- data/lib/httparty_patch.rb +38 -0
- data/lib/qype.rb +9 -0
- data/lib/qype/client.rb +29 -0
- data/lib/qype/models.rb +111 -0
- data/qype.gemspec +35 -0
- data/test/fixtures/place.xml +44 -0
- data/test/fixtures/places.xml +367 -0
- data/test/fixtures/review.xml +102 -0
- data/test/fixtures/reviews.xml +351 -0
- data/test/place_mapping_test.rb +87 -0
- data/test/review_mapping_test.rb +47 -0
- data/test/test_helper.rb +13 -0
- metadata +88 -0
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class PlaceMappingTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
place_xml = File.read(File.dirname(__FILE__) + '/fixtures/place.xml')
|
6
|
+
|
7
|
+
context 'A single place' do
|
8
|
+
before do
|
9
|
+
@place = Qype::Place.parse(place_xml, :single => true)
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'should have basic elements' do
|
13
|
+
assert_equal 'Mr. Kebab', @place.title
|
14
|
+
assert_equal '040 437798', @place.phone
|
15
|
+
assert_equal 4.95, @place.average_rating
|
16
|
+
assert_equal '53.5564,9.96239', @place.point
|
17
|
+
end
|
18
|
+
|
19
|
+
test 'should include a image element with three thumbnail sizes' do
|
20
|
+
image = @place.image
|
21
|
+
assert_not_nil image
|
22
|
+
assert_equal "http://assets1.qype.com/uploads/photos/0017/4291/IMG_2092_mini.JPG?1208428301", image.small
|
23
|
+
assert_equal "http://assets2.qype.com/uploads/photos/0017/4291/IMG_2092_thumb.JPG?1208428303", image.medium
|
24
|
+
assert_equal "http://assets3.qype.com/uploads/photos/0017/4291/IMG_2092_gallery.JPG?1208428300", image.large
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'should include a address element' do
|
28
|
+
address = @place.address
|
29
|
+
assert_not_nil address
|
30
|
+
assert_equal 'Thadenstrasse', address.street
|
31
|
+
assert_equal '22767', address.postcode
|
32
|
+
assert_equal '1', address.housenumber
|
33
|
+
assert_equal 'Hamburg', address.city
|
34
|
+
end
|
35
|
+
|
36
|
+
test 'should include multiple category elements' do
|
37
|
+
categories = @place.categories
|
38
|
+
assert_equal 2, categories.size
|
39
|
+
assert_equal "Döner und Griechischer Imbiss", categories[0].title
|
40
|
+
assert_equal "Türkische Restaurants", categories[1].title
|
41
|
+
end
|
42
|
+
|
43
|
+
test 'should include links to reviews in multiple languages' do
|
44
|
+
review_links = @place.links.select { |link| link.rel == 'http://schemas.qype.com/reviews' }
|
45
|
+
assert_equal 5, review_links.size
|
46
|
+
|
47
|
+
german_link = review_links.find { |link| link.hreflang == 'de' }
|
48
|
+
assert_equal 'http://api.qype.com/v1/places/7019/reviews/de', german_link.href
|
49
|
+
assert_equal 40, german_link.count
|
50
|
+
end
|
51
|
+
|
52
|
+
test 'should include a link to the locator' do
|
53
|
+
locator_link = @place.links.find { |link| link.rel == 'http://schemas.qype.com/locator' }
|
54
|
+
assert_not_nil locator_link
|
55
|
+
assert_equal 'Hamburg', locator_link.title
|
56
|
+
end
|
57
|
+
|
58
|
+
test 'should include a link to assets for the place' do
|
59
|
+
assets_link = @place.links.find { |link| link.rel == 'http://schemas.qype.com/assets' }
|
60
|
+
assert_not_nil assets_link
|
61
|
+
end
|
62
|
+
|
63
|
+
test 'should fetch reviews in a specific language' do
|
64
|
+
client = mock_client(File.dirname(__FILE__) + '/fixtures/reviews.xml')
|
65
|
+
|
66
|
+
reviews = @place.reviews(client, 'de')
|
67
|
+
assert_equal 10, reviews.size
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'Search places' do
|
72
|
+
|
73
|
+
test 'should search for places' do
|
74
|
+
client = mock_client(File.dirname(__FILE__) + '/fixtures/places.xml')
|
75
|
+
places = Qype::Place.search(client, 'Sushi', 'Hamburg')
|
76
|
+
assert_equal 10, places.size
|
77
|
+
end
|
78
|
+
|
79
|
+
test 'should find places nearby' do
|
80
|
+
client = mock_client(File.dirname(__FILE__) + '/fixtures/places.xml')
|
81
|
+
places = Qype::Place.nearby(client, 53.5511, 9.98199)
|
82
|
+
assert_equal 10, places.size
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class ReviewMappingTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
review_xml = File.read(File.dirname(__FILE__) + '/fixtures/review.xml')
|
6
|
+
|
7
|
+
context 'A single review' do
|
8
|
+
before do
|
9
|
+
@review = Qype::Review.parse(review_xml, :single => true)
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'should have basic review elements' do
|
13
|
+
assert_equal 'de', @review.language
|
14
|
+
assert_equal 4, @review.rating
|
15
|
+
|
16
|
+
paragraph = /<p>/
|
17
|
+
assert_no_match paragraph, @review.content
|
18
|
+
|
19
|
+
assert_match paragraph, @review.formatted_content
|
20
|
+
end
|
21
|
+
|
22
|
+
test 'should include tag elements' do
|
23
|
+
tags = @review.tags
|
24
|
+
assert_equal 8, tags.size
|
25
|
+
assert_equal "günstig", tags.first.term
|
26
|
+
end
|
27
|
+
|
28
|
+
test 'should include a link to the locator' do
|
29
|
+
locator_link = @review.links.find { |link| link.rel == 'http://schemas.qype.com/locator' }
|
30
|
+
assert_not_nil locator_link
|
31
|
+
assert_equal 'Hamburg', locator_link.title
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'should include a link to the place' do
|
35
|
+
place_link = @review.links.find { |link| link.rel == 'http://schemas.qype.com/place' }
|
36
|
+
assert_not_nil place_link
|
37
|
+
assert_equal 'Mr. Kebab', place_link.title
|
38
|
+
end
|
39
|
+
|
40
|
+
test 'should include a link to the user' do
|
41
|
+
user_link = @review.links.find { |link| link.rel == 'http://schemas.qype.com/user' }
|
42
|
+
assert_not_nil user_link
|
43
|
+
assert_equal 'Grobi', user_link.title
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: qype-qype
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Florian Munz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-12-04 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: echoe
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
version:
|
24
|
+
description: The official Ruby Library for interacting with the Qype API.
|
25
|
+
email: florian@qype.com
|
26
|
+
executables: []
|
27
|
+
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- lib/httparty_patch.rb
|
32
|
+
- lib/qype/client.rb
|
33
|
+
- lib/qype/models.rb
|
34
|
+
- lib/qype.rb
|
35
|
+
- LICENSE
|
36
|
+
- README.markdown
|
37
|
+
files:
|
38
|
+
- lib/httparty_patch.rb
|
39
|
+
- lib/qype/client.rb
|
40
|
+
- lib/qype/models.rb
|
41
|
+
- lib/qype.rb
|
42
|
+
- LICENSE
|
43
|
+
- Manifest
|
44
|
+
- Rakefile
|
45
|
+
- README.markdown
|
46
|
+
- test/fixtures/place.xml
|
47
|
+
- test/fixtures/places.xml
|
48
|
+
- test/fixtures/review.xml
|
49
|
+
- test/fixtures/reviews.xml
|
50
|
+
- test/place_mapping_test.rb
|
51
|
+
- test/review_mapping_test.rb
|
52
|
+
- test/test_helper.rb
|
53
|
+
- qype.gemspec
|
54
|
+
has_rdoc: true
|
55
|
+
homepage: http://github.com/qype/qype
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options:
|
58
|
+
- --line-numbers
|
59
|
+
- --inline-source
|
60
|
+
- --title
|
61
|
+
- Qype
|
62
|
+
- --main
|
63
|
+
- README.markdown
|
64
|
+
require_paths:
|
65
|
+
- lib
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: "0"
|
71
|
+
version:
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: "1.2"
|
77
|
+
version:
|
78
|
+
requirements: []
|
79
|
+
|
80
|
+
rubyforge_project: qype
|
81
|
+
rubygems_version: 1.2.0
|
82
|
+
signing_key:
|
83
|
+
specification_version: 2
|
84
|
+
summary: The official Ruby Library for interacting with the Qype API.
|
85
|
+
test_files:
|
86
|
+
- test/place_mapping_test.rb
|
87
|
+
- test/review_mapping_test.rb
|
88
|
+
- test/test_helper.rb
|