roomorama_api 0.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,13 @@
1
+ {
2
+ "result": {
3
+ "id": 1419,
4
+ "login": "test",
5
+ "city": "",
6
+ "country": "",
7
+ "description": "",
8
+ "url": "https://roomorama.com/users/test",
9
+ "created_at": "2013-02-18 11:51:09",
10
+ "updated_at": "2013-03-15 18:01:47"
11
+ },
12
+ "status": 200
13
+ }
@@ -0,0 +1,57 @@
1
+ require 'minitest/autorun'
2
+ require 'fakeweb'
3
+
4
+ FakeWeb.allow_net_connect = false
5
+
6
+ def fixture_file(filename, options={})
7
+ return '' if filename == ''
8
+
9
+ file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
10
+ fixture = File.read(file_path)
11
+
12
+ case File.extname(file_path)
13
+ when '.json'
14
+ options[:parse] ? JSON.parse(fixture) : fixture
15
+ else
16
+ fixture
17
+ end
18
+ end
19
+
20
+
21
+ def stub_get(url, filename, options={})
22
+ opts = {
23
+ :body => error_or_standard_body(filename, options)
24
+ }.merge(options)
25
+ FakeWeb.register_uri(:get, url, opts)
26
+ end
27
+
28
+ def stub_post(url, filename, options={})
29
+ opts = {
30
+ :body => error_or_standard_body(filename, options),
31
+ }.merge(options)
32
+ FakeWeb.register_uri(:post, url, opts)
33
+ end
34
+
35
+ def stub_delete(url, filename, options={})
36
+ opts = {
37
+ :body => error_or_standard_body(filename, options),
38
+ }.merge(options)
39
+ FakeWeb.register_uri(:delete, url, opts)
40
+ end
41
+
42
+ def stub_put(url, filename, options={})
43
+ opts = {
44
+ :body => error_or_standard_body(filename, options),
45
+ }.merge(options)
46
+ FakeWeb.register_uri(:put, url, opts)
47
+ end
48
+
49
+
50
+ def error_or_standard_body(filename, options)
51
+ error_options = options.delete(:error)
52
+ body = fixture_file(error_options ? 'error_template.json' : filename)
53
+ body = body.gsub(/%error_code%/, error_options[:code])
54
+ .gsub(/%error_type%/, error_options[:type])
55
+ .gsub(/%error_message%/, error_options[:message]) if error_options
56
+ body
57
+ end
@@ -0,0 +1,175 @@
1
+ require 'minitest_helper'
2
+ require 'roomorama_api'
3
+
4
+ class RoomoramaApiTest < MiniTest::Unit::TestCase
5
+
6
+ OAUTH_TOKEN = 'xxx' # Insert OAuth token to test
7
+
8
+ def setup
9
+ @client = RoomoramaApi::Client.new(OAUTH_TOKEN)
10
+ end
11
+
12
+ def test_order
13
+ :alpha
14
+ end
15
+
16
+ #### Destinations
17
+
18
+ def test_destinations_all
19
+ stub_get("https://api.roomorama.com/v1.0/destinations", 'destinations/all.json')
20
+ result = @client.destinations_all
21
+ assert_equal result["result"].count, 5288
22
+ end
23
+
24
+ #### Properties
25
+
26
+ def test_properties_find
27
+ stub_get("https://api.roomorama.com/v1.0/rooms?destination=singapore&num_guests=2&num_rooms=2&max_price=300&min_price=100", 'properties/find.json')
28
+ result = @client.properties_find(destination:"singapore", num_guests:2, num_rooms:2, max_price:300, min_price:100)
29
+ assert_equal result["result"].count, 10
30
+ end
31
+
32
+ def test_properties_get_data
33
+ stub_get("https://api.roomorama.com/v1.0/rooms/3002", 'properties/get_data.json')
34
+ result = @client.properties_get_data 3002
35
+ assert_equal result["result"]["id"], 3002
36
+ end
37
+
38
+ def test_properties_find_similar
39
+ stub_get("https://api.roomorama.com/v1.0/rooms/3002/similar", 'properties/find_similar.json')
40
+ result = @client.properties_find_similar 3002
41
+ assert_equal result["result"].count, 5
42
+ assert_equal result["result"].first["title"], "Madison Avenue Apartment for rent on weekends"
43
+ end
44
+
45
+ def test_properties_availabilities
46
+ stub_get("https://api.roomorama.com/v1.0/rooms/3002/availabilities?start_date=2013-12-01&end_date=2013-12-31", 'properties/availabilities.json')
47
+ result = @client.properties_availabilities 3002, start_date:"2013-12-01", end_date:"2013-12-31"
48
+ assert_equal result["result"].count, 31
49
+ assert_equal result["result"].first["available"], true
50
+ end
51
+
52
+ def test_properties_price_check
53
+ stub_get("https://api.roomorama.com/v1.0/inquiries/new.json?room_id=60425&check_in=2013-07-01&check_out=2013-07-10", 'properties/price_check.json')
54
+ result = @client.properties_price_check 60425, check_in:"2013-07-01", check_out:"2013-07-10"
55
+ assert_equal result["result"]["total"], 9168
56
+ assert_equal result["result"]["check_in"], "2013-07-01"
57
+ assert_equal result["result"]["check_out"], "2013-07-10"
58
+ end
59
+
60
+ def test_properties_reviews
61
+ stub_get("https://api.roomorama.com/v1.0/rooms/8582/reviews", 'properties/reviews.json')
62
+ result = @client.properties_reviews 8582
63
+ assert_equal result["result"].first["rating"], 1
64
+ assert_equal result["result"].first["room"]["id"], 8582
65
+ end
66
+
67
+ #### Favorites
68
+
69
+ def test_favorites_list
70
+ stub_get("https://api.roomorama.com/v1.0/favorites", 'favorites/list.json')
71
+ result = @client.favorites_list
72
+ assert_equal result["result"].first["title"], "[7801] STUNNING WEST VILLAGE"
73
+ end
74
+
75
+ def test_favorites_create
76
+ stub_post("https://api.roomorama.com/v1.0/favorites", "favorites/create.json")
77
+ result = @client.favorites_create room_id: 2291
78
+ assert_equal result["room_id"], 2291
79
+ end
80
+
81
+ #### Perks
82
+
83
+ def test_perks_list
84
+ stub_get("https://api.roomorama.com/v1.0/perks?destination=singapore", "perks/list.json")
85
+ result = @client.perks_list destination: "singapore"
86
+ assert_equal result["count"], 25
87
+ end
88
+
89
+ def test_perks_get_data
90
+ stub_get("https://api.roomorama.com/v1.0/perks/25", "perks/get_data.json")
91
+ result = @client.perks_get_data 25
92
+ assert_equal result["result"]["name"], "Mygola Trip Planning"
93
+ end
94
+
95
+ #### Users
96
+
97
+ def test_users_me
98
+ stub_get("https://api.roomorama.com/v1.0/me", "users/me.json")
99
+ result = @client.users_me
100
+ assert_equal result["result"]["id"], 1419
101
+ end
102
+
103
+ def test_users_update_profile
104
+ stub_put("https://api.roomorama.com/v1.0/me", "users/update_profile.json")
105
+ result = @client.users_update_profile
106
+ assert_equal result["result"]["id"], 1419
107
+ end
108
+
109
+ def test_users_get_data
110
+ stub_get("https://api.roomorama.com/v1.0/users/1900", "users/get_data.json")
111
+ result = @client.users_get_data 1900
112
+ assert_equal result["result"]["id"], 1900
113
+ end
114
+
115
+ def test_users_register
116
+ stub_post("https://api.roomorama.com/v1.0/users", "users/register.json")
117
+ result = @client.users_register login: "test123", password: "testapi", email: "test@example.com", first_name: "Skrillex", last_name: "Avicii"
118
+ assert_equal result["result"]["login"], "test123"
119
+ end
120
+
121
+ def test_users_reviews
122
+ stub_get("https://api.roomorama.com/v1.0/users/291/reviews", "users/reviews.json")
123
+ result = @client.users_reviews 291
124
+ assert_equal result["result"][0]["host_to_guest"], false
125
+ assert_equal result["result"][0]["host"]["id"], 291
126
+ end
127
+
128
+ #### Hosts/Properties
129
+
130
+ def test_hosts_properties_list
131
+ stub_get("https://api.roomorama.com/v1.0/host/rooms", "hosts/properties/list.json")
132
+ result = @client.hosts_properties_list
133
+ assert_equal result["result"][0]["id"], 9999
134
+ end
135
+
136
+ def test_hosts_properties_show
137
+ stub_get("https://api.roomorama.com/v1.0/host/rooms/9999", "hosts/properties/show.json")
138
+ result = @client.hosts_properties_show 9999
139
+ assert_equal result["result"]["id"], 9999
140
+ end
141
+
142
+ # def test_get_data_for_an_empty_property
143
+ # assert_raises RoomoramaApi::NotFound do
144
+ # result = @client.properties_get_data 500
145
+ # end
146
+ # end
147
+
148
+ # def test_get_information_about_me_oauth
149
+ # result = @client.users_me
150
+ # # assert_equal
151
+ # end
152
+
153
+ #### Favorites
154
+
155
+ # def test_favorites_create
156
+ # result = @client.favorites_create room_id: 1890
157
+ # end
158
+
159
+ # def test_favorites_list
160
+ # result = @client.favorites_list
161
+ # puts result
162
+ # end
163
+
164
+ # def test_favorites_delete
165
+ # result = @client.favorites_delete 1890
166
+ # puts result
167
+ #end
168
+
169
+ #### Perks
170
+
171
+
172
+ #### Users
173
+
174
+
175
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roomorama_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - TM Lee
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-06-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.8'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.8'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.7.7
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.7.7
46
+ - !ruby/object:Gem::Dependency
47
+ name: fakeweb
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: Ruby wrapper to call Roomorama API V1.0 at https://roomorama.com/api.
79
+ For a step by step guide on getting started with Roomorama API, refer to https://roomorama.com/api/step_by_step.
80
+ email:
81
+ - tm89lee@gmail.com
82
+ executables: []
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - .gitignore
87
+ - .travis.yml
88
+ - CHANGELOG
89
+ - Gemfile
90
+ - LICENSE
91
+ - README.md
92
+ - Rakefile
93
+ - lib/roomorama_api.rb
94
+ - lib/roomorama_api/version.rb
95
+ - roomorama_api.gemspec
96
+ - test/fixtures/destinations/all.json
97
+ - test/fixtures/favorites/create.json
98
+ - test/fixtures/favorites/list.json
99
+ - test/fixtures/hosts/properties/list.json
100
+ - test/fixtures/hosts/properties/show.json
101
+ - test/fixtures/perks/get_data.json
102
+ - test/fixtures/perks/list.json
103
+ - test/fixtures/properties/availabilities.json
104
+ - test/fixtures/properties/find.json
105
+ - test/fixtures/properties/find_similar.json
106
+ - test/fixtures/properties/get_data.json
107
+ - test/fixtures/properties/price_check.json
108
+ - test/fixtures/properties/reviews.json
109
+ - test/fixtures/users/get_data.json
110
+ - test/fixtures/users/me.json
111
+ - test/fixtures/users/register.json
112
+ - test/fixtures/users/reviews.json
113
+ - test/fixtures/users/update_profile.json
114
+ - test/minitest_helper.rb
115
+ - test/roomorama_api_test.rb
116
+ homepage: https://github.com/tmlee/roomorama_api
117
+ licenses: []
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 1.8.23
137
+ signing_key:
138
+ specification_version: 3
139
+ summary: Ruby wrapper to call Roomorama API V1.0
140
+ test_files:
141
+ - test/fixtures/destinations/all.json
142
+ - test/fixtures/favorites/create.json
143
+ - test/fixtures/favorites/list.json
144
+ - test/fixtures/hosts/properties/list.json
145
+ - test/fixtures/hosts/properties/show.json
146
+ - test/fixtures/perks/get_data.json
147
+ - test/fixtures/perks/list.json
148
+ - test/fixtures/properties/availabilities.json
149
+ - test/fixtures/properties/find.json
150
+ - test/fixtures/properties/find_similar.json
151
+ - test/fixtures/properties/get_data.json
152
+ - test/fixtures/properties/price_check.json
153
+ - test/fixtures/properties/reviews.json
154
+ - test/fixtures/users/get_data.json
155
+ - test/fixtures/users/me.json
156
+ - test/fixtures/users/register.json
157
+ - test/fixtures/users/reviews.json
158
+ - test/fixtures/users/update_profile.json
159
+ - test/minitest_helper.rb
160
+ - test/roomorama_api_test.rb
161
+ has_rdoc: