rest-assured 0.2.0.rc8 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/Gemfile.lock +2 -2
  2. data/LICENSE +4 -19
  3. data/README.markdown +123 -36
  4. data/bin/console +1 -2
  5. data/bin/rest-assured +12 -0
  6. data/features/command_line_options.feature +20 -1
  7. data/features/{doubles_via_api.feature → rest_api/doubles.feature} +0 -0
  8. data/features/{redirect_rules_via_api.feature → rest_api/redirects.feature} +11 -8
  9. data/features/{call_history.feature → ruby_api/verify_requests.feature} +0 -0
  10. data/features/ruby_api/wait_for_requests.feature +39 -0
  11. data/features/step_definitions/command_line_options_steps.rb +12 -0
  12. data/features/step_definitions/doubles_steps.rb +10 -10
  13. data/features/step_definitions/redirect_rules_steps.rb +24 -5
  14. data/features/step_definitions/ruby_api_steps.rb +69 -0
  15. data/features/support/env.rb +3 -1
  16. data/features/{doubles_via_ui.feature → web_ui/doubles.feature} +0 -0
  17. data/features/{redirect_rules_via_ui.feature → web_ui/redirects.feature} +0 -0
  18. data/lib/rest-assured.rb +2 -1
  19. data/lib/rest-assured/client/resources.rb +12 -2
  20. data/lib/rest-assured/config.rb +24 -0
  21. data/lib/rest-assured/models/double.rb +32 -28
  22. data/lib/rest-assured/models/redirect.rb +28 -24
  23. data/lib/rest-assured/models/request.rb +11 -7
  24. data/lib/rest-assured/routes/double.rb +8 -8
  25. data/lib/rest-assured/routes/redirect.rb +8 -8
  26. data/lib/rest-assured/routes/response.rb +16 -14
  27. data/lib/rest-assured/version.rb +1 -1
  28. data/lib/sinatra/handler_options_patch.rb +25 -0
  29. data/spec/client/resource_double_spec.rb +42 -6
  30. data/spec/config_spec.rb +35 -0
  31. data/spec/functional/double_routes_spec.rb +109 -107
  32. data/spec/functional/redirect_routes_spec.rb +86 -75
  33. data/spec/functional/response_spec.rb +57 -55
  34. data/spec/models/double_spec.rb +67 -65
  35. data/spec/models/redirect_spec.rb +28 -26
  36. data/spec/models/request_spec.rb +10 -8
  37. data/ssl/localhost.crt +14 -0
  38. data/ssl/localhost.key +15 -0
  39. metadata +25 -24
  40. data/features/step_definitions/call_history_steps.rb +0 -24
@@ -1,39 +1,41 @@
1
1
  require File.expand_path('../../spec_helper', __FILE__)
2
2
 
3
- describe Redirect do
4
- # this is solely to get through 'Can't find first XXX' shoulda crap
5
- #before do
3
+ module RestAssured::Models
4
+ describe Redirect do
5
+ # this is solely to get through 'Can't find first XXX' shoulda crap
6
+ #before do
6
7
  #Redirect.create :pattern => 'sdfsdf', :to => 'sdfsffdf'
7
- #end
8
+ #end
8
9
 
9
- it { should validate_presence_of(:pattern) }
10
- it { should validate_presence_of(:to) }
11
- it { should allow_mass_assignment_of(:pattern) }
12
- it { should allow_mass_assignment_of(:to) }
13
- it { should allow_mass_assignment_of(:position) }
10
+ it { should validate_presence_of(:pattern) }
11
+ it { should validate_presence_of(:to) }
12
+ it { should allow_mass_assignment_of(:pattern) }
13
+ it { should allow_mass_assignment_of(:to) }
14
+ it { should allow_mass_assignment_of(:position) }
14
15
 
15
- it 'assigns incremental position on create' do
16
- r1 = Redirect.create :pattern => '.*', :to => 'someurl'
17
- r1.position.should == 0
16
+ it 'assigns incremental position on create' do
17
+ r1 = Redirect.create :pattern => '.*', :to => 'someurl'
18
+ r1.position.should == 0
18
19
 
19
- r2 = Redirect.create :pattern => '.*', :to => 'someurl'
20
- r2.position.should == 1
20
+ r2 = Redirect.create :pattern => '.*', :to => 'someurl'
21
+ r2.position.should == 1
21
22
 
22
- r2.position = 4
23
- r2.save
23
+ r2.position = 4
24
+ r2.save
24
25
 
25
- r3 = Redirect.create :pattern => '.*', :to => 'someurl'
26
- r3.position.should == 5
27
- end
26
+ r3 = Redirect.create :pattern => '.*', :to => 'someurl'
27
+ r3.position.should == 5
28
+ end
28
29
 
29
- it 'updates order (with which redirects picked up for matching request)' do
30
- r1 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 0
31
- r2 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 1
30
+ it 'updates order (with which redirects picked up for matching request)' do
31
+ r1 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 0
32
+ r2 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 1
32
33
 
33
- Redirect.update_order([r2.id, r1.id]).should be true
34
- r1.reload.position.should == 1
35
- r2.reload.position.should == 0
34
+ Redirect.update_order([r2.id, r1.id]).should be true
35
+ r1.reload.position.should == 1
36
+ r2.reload.position.should == 0
36
37
 
37
- Redirect.update_order([nil, 34]).should == false
38
+ Redirect.update_order([nil, 34]).should == false
39
+ end
38
40
  end
39
41
  end
@@ -1,15 +1,17 @@
1
1
  require File.expand_path('../../spec_helper', __FILE__)
2
2
  require 'rest-assured/models/request'
3
3
 
4
- describe Request do
5
- it { should belong_to(:double) }
6
- it { should validate_presence_of(:rack_env) }
4
+ module RestAssured::Models
5
+ describe Request do
6
+ it { should belong_to(:double) }
7
+ it { should validate_presence_of(:rack_env) }
7
8
 
8
- it 'knows when it has been created' do
9
- now = Time.now
10
- Time.stub(:now).and_return(now)
11
- r = Request.create(:body => 'sdfsd', :rack_env => 'headers')
9
+ it 'knows when it has been created' do
10
+ now = Time.now
11
+ Time.stub(:now).and_return(now)
12
+ r = Request.create(:body => 'sdfsd', :rack_env => 'headers')
12
13
 
13
- r.created_at.should == now
14
+ r.created_at.should == now
15
+ end
14
16
  end
15
17
  end
@@ -0,0 +1,14 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICKTCCAZICCQDCY/yokcLRgTANBgkqhkiG9w0BAQUFADBZMQswCQYDVQQGEwJV
3
+ SzETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
4
+ cyBQdHkgTHRkMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMTExMTEwMTUzMTM0WhcN
5
+ MzkwMzI4MTUzMTM0WjBZMQswCQYDVQQGEwJVSzETMBEGA1UECBMKU29tZS1TdGF0
6
+ ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDEwls
7
+ b2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMhGqUPAvhEHTrhX
8
+ iSdEZjaajuz3H4x/VaVGf7pPitk6JRSO4z7vcEoc9roaUn+9EsNJnn85Jdr/kqaV
9
+ 2UM2cWtbvMollZnCjeJhg9YrZ2uDkRA3CoI1AwVLmTYAMCcNEyBkA+S3E4eyoVTf
10
+ 66FOzok4JRLcNMllScPX1HUJ51AjAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAhWR0
11
+ /m0TJJ3lCy0Ifc5ubh+w2tfoy2s56kldKaAYdV59vd34+Z2LdG5DXLYihkVS0DLj
12
+ Gz82oFeqemMbO+4aVuA5FQGaEbk8+N2Wm12qGyKxJW/r9tPrA0Yi1gy6EWyNBag1
13
+ bWKhrjIVVGlwB36E0Ltl2SQ63vvqc5dhPf//2wo=
14
+ -----END CERTIFICATE-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXQIBAAKBgQDIRqlDwL4RB064V4knRGY2mo7s9x+Mf1WlRn+6T4rZOiUUjuM+
3
+ 73BKHPa6GlJ/vRLDSZ5/OSXa/5KmldlDNnFrW7zKJZWZwo3iYYPWK2drg5EQNwqC
4
+ NQMFS5k2ADAnDRMgZAPktxOHsqFU3+uhTs6JOCUS3DTJZUnD19R1CedQIwIDAQAB
5
+ AoGBAMXlPKAcNjMxW1G//WB1r+JIuu3gCqaTtBdKIDADJRoc4EL+JgIsKnKxSAMA
6
+ u4BJXd7mQd1IpOVPIKPG8hX+F/bT83/CGU6zVf45FcaUEF9F13ioXZqnFR2Btaud
7
+ eMJaJ2GDhmad0GcIdRzGM6XVdU/Aq9fXg/nHwlCuJ1Jo1qohAkEA5nCP8lcZMCgR
8
+ J95z8ZB3QNuY4f3IeBZMTb/0WQnF0HyVaO1RfoeQEK9w/hRhOfgEf8MwtSqCvVL/
9
+ UC8N7IcA+wJBAN59loAnKttCjoHOsBag/vD0Q649hQH812NmtDIcUNPOXvp0vUAP
10
+ yWSPMLH3VYz6fNJlWChOThrd3mvc92m/VPkCQFHKL/1G1sTV48jv1t0tdnZJuwiz
11
+ R9z/pROPhw23P0PRhEJawSsUuJiDfKph12R42Df0sqwKq57A/6eZG+sQu9MCQHgn
12
+ uNySynlJE28U8VH3NldogxiZTriJFMUw1QXu9tO8MtztqLrtC6VME085NLGDIV/6
13
+ rUZvK40k3xa/abppQvkCQQCnJEZ/9ofxvdTHrDzvnkHy3ki+Bfre8/yAK94NAcL0
14
+ FaMkgFmGTSEAMMl8RipzuGE6BZVNNruvlsyhoyN3uop2
15
+ -----END RSA PRIVATE KEY-----
metadata CHANGED
@@ -1,15 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-assured
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15424037
5
- prerelease: 6
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
9
  - 0
10
- - rc
11
- - 8
12
- version: 0.2.0.rc8
10
+ version: 0.2.0
13
11
  platform: ruby
14
12
  authors:
15
13
  - Artem Avetisyan
@@ -17,7 +15,7 @@ autorequire:
17
15
  bindir: bin
18
16
  cert_chain: []
19
17
 
20
- date: 2011-11-07 00:00:00 Z
18
+ date: 2011-11-14 00:00:00 Z
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
23
21
  name: sinatra
@@ -130,21 +128,22 @@ files:
130
128
  - db/migrate/20111013122857_create_requests.rb
131
129
  - db/migrate/20111016174101_rename_method_to_verb.rb
132
130
  - db/migrate/20111021113953_add_status_to_doubles.rb
133
- - features/call_history.feature
134
131
  - features/command_line_options.feature
135
- - features/doubles_via_api.feature
136
- - features/doubles_via_ui.feature
137
- - features/redirect_rules_via_api.feature
138
- - features/redirect_rules_via_ui.feature
139
- - features/step_definitions/call_history_steps.rb
132
+ - features/rest_api/doubles.feature
133
+ - features/rest_api/redirects.feature
134
+ - features/ruby_api/verify_requests.feature
135
+ - features/ruby_api/wait_for_requests.feature
140
136
  - features/step_definitions/command_line_options_steps.rb
141
137
  - features/step_definitions/doubles_steps.rb
142
138
  - features/step_definitions/redirect_rules_steps.rb
139
+ - features/step_definitions/ruby_api_steps.rb
143
140
  - features/step_definitions/support/numeric_transforms.rb
144
141
  - features/support/env.rb
145
142
  - features/support/selenium-fix.rb
146
143
  - features/support/test-server.rb
147
144
  - features/support/world_helpers.rb
145
+ - features/web_ui/doubles.feature
146
+ - features/web_ui/redirects.feature
148
147
  - lib/active_record/leaky_connections_patch.rb
149
148
  - lib/rest-assured.rb
150
149
  - lib/rest-assured/client.rb
@@ -157,6 +156,7 @@ files:
157
156
  - lib/rest-assured/routes/redirect.rb
158
157
  - lib/rest-assured/routes/response.rb
159
158
  - lib/rest-assured/version.rb
159
+ - lib/sinatra/handler_options_patch.rb
160
160
  - lib/sinatra/partials.rb
161
161
  - public/css/base.css
162
162
  - public/css/grid.inuit.css
@@ -185,6 +185,8 @@ files:
185
185
  - spec/models/redirect_spec.rb
186
186
  - spec/models/request_spec.rb
187
187
  - spec/spec_helper.rb
188
+ - ssl/localhost.crt
189
+ - ssl/localhost.key
188
190
  - views/doubles/_form.haml
189
191
  - views/doubles/edit.haml
190
192
  - views/doubles/index.haml
@@ -216,14 +218,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
218
  required_rubygems_version: !ruby/object:Gem::Requirement
217
219
  none: false
218
220
  requirements:
219
- - - ">"
221
+ - - ">="
220
222
  - !ruby/object:Gem::Version
221
- hash: 25
223
+ hash: 3
222
224
  segments:
223
- - 1
224
- - 3
225
- - 1
226
- version: 1.3.1
225
+ - 0
226
+ version: "0"
227
227
  requirements: []
228
228
 
229
229
  rubyforge_project: rest-assured
@@ -232,21 +232,22 @@ signing_key:
232
232
  specification_version: 3
233
233
  summary: A tool for high level mocking/stubbing HTTP based REST services
234
234
  test_files:
235
- - features/call_history.feature
236
235
  - features/command_line_options.feature
237
- - features/doubles_via_api.feature
238
- - features/doubles_via_ui.feature
239
- - features/redirect_rules_via_api.feature
240
- - features/redirect_rules_via_ui.feature
241
- - features/step_definitions/call_history_steps.rb
236
+ - features/rest_api/doubles.feature
237
+ - features/rest_api/redirects.feature
238
+ - features/ruby_api/verify_requests.feature
239
+ - features/ruby_api/wait_for_requests.feature
242
240
  - features/step_definitions/command_line_options_steps.rb
243
241
  - features/step_definitions/doubles_steps.rb
244
242
  - features/step_definitions/redirect_rules_steps.rb
243
+ - features/step_definitions/ruby_api_steps.rb
245
244
  - features/step_definitions/support/numeric_transforms.rb
246
245
  - features/support/env.rb
247
246
  - features/support/selenium-fix.rb
248
247
  - features/support/test-server.rb
249
248
  - features/support/world_helpers.rb
249
+ - features/web_ui/doubles.feature
250
+ - features/web_ui/redirects.feature
250
251
  - spec/client/resource_double_spec.rb
251
252
  - spec/config_spec.rb
252
253
  - spec/custom_matchers.rb
@@ -1,24 +0,0 @@
1
- Given /^there is a double$/ do
2
- @double = RestAssured::Client::Double.create(:fullpath => '/some/path', :content => 'some content', :verb => 'POST')
3
- end
4
-
5
- When /^that double gets requested$/ do
6
- post @double.fullpath, { :foo => 'bar' }.to_json, "CONTENT_TYPE" => "application/json"
7
- post @double.fullpath, { :fooz => 'baaz'}, 'SOME_HEADER' => 'header_data'
8
- end
9
-
10
- When /^I request call history for that double$/ do
11
- @requests = @double.reload.requests
12
- end
13
-
14
- Then /^I should see history records for those requests$/ do
15
- @requests.first.body.should == { :foo => 'bar' }.to_json
16
- JSON.parse( @requests.first.rack_env )["CONTENT_TYPE"].should == 'application/json'
17
-
18
- JSON.parse( @requests.last.params ).should == { 'fooz' => 'baaz' }
19
- JSON.parse( @requests.last.rack_env )["SOME_HEADER"].should == 'header_data'
20
- end
21
-
22
- Then /^it should be empty$/ do
23
- @requests.size.should == 0
24
- end