raml_ruby 0.1.1 → 0.1.2

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -0
  3. data/README.md +1 -9
  4. data/Rakefile +7 -0
  5. data/lib/raml.rb +6 -26
  6. data/lib/raml/exceptions.rb +1 -0
  7. data/lib/raml/mixin/bodies.rb +3 -3
  8. data/lib/raml/mixin/documentable.rb +3 -8
  9. data/lib/raml/mixin/global.rb +14 -10
  10. data/lib/raml/mixin/headers.rb +1 -1
  11. data/lib/raml/mixin/merge.rb +4 -4
  12. data/lib/raml/mixin/secured_by.rb +27 -0
  13. data/lib/raml/mixin/validation.rb +27 -27
  14. data/lib/raml/node.rb +22 -80
  15. data/lib/raml/node/abstract_method.rb +7 -7
  16. data/lib/raml/node/abstract_resource.rb +17 -7
  17. data/lib/raml/node/body.rb +12 -10
  18. data/lib/raml/node/documentation.rb +0 -8
  19. data/lib/raml/node/method.rb +5 -7
  20. data/lib/raml/node/parameter/abstract_parameter.rb +22 -24
  21. data/lib/raml/node/parametized_reference.rb +3 -3
  22. data/lib/raml/node/resource.rb +0 -2
  23. data/lib/raml/node/resource_type.rb +9 -9
  24. data/lib/raml/node/resource_type_reference.rb +2 -2
  25. data/lib/raml/node/response.rb +0 -2
  26. data/lib/raml/node/root.rb +66 -57
  27. data/lib/raml/node/schema.rb +3 -9
  28. data/lib/raml/node/schema_reference.rb +2 -2
  29. data/lib/raml/node/security_scheme.rb +47 -0
  30. data/lib/raml/node/security_scheme_reference.rb +5 -0
  31. data/lib/raml/node/trait.rb +8 -8
  32. data/lib/raml/node/trait_reference.rb +2 -2
  33. data/lib/raml/parser.rb +25 -16
  34. data/lib/raml/version.rb +1 -1
  35. data/raml_ruby.gemspec +3 -7
  36. data/test/apis/box-api.raml +1447 -1447
  37. data/test/apis/instagram-api.raml +48 -48
  38. data/test/apis/stripe-api.raml +4266 -4266
  39. data/test/apis/twilio-rest-api.raml +47 -47
  40. data/test/apis/twitter-rest-api.raml +1883 -1883
  41. data/test/raml/body_spec.rb +22 -39
  42. data/test/raml/documentation_spec.rb +2 -12
  43. data/test/raml/method_spec.rb +112 -93
  44. data/test/raml/parameter/abstract_parameter_spec.rb +9 -34
  45. data/test/raml/parameter/query_parameter_spec.rb +0 -15
  46. data/test/raml/parameter/uri_parameter_spec.rb +1 -16
  47. data/test/raml/resource_spec.rb +59 -41
  48. data/test/raml/resource_type_spec.rb +13 -13
  49. data/test/raml/response_spec.rb +23 -36
  50. data/test/raml/root_spec.rb +85 -18
  51. data/test/raml/security_scheme_spec.rb +71 -0
  52. data/test/raml/spec_helper.rb +2 -1
  53. data/test/raml/template_spec.rb +92 -92
  54. data/test/raml/trait_spec.rb +7 -7
  55. metadata +14 -74
  56. data/templates/abstract_parameter.slim +0 -68
  57. data/templates/body.slim +0 -15
  58. data/templates/collapse.slim +0 -10
  59. data/templates/documentation.slim +0 -2
  60. data/templates/method.slim +0 -38
  61. data/templates/resource.slim +0 -33
  62. data/templates/response.slim +0 -13
  63. data/templates/root.slim +0 -39
  64. data/templates/style.sass +0 -119
@@ -90,7 +90,7 @@ describe Raml::Parameter::AbstractParameter do
90
90
  let(:parameter_data) { { type: 'string', enum: enum } }
91
91
  it { expect { subject }.to raise_error Raml::InvalidParameterAttribute }
92
92
  end
93
- end
93
+ end
94
94
  context 'and an pattern attribute is given' do
95
95
  let(:parameter_data) { { type: 'string', pattern: pattern } }
96
96
  context 'and the value is string representing a valid regexp' do
@@ -132,7 +132,7 @@ describe Raml::Parameter::AbstractParameter do
132
132
  let(:pattern) { '[' }
133
133
  it { expect { subject }.to raise_error Raml::InvalidParameterAttribute }
134
134
  end
135
- end
135
+ end
136
136
  end
137
137
  context 'when the parameter type is not string' do
138
138
  context 'and a minLength attribute is given' do
@@ -190,7 +190,7 @@ describe Raml::Parameter::AbstractParameter do
190
190
  it { expect { subject }.to raise_error Raml::InapplicableParameterAttribute }
191
191
  end
192
192
  end
193
-
193
+
194
194
  [
195
195
  [ 'string' , 'string' , '123', 123 ],
196
196
  [ 'number' , 'number' , 12.3, '123' ],
@@ -215,7 +215,7 @@ describe Raml::Parameter::AbstractParameter do
215
215
  end
216
216
  end
217
217
  end
218
-
218
+
219
219
  %w{repeat required}.each do |attribute|
220
220
  context "when the #{attribute} attribute is not true or false" do
221
221
  let(:parameter_data) { { attribute => 111 } }
@@ -237,7 +237,7 @@ describe Raml::Parameter::AbstractParameter do
237
237
  end
238
238
  end
239
239
  end
240
-
240
+
241
241
  context 'when example property is given' do
242
242
  context 'when the example property is a string' do
243
243
  let(:parameter_data) { { 'example' => 'My Attribute' } }
@@ -245,12 +245,9 @@ describe Raml::Parameter::AbstractParameter do
245
245
  it 'should store the value' do
246
246
  subject.example.should eq parameter_data['example']
247
247
  end
248
- it 'uses the description in the documentation' do
249
- subject.document.should include parameter_data['example']
250
- end
251
248
  end
252
249
  end
253
-
250
+
254
251
  context 'when the parameter has multiple types' do
255
252
  let(:parameter_data) {
256
253
  YAML.load %q(
@@ -267,13 +264,9 @@ describe Raml::Parameter::AbstractParameter do
267
264
  subject.children.should all( be_a Raml::Parameter::AbstractParameter )
268
265
  subject.children.map(&:type).should contain_exactly 'string', 'file'
269
266
  end
270
-
271
- it "prints out documentation" do
272
- subject.document
273
- end
274
267
  end
275
268
  end
276
-
269
+
277
270
  describe '#has_multiple_types?' do
278
271
  let(:name) { 'file' }
279
272
  context 'when the parameter has a single type' do
@@ -289,9 +282,9 @@ describe Raml::Parameter::AbstractParameter do
289
282
  description: File to upload. The file must be the last field in the form.
290
283
  )
291
284
  }
292
-
285
+
293
286
  it { subject.has_multiple_types?.should be true }
294
- end
287
+ end
295
288
  end
296
289
 
297
290
  describe '#merge' do
@@ -543,22 +536,4 @@ describe Raml::Parameter::AbstractParameter do
543
536
  end
544
537
  end
545
538
 
546
- describe '#document' do
547
- let(:name) { 'page_number' }
548
- let(:parameter_data) {
549
- {
550
- type: 'integer',
551
- required: true,
552
- example: 253995,
553
- minimum: 33
554
- }
555
- }
556
- it 'returns a String' do
557
- subject.document.should be_a String
558
- end
559
- it 'should render the template' do
560
- mock(Slim::Template).new(/templates\/abstract_parameter.slim\z/, is_a(Hash)).mock!.render(is_a(Raml::Node)) { '' }
561
- subject.document
562
- end
563
- end
564
539
  end
@@ -15,19 +15,4 @@ describe Raml::Parameter::QueryParameter do
15
15
  it "should instanciate Query parameter" do
16
16
  Raml::Parameter::QueryParameter.new(name, data, root)
17
17
  end
18
-
19
- describe "#document" do
20
- let(:data) {
21
- YAML.load(%q(
22
- description: Specify the page that you want to retrieve
23
- type: integer
24
- required: true
25
- example: 1
26
- ))
27
- }
28
-
29
- it "prints out documentation" do
30
- subject.document
31
- end
32
- end
33
18
  end
@@ -18,7 +18,7 @@ describe Raml::Parameter::UriParameter do
18
18
  it "should instanciate Uri parameter" do
19
19
  Raml::Parameter::UriParameter.new(name, data, root)
20
20
  end
21
-
21
+
22
22
  context 'when no required attribute is given' do
23
23
  let(:data) { { } }
24
24
  it 'defaults to true' do
@@ -26,19 +26,4 @@ describe Raml::Parameter::UriParameter do
26
26
  end
27
27
  end
28
28
  end
29
-
30
- describe "#document" do
31
- let(:data) {
32
- YAML.load(%q(
33
- description: Specify the page that you want to retrieve
34
- type: integer
35
- required: true
36
- example: 1
37
- ))
38
- }
39
-
40
- it "prints out documentation" do
41
- subject.document
42
- end
43
- end
44
29
  end
@@ -35,18 +35,15 @@ describe Raml::Resource do
35
35
  it "should instanciate Resource" do
36
36
  subject
37
37
  end
38
-
38
+
39
39
  context 'when displayName is given' do
40
40
  let(:data) { { 'displayName' => 'My Name', 'description' => 'foo' } }
41
41
  it { expect { subject }.to_not raise_error }
42
42
  it 'should store the value' do
43
43
  subject.display_name.should eq data['displayName']
44
44
  end
45
- it 'uses the displayName in the documentation' do
46
- subject.document.should include data['displayName']
47
- end
48
45
  end
49
-
46
+
50
47
  context 'when description is not given' do
51
48
  let(:data) { {} }
52
49
  it { expect { subject }.to_not raise_error }
@@ -62,12 +59,9 @@ describe Raml::Resource do
62
59
  it 'should store the value' do
63
60
  subject.description.should eq data['description']
64
61
  end
65
- it 'uses the description in the documentation' do
66
- subject.document.should include data['description']
67
- end
68
62
  end
69
63
  end
70
-
64
+
71
65
  context 'when the uriParameters parameter is given with valid parameters' do
72
66
  context 'when the uriParameters property is well formed' do
73
67
  it { expect { subject }.to_not raise_error }
@@ -88,7 +82,7 @@ describe Raml::Resource do
88
82
  it { expect { subject }.to raise_error Raml::InvalidProperty, /uriParameters/ }
89
83
  end
90
84
  end
91
-
85
+
92
86
  context 'when nested resources are defined' do
93
87
  let(:name) { '/{userId}' }
94
88
  let(:data) {
@@ -115,7 +109,7 @@ describe Raml::Resource do
115
109
  expect( subject.resources.keys ).to contain_exactly('/followers','/following', '/keys')
116
110
  end
117
111
  end
118
-
112
+
119
113
  context 'when a baseUriParameters property is given' do
120
114
  context 'when the baseUriParameters property is well formed' do
121
115
  let(:name) { '/files' }
@@ -129,7 +123,7 @@ describe Raml::Resource do
129
123
  )
130
124
  )
131
125
  }
132
-
126
+
133
127
  it { expect { subject }.to_not raise_error }
134
128
  it 'stores all as Raml::Parameter::UriParameter instances' do
135
129
  expect( subject.base_uri_parameters.values ).to all( be_a Raml::Parameter::BaseUriParameter )
@@ -155,7 +149,7 @@ describe Raml::Resource do
155
149
  end
156
150
 
157
151
  context 'when an type property is given' do
158
- let(:root) {
152
+ let(:root) {
159
153
  Raml::Root.new 'title' => 'x', 'baseUri' => 'http://foo.com', 'resourceTypes' => [
160
154
  { 'collection' => {} },
161
155
  { 'member' => {} },
@@ -208,9 +202,9 @@ describe Raml::Resource do
208
202
  end
209
203
  end
210
204
  end
211
-
205
+
212
206
  context 'when an is property is given' do
213
- let(:root) {
207
+ let(:root) {
214
208
  Raml::Root.new 'title' => 'x', 'baseUri' => 'http://foo.com', 'traits' => [
215
209
  { 'secured' => {} },
216
210
  { 'paged' => {} },
@@ -227,11 +221,11 @@ describe Raml::Resource do
227
221
  end
228
222
  end
229
223
  context 'when the property is an array of trait references with parameters' do
230
- let(:data) { {
231
- 'is' => [
232
- {'secured' => {'tokenName' => 'access_token'}},
233
- {'paged' => {'maxPages' => 10 }}
234
- ]
224
+ let(:data) { {
225
+ 'is' => [
226
+ {'secured' => {'tokenName' => 'access_token'}},
227
+ {'paged' => {'maxPages' => 10 }}
228
+ ]
235
229
  } }
236
230
  it { expect { subject }.to_not raise_error }
237
231
  it 'should store the trait references' do
@@ -240,11 +234,11 @@ describe Raml::Resource do
240
234
  end
241
235
  end
242
236
  context 'when the property is an array of trait definitions' do
243
- let(:data) { {
244
- 'is' => [
245
- {'queryParameters' => {'tokenName' => {'description'=>'foo'}}},
237
+ let(:data) { {
238
+ 'is' => [
239
+ {'queryParameters' => {'tokenName' => {'description'=>'foo'}}},
246
240
  {'queryParameters' => {'numPages' => {'description'=>'bar'}}}
247
- ]
241
+ ]
248
242
  } }
249
243
  it { expect { subject }.to_not raise_error }
250
244
  it 'should store the traits' do
@@ -254,12 +248,12 @@ describe Raml::Resource do
254
248
  end
255
249
  end
256
250
  context 'when the property is an array of mixed trait refrences, trait refrences with parameters, and trait definitions' do
257
- let(:data) { {
258
- 'is' => [
259
- {'secured' => {'tokenName' => 'access_token'}},
251
+ let(:data) { {
252
+ 'is' => [
253
+ {'secured' => {'tokenName' => 'access_token'}},
260
254
  {'queryParameters' => {'numPages' => {'description'=>'bar'}}},
261
255
  'rateLimited'
262
- ]
256
+ ]
263
257
  } }
264
258
  it { expect { subject }.to_not raise_error }
265
259
  it 'should store the traits' do
@@ -310,6 +304,33 @@ describe Raml::Resource do
310
304
  }
311
305
  it { expect { subject }.to raise_error Raml::InvalidProperty, /Optional properties/ }
312
306
  end
307
+
308
+ context 'when the securedBy property is defined' do
309
+ let (:root_data) { {'title' => 'x', 'baseUri' => 'http://foo.com', 'securitySchemes' => ['oauth_2_0' => {'type' => 'OAuth 2.0'}, 'oauth_1_0' => {'type' => 'OAuth 1.0'}] } }
310
+ context 'when the securedBy property is an array of strings' do
311
+ let(:data) { { 'securedBy' => ['oauth_2_0', 'oauth_1_0'] } }
312
+ it { expect{ subject }.to_not raise_error }
313
+ end
314
+ context 'when the securedBy property is an array of strings and "null"' do
315
+ let(:data) { { 'securedBy' => ['oauth_2_0', 'null'] } }
316
+ it { expect{ subject }.to_not raise_error }
317
+ end
318
+ context 'when the securedBy property is an array of hash with single key' do
319
+ let(:data) { { 'securedBy' => ['oauth_2_0' => {'scopes' => 'ADMINISTRATOR'}] } }
320
+ it { expect{ subject }.to_not raise_error }
321
+ end
322
+ context 'when the securedBy property references a missing security scheme' do
323
+ let(:data) { { 'securedBy' => ['bar'] } }
324
+ it { expect{ subject }.to raise_error Raml::UnknownSecuritySchemeReference, /bar/}
325
+ end
326
+ context 'when the securedBy property is included it is accessible and' do
327
+ let(:data) { { 'securedBy' => ['oauth_2_0', 'oauth_1_0'] } }
328
+ it 'exposes the schema references' do
329
+ expect( subject.secured_by.values ).to all( be_a Raml::SecuritySchemeReference )
330
+ subject.secured_by.keys.should contain_exactly('oauth_2_0', 'oauth_1_0')
331
+ end
332
+ end
333
+ end
313
334
  end
314
335
 
315
336
  describe '#apply_resource_type' do
@@ -320,9 +341,10 @@ describe Raml::Resource do
320
341
  'get' => {'description' => 'method description'},
321
342
  'post' => {},
322
343
  '/foo' => {},
323
- '/bar' => {}
344
+ '/bar/{id}' => {}
324
345
  } }
325
346
  let(:resource) { Raml::Resource.new('/foo', resource_data, root) }
347
+ let(:resource_with_parameter) { Raml::Resource.new('/bar/{id}', resource_data, root) }
326
348
  context 'when it has a resource type' do
327
349
  it 'merges the resource type to the resource' do
328
350
  resource.type.should be_a Raml::ResourceType
@@ -337,6 +359,12 @@ describe Raml::Resource do
337
359
  resource.apply_resource_type
338
360
  resource.methods['get'].description.should eq 'method description'
339
361
  resource.methods['get'].display_name.should eq 'resource type displayName'
362
+ resource.resource_path.should eq '/foo'
363
+ resource.resource_path_name.should eq 'foo'
364
+ end
365
+ it 'sets the resource path name stripping out uri parameters' do
366
+ resource_with_parameter.apply_resource_type
367
+ resource_with_parameter.resource_path_name.should eq 'bar'
340
368
  end
341
369
  end
342
370
  context 'when it has nested resources' do
@@ -352,7 +380,7 @@ describe Raml::Resource do
352
380
  let(:resource_data) { {
353
381
  'is' => [
354
382
  { 'description' => 'trait1 description' },
355
- { 'description' => 'trait2 description' }
383
+ { 'description' => 'trait2 description' }
356
384
  ],
357
385
  'get' => {},
358
386
  'post' => {},
@@ -384,7 +412,7 @@ describe Raml::Resource do
384
412
  end
385
413
  context 'when called with a ResourceType::Instance' do
386
414
  let(:root_data) { {
387
- 'title' => 'x',
415
+ 'title' => 'x',
388
416
  'baseUri' => 'http://foo.com',
389
417
  'traits' => [ {
390
418
  'secured' => { 'usage' => 'requires authentication' },
@@ -427,14 +455,4 @@ describe Raml::Resource do
427
455
  end
428
456
  end
429
457
  end
430
-
431
- describe '#document' do
432
- it 'returns a String' do
433
- subject.document.should be_a String
434
- end
435
- it 'should render the template' do
436
- mock(Slim::Template).new(/templates\/resource.slim\z/, is_a(Hash)).mock!.render(is_a(Raml::Node)) { '' }
437
- subject.document
438
- end
439
- end
440
458
  end
@@ -2,7 +2,7 @@
2
2
  require_relative 'spec_helper'
3
3
 
4
4
  describe Raml::ResourceType do
5
- let(:name) { 'auditableResource' }
5
+ let(:name) { 'auditableResource' }
6
6
  let(:data) {
7
7
  YAML.load(%q(
8
8
  post:
@@ -28,24 +28,24 @@ describe Raml::ResourceType do
28
28
  subject { Raml::ResourceType.new(name, data, root) }
29
29
 
30
30
  describe '#new' do
31
- context 'with valid arguments' do
32
- it { expect { subject }.to_not raise_error }
33
- it { should be_a Raml::ResourceType }
31
+ context 'with valid arguments' do
32
+ it { expect { subject }.to_not raise_error }
33
+ it { should be_a Raml::ResourceType }
34
34
  end
35
35
  end
36
36
 
37
37
  describe '#instantiate' do
38
38
  context 'when the usage property is given' do
39
- before { data['usage'] = 'Some text' }
40
- it 'stores the usage property' do
39
+ before { data['usage'] = 'Some text' }
40
+ it 'stores the usage property' do
41
41
  subject.instantiate({}).usage.should eq data['usage']
42
- end
43
- end
42
+ end
43
+ end
44
44
  context 'with invalid arguments' do
45
- context 'when the resource type has nested resources' do
46
- before { data['/foo'] = {} }
47
- it { expect { subject.instantiate({}) }.to raise_error Raml::UnknownProperty, /\/foo/ }
48
- end
45
+ context 'when the resource type has nested resources' do
46
+ before { data['/foo'] = {} }
47
+ it { expect { subject.instantiate({}) }.to raise_error Raml::UnknownProperty, /\/foo/ }
48
+ end
49
49
  end
50
50
  end
51
- end
51
+ end
@@ -61,7 +61,7 @@ describe Raml::Response do
61
61
  it { expect { subject }.to raise_error Raml::InvalidProperty, /body/ }
62
62
  end
63
63
  end
64
-
64
+
65
65
  context 'when description property is not given' do
66
66
  before { response_data.delete 'description' }
67
67
  it { expect { subject }.to_not raise_error }
@@ -77,12 +77,9 @@ describe Raml::Response do
77
77
  it 'should store the value' do
78
78
  subject.description.should eq response_data['description']
79
79
  end
80
- it 'uses the description in the documentation' do
81
- subject.document.should include response_data['description']
82
- end
83
80
  end
84
81
  end
85
-
82
+
86
83
  context 'when the headers parameter is given' do
87
84
  context 'when the headers property is well formed' do
88
85
  it { expect { subject }.to_not raise_error }
@@ -103,7 +100,7 @@ describe Raml::Response do
103
100
  before { response_data['headers'] = { '1' => 'x'} }
104
101
  it { expect { subject }.to raise_error Raml::InvalidProperty, /headers/ }
105
102
  end
106
- end
103
+ end
107
104
  end
108
105
 
109
106
  describe '#merge' do
@@ -132,9 +129,9 @@ describe Raml::Response do
132
129
  end
133
130
  end
134
131
  context 'headers properties' do
135
- let(:mixin_data) { {
132
+ let(:mixin_data) { {
136
133
  'headers' => {
137
- 'header1' => {'description' => 'foo'},
134
+ 'header1' => {'description' => 'foo'},
138
135
  'header2' => {'description' => 'bar'}
139
136
  }
140
137
  } }
@@ -143,9 +140,9 @@ describe Raml::Response do
143
140
  end
144
141
  end
145
142
  context 'body property' do
146
- let(:mixin_data) { {
143
+ let(:mixin_data) { {
147
144
  'body' => {
148
- 'text/mime1' => {'schema' => 'foo'},
145
+ 'text/mime1' => {'schema' => 'foo'},
149
146
  'text/mime2' => {'schema' => 'bar'}
150
147
  }
151
148
  } }
@@ -170,16 +167,16 @@ describe Raml::Response do
170
167
  end
171
168
  end
172
169
  context 'headers properties' do
173
- let(:response_data) { {
170
+ let(:response_data) { {
174
171
  'headers' => {
175
- 'header1' => {'description' => 'foo'},
172
+ 'header1' => {'description' => 'foo'},
176
173
  'header2' => {'description' => 'bar'}
177
174
  }
178
175
  } }
179
176
  context 'when the mixin headers are different from the response headers' do
180
- let(:mixin_data) { {
177
+ let(:mixin_data) { {
181
178
  'headers' => {
182
- 'header3' => {'description' => 'foo2'},
179
+ 'header3' => {'description' => 'foo2'},
183
180
  'header4' => {'description' => 'bar2'}
184
181
  }
185
182
  } }
@@ -188,10 +185,10 @@ describe Raml::Response do
188
185
  end
189
186
  end
190
187
  context 'when the mixin headers overlap the the response headers' do
191
- let(:mixin_data) { {
188
+ let(:mixin_data) { {
192
189
  'headers' => {
193
- 'header2' => {'description' => 'bar3', 'displayName' => 'Header 3'},
194
- 'header3' => {'description' => 'foo2'},
190
+ 'header2' => {'description' => 'bar3', 'displayName' => 'Header 3'},
191
+ 'header3' => {'description' => 'foo2'},
195
192
  'header4' => {'description' => 'bar2'}
196
193
  }
197
194
  } }
@@ -200,19 +197,19 @@ describe Raml::Response do
200
197
  response.headers['header2'].display_name.should eq mixin.headers['header2'].display_name
201
198
  response.headers['header2'].description.should eq mixin.headers['header2'].description
202
199
  end
203
- end
200
+ end
204
201
  end
205
202
  context 'body property' do
206
- let(:response_data) { {
203
+ let(:response_data) { {
207
204
  'body' => {
208
- 'text/mime1' => {'schema' => 'foo'},
205
+ 'text/mime1' => {'schema' => 'foo'},
209
206
  'text/mime2' => {'schema' => 'bar'}
210
207
  }
211
208
  } }
212
209
  context 'when the mixin query parameters are different from the response headers' do
213
- let(:mixin_data) { {
210
+ let(:mixin_data) { {
214
211
  'body' => {
215
- 'text/mime3' => {'schema' => 'foo2'},
212
+ 'text/mime3' => {'schema' => 'foo2'},
216
213
  'text/mime4' => {'schema' => 'bar2'}
217
214
  }
218
215
  } }
@@ -221,10 +218,10 @@ describe Raml::Response do
221
218
  end
222
219
  end
223
220
  context 'when the mixin query parameters overlap the the response query parameters' do
224
- let(:mixin_data) { {
221
+ let(:mixin_data) { {
225
222
  'body' => {
226
- 'text/mime2' => {'example' => 'Example 2'},
227
- 'text/mime3' => {'schema' => 'foo2'},
223
+ 'text/mime2' => {'example' => 'Example 2'},
224
+ 'text/mime3' => {'schema' => 'foo2'},
228
225
  'text/mime4' => {'schema' => 'bar2'}
229
226
  }
230
227
  } }
@@ -232,20 +229,10 @@ describe Raml::Response do
232
229
  response.merge(mixin).bodies.keys.should contain_exactly('text/mime1', 'text/mime2', 'text/mime3', 'text/mime4')
233
230
  response.bodies['text/mime2'].example.should eq mixin.bodies['text/mime2'].example
234
231
  end
235
- end
232
+ end
236
233
  end
237
234
  end
238
235
  end
239
236
  end
240
237
  end
241
-
242
- describe '#document' do
243
- it 'returns a String' do
244
- subject.document.should be_a String
245
- end
246
- it 'should render the template' do
247
- mock(Slim::Template).new(/templates\/response.slim\z/, is_a(Hash)).mock!.render(is_a(Raml::Node)) { '' }
248
- subject.document
249
- end
250
- end
251
238
  end