ruby_odata 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -199,7 +199,7 @@ module OData
199
199
  end
200
200
  end
201
201
 
202
- describe Service do
202
+ describe "Keys" do
203
203
  describe "Collection with an int64 key Named 'id'" do
204
204
 
205
205
  before(:all) do
@@ -281,6 +281,22 @@ module OData
281
281
  its(:color) { should eq('blue') }
282
282
  end
283
283
  end
284
+ end
285
+
286
+ describe "Dual Namespaces" do
287
+ before(:all) do
288
+ stub_request(:get, "http://xxxx%5Cyyyy:zzzz@test.com/test.svc/$metadata").
289
+ with(:headers => {'Accept'=>'*/*; q=0.5, application/xml', 'Accept-Encoding'=>'gzip, deflate'}).
290
+ to_return(:status => 200, :body => File.new(File.expand_path("../fixtures/ms_system_center/edmx_ms_system_center_v2.xml", __FILE__)), :headers => {})
291
+ end
292
+ after(:all) do
293
+ VMM.constants.each do |constant|
294
+ VMM.send :remove_const, constant
295
+ end
296
+ end
284
297
 
298
+ it "should parse the service without errors" do
299
+ lambda { OData::Service.new "http://test.com/test.svc/", { :username => "xxxx\\yyyy", :password=> "zzzz", :verify_ssl => false, :namespace => "VMM" } }.should_not raise_error
300
+ end
285
301
  end
286
302
  end
@@ -121,6 +121,27 @@ module OData
121
121
  end
122
122
  end
123
123
 
124
+ describe "exception handling" do
125
+ before(:each) do
126
+ stub_request(:get, "http://test.com/test.svc/$metadata").
127
+ with(:headers => {'Accept'=>'*/*; q=0.5, application/xml', 'Accept-Encoding'=>'gzip, deflate'}).
128
+ to_return(:status => 200, :body => File.new(File.expand_path("../fixtures/sample_service/edmx_categories_products.xml", __FILE__)), :headers => {})
129
+
130
+ stub_request(:get, "http://test.com/test.svc/Categories?$select=Price").
131
+ with(:headers => {'Accept'=>'*/*; q=0.5, application/xml', 'Accept-Encoding'=>'gzip, deflate'}).
132
+ to_return(:status => 400, :body => File.new(File.expand_path("../fixtures/error_without_message.xml", __FILE__)), :headers => {})
133
+ end
134
+
135
+ it "includes a generic message if the error is not in the response" do
136
+ svc = OData::Service.new "http://test.com/test.svc/"
137
+ svc.Categories.select "Price"
138
+ expect { svc.execute }.to raise_error(OData::ServiceError) { |error|
139
+ error.http_code.should eq 400
140
+ error.message.should eq "Server returned error but no message."
141
+ }
142
+ end
143
+ end
144
+
124
145
  describe "lowercase collections" do
125
146
  before(:each) do
126
147
  # Required for the build_classes method
@@ -806,7 +827,12 @@ module OData
806
827
  stub_request(:get, "http://blabla:@test.com/test.svc/VMTemplates").
807
828
  with(:headers => {'Accept'=>'*/*; q=0.5, application/xml', 'Accept-Encoding'=>'gzip, deflate'}).
808
829
  to_return(:status => 200, :body => File.new(File.expand_path("../fixtures/ms_system_center/vm_templates.xml", __FILE__)), :headers => {})
830
+ end
809
831
 
832
+ after(:all) do
833
+ VMM.constants.each do |constant|
834
+ VMM.send :remove_const, constant
835
+ end
810
836
  end
811
837
 
812
838
  it "should successfully parse null valued string properties" do
@@ -969,7 +995,7 @@ module OData
969
995
  it "doesn't error" do
970
996
  svc = OData::Service.new "http://test.com/test.svc/"
971
997
  svc.Categories.select "Name", "Products/Name"
972
- expect { svc.execute }.to_not raise_error(OData::ServiceError)
998
+ expect { svc.execute }.to_not raise_error
973
999
  end
974
1000
 
975
1001
  it "returns the classes with the properties filled in" do
metadata CHANGED
@@ -1,325 +1,266 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby_odata
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 5
10
- version: 0.1.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.6
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Damien White
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-11-19 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- prerelease: false
11
+ date: 2014-03-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: addressable
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 11
29
- segments:
30
- - 2
31
- - 3
32
- - 4
18
+ - !ruby/object:Gem::Version
33
19
  version: 2.3.4
34
20
  type: :runtime
35
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
37
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.3.4
27
+ - !ruby/object:Gem::Dependency
38
28
  name: i18n
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 0
47
- - 6
48
- - 0
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
49
33
  version: 0.6.0
50
34
  type: :runtime
51
- requirement: *id002
52
- - !ruby/object:Gem::Dependency
53
35
  prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.6.0
41
+ - !ruby/object:Gem::Dependency
54
42
  name: activesupport
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
58
45
  - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 7
61
- segments:
62
- - 3
63
- - 0
64
- - 0
46
+ - !ruby/object:Gem::Version
65
47
  version: 3.0.0
66
48
  type: :runtime
67
- requirement: *id003
68
- - !ruby/object:Gem::Dependency
69
49
  prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
70
56
  name: rest-client
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
74
59
  - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 1
77
- segments:
78
- - 1
79
- - 5
80
- - 1
60
+ - !ruby/object:Gem::Version
81
61
  version: 1.5.1
82
62
  type: :runtime
83
- requirement: *id004
84
- - !ruby/object:Gem::Dependency
85
63
  prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.5.1
69
+ - !ruby/object:Gem::Dependency
86
70
  name: nokogiri
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
88
- none: false
89
- requirements:
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
90
73
  - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 1
95
- - 4
96
- - 2
74
+ - !ruby/object:Gem::Version
97
75
  version: 1.4.2
98
76
  type: :runtime
99
- requirement: *id005
100
- - !ruby/object:Gem::Dependency
101
77
  prerelease: false
102
- name: backports
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
104
- none: false
105
- requirements:
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
106
80
  - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 2
111
- - 3
112
- - 0
113
- version: 2.3.0
114
- type: :runtime
115
- requirement: *id006
116
- - !ruby/object:Gem::Dependency
117
- prerelease: false
81
+ - !ruby/object:Gem::Version
82
+ version: 1.4.2
83
+ - !ruby/object:Gem::Dependency
118
84
  name: rake
119
- version_requirements: &id007 !ruby/object:Gem::Requirement
120
- none: false
121
- requirements:
122
- - - "="
123
- - !ruby/object:Gem::Version
124
- hash: 63
125
- segments:
126
- - 0
127
- - 9
128
- - 2
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
129
89
  version: 0.9.2
130
90
  type: :development
131
- requirement: *id007
132
- - !ruby/object:Gem::Dependency
133
91
  prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.9.2
97
+ - !ruby/object:Gem::Dependency
134
98
  name: rspec
135
- version_requirements: &id008 !ruby/object:Gem::Requirement
136
- none: false
137
- requirements:
138
- - - ~>
139
- - !ruby/object:Gem::Version
140
- hash: 35
141
- segments:
142
- - 2
143
- - 11
144
- - 0
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
145
103
  version: 2.11.0
146
104
  type: :development
147
- requirement: *id008
148
- - !ruby/object:Gem::Dependency
149
105
  prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.11.0
111
+ - !ruby/object:Gem::Dependency
150
112
  name: cucumber
151
- version_requirements: &id009 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ~>
155
- - !ruby/object:Gem::Version
156
- hash: 29
157
- segments:
158
- - 1
159
- - 2
160
- - 1
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
161
117
  version: 1.2.1
162
118
  type: :development
163
- requirement: *id009
164
- - !ruby/object:Gem::Dependency
165
119
  prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.2.1
125
+ - !ruby/object:Gem::Dependency
166
126
  name: pickle
167
- version_requirements: &id010 !ruby/object:Gem::Requirement
168
- none: false
169
- requirements:
170
- - - ~>
171
- - !ruby/object:Gem::Version
172
- hash: 25
173
- segments:
174
- - 0
175
- - 4
176
- - 11
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
177
131
  version: 0.4.11
178
132
  type: :development
179
- requirement: *id010
180
- - !ruby/object:Gem::Dependency
181
133
  prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.4.11
139
+ - !ruby/object:Gem::Dependency
182
140
  name: machinist
183
- version_requirements: &id011 !ruby/object:Gem::Requirement
184
- none: false
185
- requirements:
186
- - - ~>
187
- - !ruby/object:Gem::Version
188
- hash: 3
189
- segments:
190
- - 2
191
- - 0
192
- version: "2.0"
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.0'
193
146
  type: :development
194
- requirement: *id011
195
- - !ruby/object:Gem::Dependency
196
147
  prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.0'
153
+ - !ruby/object:Gem::Dependency
197
154
  name: webmock
198
- version_requirements: &id012 !ruby/object:Gem::Requirement
199
- none: false
200
- requirements:
201
- - - ~>
202
- - !ruby/object:Gem::Version
203
- hash: 59
204
- segments:
205
- - 1
206
- - 11
207
- - 0
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
208
159
  version: 1.11.0
209
160
  type: :development
210
- requirement: *id012
211
- - !ruby/object:Gem::Dependency
212
161
  prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 1.11.0
167
+ - !ruby/object:Gem::Dependency
213
168
  name: guard
214
- version_requirements: &id013 !ruby/object:Gem::Requirement
215
- none: false
216
- requirements:
217
- - - ~>
218
- - !ruby/object:Gem::Version
219
- hash: 27
220
- segments:
221
- - 1
222
- - 3
223
- - 0
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
224
173
  version: 1.3.0
225
174
  type: :development
226
- requirement: *id013
227
- - !ruby/object:Gem::Dependency
228
175
  prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.3.0
181
+ - !ruby/object:Gem::Dependency
229
182
  name: guard-rspec
230
- version_requirements: &id014 !ruby/object:Gem::Requirement
231
- none: false
232
- requirements:
233
- - - ~>
234
- - !ruby/object:Gem::Version
235
- hash: 29
236
- segments:
237
- - 1
238
- - 2
239
- - 1
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
240
187
  version: 1.2.1
241
188
  type: :development
242
- requirement: *id014
243
- - !ruby/object:Gem::Dependency
244
189
  prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 1.2.1
195
+ - !ruby/object:Gem::Dependency
245
196
  name: guard-cucumber
246
- version_requirements: &id015 !ruby/object:Gem::Requirement
247
- none: false
248
- requirements:
249
- - - ~>
250
- - !ruby/object:Gem::Version
251
- hash: 31
252
- segments:
253
- - 1
254
- - 2
255
- - 0
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
256
201
  version: 1.2.0
257
202
  type: :development
258
- requirement: *id015
259
- - !ruby/object:Gem::Dependency
260
203
  prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 1.2.0
209
+ - !ruby/object:Gem::Dependency
261
210
  name: vcr
262
- version_requirements: &id016 !ruby/object:Gem::Requirement
263
- none: false
264
- requirements:
265
- - - ~>
266
- - !ruby/object:Gem::Version
267
- hash: 27
268
- segments:
269
- - 2
270
- - 5
271
- - 0
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
272
215
  version: 2.5.0
273
216
  type: :development
274
- requirement: *id016
275
- - !ruby/object:Gem::Dependency
276
217
  prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 2.5.0
223
+ - !ruby/object:Gem::Dependency
277
224
  name: simplecov
278
- version_requirements: &id017 !ruby/object:Gem::Requirement
279
- none: false
280
- requirements:
281
- - - ~>
282
- - !ruby/object:Gem::Version
283
- hash: 1
284
- segments:
285
- - 0
286
- - 7
287
- - 1
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
288
229
  version: 0.7.1
289
230
  type: :development
290
- requirement: *id017
291
- - !ruby/object:Gem::Dependency
292
231
  prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 0.7.1
237
+ - !ruby/object:Gem::Dependency
293
238
  name: coveralls
294
- version_requirements: &id018 !ruby/object:Gem::Requirement
295
- none: false
296
- requirements:
297
- - - ~>
298
- - !ruby/object:Gem::Version
299
- hash: 9
300
- segments:
301
- - 0
302
- - 6
303
- - 7
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
304
243
  version: 0.6.7
305
244
  type: :development
306
- requirement: *id018
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: 0.6.7
307
251
  description: An OData Client Library for Ruby. Use this to interact with OData services
308
- email:
252
+ email:
309
253
  - damien.white@visoftinc.com
310
254
  executables: []
311
-
312
255
  extensions: []
313
-
314
256
  extra_rdoc_files: []
315
-
316
- files:
317
- - .coveralls.yml
318
- - .gitignore
319
- - .rspec
320
- - .simplecov
321
- - .travis.yml
322
- - .yardopts
257
+ files:
258
+ - ".coveralls.yml"
259
+ - ".gitignore"
260
+ - ".rspec"
261
+ - ".simplecov"
262
+ - ".travis.yml"
263
+ - ".yardopts"
323
264
  - CHANGELOG.md
324
265
  - Gemfile
325
266
  - Guardfile
@@ -380,6 +321,7 @@ files:
380
321
  - spec/class_builder_spec.rb
381
322
  - spec/fixtures/edmx_empty.xml
382
323
  - spec/fixtures/edmx_lowercase.xml
324
+ - spec/fixtures/error_without_message.xml
383
325
  - spec/fixtures/feed_customization/edmx_feed_customization.xml
384
326
  - spec/fixtures/feed_customization/result_feed_customization_categories_expand.xml
385
327
  - spec/fixtures/feed_customization/result_feed_customization_products_expand.xml
@@ -391,6 +333,7 @@ files:
391
333
  - spec/fixtures/int64_ids/result_cars.xml
392
334
  - spec/fixtures/links/result_links_query.xml
393
335
  - spec/fixtures/ms_system_center/edmx_ms_system_center.xml
336
+ - spec/fixtures/ms_system_center/edmx_ms_system_center_v2.xml
394
337
  - spec/fixtures/ms_system_center/hardware_profiles.xml
395
338
  - spec/fixtures/ms_system_center/virtual_machines.xml
396
339
  - spec/fixtures/ms_system_center/vm_templates.xml
@@ -532,39 +475,30 @@ files:
532
475
  - test/usage_samples/reflection.rb
533
476
  - test/usage_samples/sample_data.rb
534
477
  homepage: http://github.com/visoft/ruby_odata
535
- licenses: []
536
-
478
+ licenses:
479
+ - MIT
480
+ metadata: {}
537
481
  post_install_message:
538
482
  rdoc_options: []
539
-
540
- require_paths:
483
+ require_paths:
541
484
  - lib
542
- required_ruby_version: !ruby/object:Gem::Requirement
543
- none: false
544
- requirements:
485
+ required_ruby_version: !ruby/object:Gem::Requirement
486
+ requirements:
545
487
  - - ">="
546
- - !ruby/object:Gem::Version
547
- hash: 3
548
- segments:
549
- - 0
550
- version: "0"
551
- required_rubygems_version: !ruby/object:Gem::Requirement
552
- none: false
553
- requirements:
488
+ - !ruby/object:Gem::Version
489
+ version: 1.9.3
490
+ required_rubygems_version: !ruby/object:Gem::Requirement
491
+ requirements:
554
492
  - - ">="
555
- - !ruby/object:Gem::Version
556
- hash: 3
557
- segments:
558
- - 0
559
- version: "0"
493
+ - !ruby/object:Gem::Version
494
+ version: '0'
560
495
  requirements: []
561
-
562
496
  rubyforge_project: ruby-odata
563
- rubygems_version: 1.8.25
497
+ rubygems_version: 2.2.2
564
498
  signing_key:
565
- specification_version: 3
499
+ specification_version: 4
566
500
  summary: Ruby consumer of OData services.
567
- test_files:
501
+ test_files:
568
502
  - features/basic_auth.feature
569
503
  - features/batch_request.feature
570
504
  - features/cassettes/basic_auth_protected_resource.yml
@@ -606,6 +540,7 @@ test_files:
606
540
  - spec/class_builder_spec.rb
607
541
  - spec/fixtures/edmx_empty.xml
608
542
  - spec/fixtures/edmx_lowercase.xml
543
+ - spec/fixtures/error_without_message.xml
609
544
  - spec/fixtures/feed_customization/edmx_feed_customization.xml
610
545
  - spec/fixtures/feed_customization/result_feed_customization_categories_expand.xml
611
546
  - spec/fixtures/feed_customization/result_feed_customization_products_expand.xml
@@ -617,6 +552,7 @@ test_files:
617
552
  - spec/fixtures/int64_ids/result_cars.xml
618
553
  - spec/fixtures/links/result_links_query.xml
619
554
  - spec/fixtures/ms_system_center/edmx_ms_system_center.xml
555
+ - spec/fixtures/ms_system_center/edmx_ms_system_center_v2.xml
620
556
  - spec/fixtures/ms_system_center/hardware_profiles.xml
621
557
  - spec/fixtures/ms_system_center/virtual_machines.xml
622
558
  - spec/fixtures/ms_system_center/vm_templates.xml