rest-assured 0.2.0.rc5 → 0.2.0.rc7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/Gemfile +3 -0
- data/Gemfile.lock +144 -0
- data/bin/rest-assured +12 -0
- data/features/doubles_via_api.feature +0 -1
- data/features/step_definitions/doubles_steps.rb +1 -0
- data/features/support/env.rb +4 -0
- data/features/support/test-server.rb +1 -1
- data/lib/active_record/{leak_connection_patch.rb → leaky_connections_patch.rb} +0 -0
- data/lib/rest-assured.rb +6 -0
- data/lib/rest-assured/client.rb +2 -2
- data/lib/rest-assured/client/resources.rb +4 -3
- data/lib/rest-assured/config.rb +4 -7
- data/lib/rest-assured/init.rb +74 -21
- data/lib/rest-assured/models/double.rb +1 -1
- data/lib/rest-assured/models/redirect.rb +2 -4
- data/lib/rest-assured/routes/redirect.rb +3 -0
- data/lib/rest-assured/version.rb +1 -1
- data/rest-assured.gemspec +1 -2
- data/spec/client/resource_double_spec.rb +5 -2
- data/spec/models/redirect_spec.rb +0 -2
- data/spec/spec_helper.rb +3 -0
- metadata +12 -28
- data/features/persistence.feature +0 -24
- data/lib/rest-assured/client/double.rb +0 -9
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
rest-assured (0.2.0.rc6)
|
5
|
+
activerecord (~> 3.1.0)
|
6
|
+
activeresource (~> 3.1.0)
|
7
|
+
haml (>= 3.1.3)
|
8
|
+
rack-flash (>= 0.1.2)
|
9
|
+
sass (>= 3.1.8)
|
10
|
+
sinatra (>= 1.3.1)
|
11
|
+
|
12
|
+
GEM
|
13
|
+
remote: http://rubygems.org/
|
14
|
+
specs:
|
15
|
+
activemodel (3.1.1)
|
16
|
+
activesupport (= 3.1.1)
|
17
|
+
builder (~> 3.0.0)
|
18
|
+
i18n (~> 0.6)
|
19
|
+
activerecord (3.1.1)
|
20
|
+
activemodel (= 3.1.1)
|
21
|
+
activesupport (= 3.1.1)
|
22
|
+
arel (~> 2.2.1)
|
23
|
+
tzinfo (~> 0.3.29)
|
24
|
+
activeresource (3.1.1)
|
25
|
+
activemodel (= 3.1.1)
|
26
|
+
activesupport (= 3.1.1)
|
27
|
+
activesupport (3.1.1)
|
28
|
+
multi_json (~> 1.0)
|
29
|
+
addressable (2.2.6)
|
30
|
+
arel (2.2.1)
|
31
|
+
awesome_print (0.4.0)
|
32
|
+
builder (3.0.0)
|
33
|
+
capybara (1.1.1)
|
34
|
+
mime-types (>= 1.16)
|
35
|
+
nokogiri (>= 1.3.3)
|
36
|
+
rack (>= 1.0.0)
|
37
|
+
rack-test (>= 0.5.4)
|
38
|
+
selenium-webdriver (~> 2.0)
|
39
|
+
xpath (~> 0.1.4)
|
40
|
+
capybara-firebug (0.0.10)
|
41
|
+
capybara (~> 1.0)
|
42
|
+
childprocess (0.2.2)
|
43
|
+
ffi (~> 1.0.6)
|
44
|
+
columnize (0.3.4)
|
45
|
+
cucumber (1.1.0)
|
46
|
+
builder (>= 2.1.2)
|
47
|
+
diff-lcs (>= 1.1.2)
|
48
|
+
gherkin (~> 2.5.0)
|
49
|
+
json (>= 1.4.6)
|
50
|
+
term-ansicolor (>= 1.0.6)
|
51
|
+
database_cleaner (0.6.7)
|
52
|
+
diff-lcs (1.1.3)
|
53
|
+
ffi (1.0.9)
|
54
|
+
gherkin (2.5.4)
|
55
|
+
json (>= 1.4.6)
|
56
|
+
guard (0.8.8)
|
57
|
+
thor (~> 0.14.6)
|
58
|
+
guard-spork (0.3.1)
|
59
|
+
guard (>= 0.8.4)
|
60
|
+
spork (>= 0.8.4)
|
61
|
+
haml (3.1.3)
|
62
|
+
i18n (0.6.0)
|
63
|
+
interactive_editor (0.0.10)
|
64
|
+
spoon (>= 0.0.1)
|
65
|
+
json (1.6.1)
|
66
|
+
json_pure (1.6.1)
|
67
|
+
launchy (2.0.5)
|
68
|
+
addressable (~> 2.2.6)
|
69
|
+
linecache (0.46)
|
70
|
+
rbx-require-relative (> 0.0.4)
|
71
|
+
mime-types (1.16)
|
72
|
+
multi_json (1.0.3)
|
73
|
+
mysql (2.8.1)
|
74
|
+
nokogiri (1.5.0)
|
75
|
+
rack (1.3.5)
|
76
|
+
rack-flash (0.1.2)
|
77
|
+
rack
|
78
|
+
rack-protection (1.1.4)
|
79
|
+
rack
|
80
|
+
rack-test (0.6.1)
|
81
|
+
rack (>= 1.0)
|
82
|
+
rake (0.9.2.2)
|
83
|
+
rb-fsevent (0.4.3.1)
|
84
|
+
rbx-require-relative (0.0.5)
|
85
|
+
rspec (2.7.0)
|
86
|
+
rspec-core (~> 2.7.0)
|
87
|
+
rspec-expectations (~> 2.7.0)
|
88
|
+
rspec-mocks (~> 2.7.0)
|
89
|
+
rspec-core (2.7.1)
|
90
|
+
rspec-expectations (2.7.0)
|
91
|
+
diff-lcs (~> 1.1.2)
|
92
|
+
rspec-mocks (2.7.0)
|
93
|
+
ruby-debug (0.10.4)
|
94
|
+
columnize (>= 0.1)
|
95
|
+
ruby-debug-base (~> 0.10.4.0)
|
96
|
+
ruby-debug-base (0.10.4)
|
97
|
+
linecache (>= 0.3)
|
98
|
+
rubyzip (0.9.4)
|
99
|
+
sass (3.1.10)
|
100
|
+
selenium-webdriver (2.9.1)
|
101
|
+
childprocess (>= 0.2.1)
|
102
|
+
ffi (= 1.0.9)
|
103
|
+
json_pure
|
104
|
+
rubyzip
|
105
|
+
shoulda-matchers (1.0.0.beta3)
|
106
|
+
sinatra (1.3.1)
|
107
|
+
rack (>= 1.3.4, ~> 1.3)
|
108
|
+
rack-protection (>= 1.1.2, ~> 1.1)
|
109
|
+
tilt (>= 1.3.3, ~> 1.3)
|
110
|
+
sinatra-activerecord (0.1.3)
|
111
|
+
sinatra (>= 0.9.4)
|
112
|
+
spoon (0.0.1)
|
113
|
+
spork (0.9.0.rc9)
|
114
|
+
sqlite3 (1.3.4)
|
115
|
+
term-ansicolor (1.0.7)
|
116
|
+
thor (0.14.6)
|
117
|
+
tilt (1.3.3)
|
118
|
+
tzinfo (0.3.30)
|
119
|
+
xpath (0.1.4)
|
120
|
+
nokogiri (~> 1.3)
|
121
|
+
|
122
|
+
PLATFORMS
|
123
|
+
ruby
|
124
|
+
|
125
|
+
DEPENDENCIES
|
126
|
+
awesome_print
|
127
|
+
capybara
|
128
|
+
capybara-firebug
|
129
|
+
cucumber
|
130
|
+
database_cleaner
|
131
|
+
guard-spork
|
132
|
+
interactive_editor
|
133
|
+
launchy
|
134
|
+
mysql
|
135
|
+
rack-test
|
136
|
+
rake
|
137
|
+
rb-fsevent
|
138
|
+
rest-assured!
|
139
|
+
rspec
|
140
|
+
ruby-debug
|
141
|
+
shoulda-matchers
|
142
|
+
sinatra-activerecord
|
143
|
+
spork (> 0.9.0.rc)
|
144
|
+
sqlite3 (~> 1.3.4)
|
data/bin/rest-assured
CHANGED
@@ -9,10 +9,22 @@ require 'rest-assured/config'
|
|
9
9
|
OptionParser.new do |opts|
|
10
10
|
opts.banner = "Usage: rest-assured [options]"
|
11
11
|
|
12
|
+
opts.on('-a', '--adapter mysql|sqlite') do |adapter|
|
13
|
+
AppConfig[:adapter] = adapter
|
14
|
+
end
|
15
|
+
|
12
16
|
opts.on('-d', '--database FILENAME', "Path to database file. Defaults to ./rest-assured.db. There is a special value ':memory:' for in memory database.") do |fname|
|
13
17
|
AppConfig[:database] = fname
|
14
18
|
end
|
15
19
|
|
20
|
+
opts.on('--user', "Db username") do |uname|
|
21
|
+
AppConfig[:db_user] = uname
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on('--password', 'Db password') do |password|
|
25
|
+
AppConfig[:db_password] = password
|
26
|
+
end
|
27
|
+
|
16
28
|
opts.on('-p', '--port PORT', Integer, "Server port. Defaults to 4578") do |port|
|
17
29
|
AppConfig[:port] = port
|
18
30
|
end
|
@@ -3,7 +3,6 @@ Feature: use doubles via api
|
|
3
3
|
As a developer
|
4
4
|
I want to mock rest services my app is consuming from
|
5
5
|
|
6
|
-
@now
|
7
6
|
Scenario Outline: create double
|
8
7
|
When I create a double with "<fullpath>" as fullpath, "<content>" as response content, "<verb>" as request verb and status as "<status>"
|
9
8
|
Then there should be 1 double with "<fullpath>" as fullpath, "<content>" as response content, "<result_verb>" as request verb and status as "<result_status>"
|
@@ -122,6 +122,7 @@ When /^I make (first|second) double active$/ do |ord|
|
|
122
122
|
end
|
123
123
|
|
124
124
|
Then /^(first|second) double should be served$/ do |ord|
|
125
|
+
sleep 0.1 # allow time for change to end up in the db
|
125
126
|
f = instance_variable_get('@' + ord)
|
126
127
|
get f.fullpath
|
127
128
|
last_response.body.should == f.content
|
data/features/support/env.rb
CHANGED
@@ -38,6 +38,9 @@ end
|
|
38
38
|
|
39
39
|
|
40
40
|
Spork.each_run do
|
41
|
+
require 'rest-assured/config'
|
42
|
+
AppConfig[:adapter] = 'mysql'
|
43
|
+
|
41
44
|
require 'rest-assured'
|
42
45
|
require 'rest-assured/client'
|
43
46
|
require File.expand_path('../test-server', __FILE__)
|
@@ -71,6 +74,7 @@ Spork.each_run do
|
|
71
74
|
end
|
72
75
|
|
73
76
|
After do
|
77
|
+
sleep 0.1
|
74
78
|
DatabaseCleaner.clean
|
75
79
|
end
|
76
80
|
end
|
@@ -13,7 +13,7 @@ class TestServer
|
|
13
13
|
if get_pid
|
14
14
|
print "\nPrevious TestServer instance appears to be running. Will be using it."
|
15
15
|
else
|
16
|
-
Process.exec("bundle exec rest-assured -p #{@server_port}")
|
16
|
+
Process.exec("bundle exec rest-assured -p #{@server_port} -a mysql")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
File without changes
|
data/lib/rest-assured.rb
CHANGED
@@ -4,6 +4,7 @@ require 'haml'
|
|
4
4
|
require 'sass'
|
5
5
|
require 'rack-flash'
|
6
6
|
require 'sinatra/partials'
|
7
|
+
require 'active_record'
|
7
8
|
require 'rest-assured/init'
|
8
9
|
require 'rest-assured/models/double'
|
9
10
|
require 'rest-assured/models/redirect'
|
@@ -43,6 +44,11 @@ module RestAssured
|
|
43
44
|
include DoubleRoutes
|
44
45
|
include RedirectRoutes
|
45
46
|
|
47
|
+
#before do
|
48
|
+
#ActiveRecord::Base.clear_reloadable_connections!
|
49
|
+
#ActiveRecord::Base.clear_cache!
|
50
|
+
#end
|
51
|
+
|
46
52
|
get '/css/base.css' do
|
47
53
|
scss :base
|
48
54
|
end
|
data/lib/rest-assured/client.rb
CHANGED
data/lib/rest-assured/config.rb
CHANGED
@@ -1,14 +1,11 @@
|
|
1
|
+
#default config values are set here
|
2
|
+
|
1
3
|
AppConfig = {
|
2
4
|
:port => 4578,
|
3
|
-
:environment => ENV['RACK_ENV'] || 'production'
|
5
|
+
:environment => ENV['RACK_ENV'] || 'production',
|
6
|
+
:adapter => 'sqlite'
|
4
7
|
}
|
5
8
|
|
6
|
-
AppConfig[:database] = if AppConfig[:environment] == 'production'
|
7
|
-
'./rest-assured.db'
|
8
|
-
else
|
9
|
-
File.expand_path("../../../db/#{AppConfig[:environment]}.db", __FILE__)
|
10
|
-
end
|
11
|
-
|
12
9
|
AppConfig[:log_file] = if AppConfig[:environment] == 'production'
|
13
10
|
'./rest-assured.log'
|
14
11
|
else
|
data/lib/rest-assured/init.rb
CHANGED
@@ -1,25 +1,78 @@
|
|
1
1
|
require 'active_record'
|
2
|
-
require 'active_record/
|
2
|
+
#require 'active_record/leaky_connections_patch'
|
3
|
+
#require 'active_record/sqlite_transaction_hell_patch'
|
3
4
|
require 'rest-assured/config'
|
4
5
|
require 'logger'
|
6
|
+
require 'active_support/core_ext/kernel/reporting'
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
8
|
+
module RestAssured
|
9
|
+
class Init
|
10
|
+
def self.init!
|
11
|
+
setup_logger
|
12
|
+
connect_db
|
13
|
+
migrate_db
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def self.build_db_config
|
18
|
+
if AppConfig[:adapter] =~ /sqlite/i
|
19
|
+
AppConfig[:database] ||= if AppConfig[:environment] == 'production'
|
20
|
+
'./rest-assured.db'
|
21
|
+
else
|
22
|
+
File.expand_path("../../../db/#{AppConfig[:environment]}.db", __FILE__)
|
23
|
+
end
|
24
|
+
{
|
25
|
+
:adapter => 'sqlite3',
|
26
|
+
:database => AppConfig[:database]
|
27
|
+
}
|
28
|
+
elsif AppConfig[:adapter] =~ /mysql/i
|
29
|
+
AppConfig[:database] ||= if AppConfig[:environment] != 'production'
|
30
|
+
"rest_assured_#{AppConfig[:environment]}"
|
31
|
+
else
|
32
|
+
'rest_assured'
|
33
|
+
end
|
34
|
+
AppConfig[:db_user] ||= 'root'
|
35
|
+
|
36
|
+
{
|
37
|
+
:adapter => 'mysql',
|
38
|
+
:reconnect => true,
|
39
|
+
:user => AppConfig[:db_user],
|
40
|
+
:password => AppConfig[:db_password],
|
41
|
+
:database => AppConfig[:database]
|
42
|
+
}
|
43
|
+
else
|
44
|
+
raise "Unsupported db adapter '#{AppConfig[:adapter]}'. Valid adapters are sqlite and mysql"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.connect_db
|
49
|
+
config = build_db_config
|
50
|
+
ActiveRecord::Base.establish_connection config
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.migrate_db
|
54
|
+
migrate = lambda { ActiveRecord::Migrator.migrate(File.expand_path('../../../db/migrate', __FILE__)) }
|
55
|
+
|
56
|
+
if AppConfig[:environment] == 'production' && Kernel.respond_to?(:silence)
|
57
|
+
silence(:stdout, &migrate)
|
58
|
+
else
|
59
|
+
migrate.call
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.setup_logger
|
64
|
+
$app_logger = Logger.new(AppConfig[:log_file])
|
65
|
+
$app_logger.level = Logger::DEBUG
|
66
|
+
|
67
|
+
# active record logging is purely internal
|
68
|
+
# thus disabling it for production
|
69
|
+
ActiveRecord::Base.logger = if AppConfig[:environment] == 'production'
|
70
|
+
Logger.new(test('e', '/dev/null') ? '/dev/null' : 'NUL:')
|
71
|
+
else
|
72
|
+
$app_logger
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
Init.init!
|
78
|
+
end
|
@@ -2,7 +2,6 @@ class Redirect < ActiveRecord::Base
|
|
2
2
|
attr_accessible :pattern, :to, :position
|
3
3
|
|
4
4
|
validates_presence_of :pattern, :to
|
5
|
-
validates_uniqueness_of :position, :allow_blank => true
|
6
5
|
|
7
6
|
scope :ordered, order('position')
|
8
7
|
|
@@ -13,15 +12,14 @@ class Redirect < ActiveRecord::Base
|
|
13
12
|
|
14
13
|
transaction do
|
15
14
|
begin
|
16
|
-
update_all :position => nil
|
17
|
-
|
18
15
|
ordered_redirect_ids.each_with_index do |r_id, idx|
|
19
16
|
r = find(r_id)
|
20
17
|
r.position = idx
|
21
18
|
r.save!
|
22
19
|
end
|
23
|
-
rescue
|
20
|
+
rescue => e
|
24
21
|
# TODO log exception
|
22
|
+
puts e.inspect
|
25
23
|
success = false
|
26
24
|
raise ActiveRecord::Rollback
|
27
25
|
end
|
data/lib/rest-assured/version.rb
CHANGED
data/rest-assured.gemspec
CHANGED
@@ -25,7 +25,6 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_dependency 'haml', '>= 3.1.3'
|
26
26
|
s.add_dependency 'sass', '>= 3.1.8'
|
27
27
|
s.add_dependency 'activerecord', '~> 3.1.0'
|
28
|
-
s.add_dependency '
|
29
|
-
s.add_dependency 'activeresource'
|
28
|
+
s.add_dependency 'activeresource', '~> 3.1.0'
|
30
29
|
end
|
31
30
|
|
@@ -20,13 +20,16 @@ module RestAssured::Client
|
|
20
20
|
|
21
21
|
it 'creates new double' do
|
22
22
|
d = Double.create :fullpath => '/some/api', :content => 'content'
|
23
|
-
::Double.where(:
|
23
|
+
::Double.where(:fullpath => d.fullpath, :content => d.content).should exist
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'finds exising double' do
|
27
27
|
d = ::Double.create :fullpath => '/some/api', :content => 'content'
|
28
28
|
|
29
|
-
Double.find(d.id)
|
29
|
+
dd = Double.find(d.id)
|
30
|
+
|
31
|
+
dd.fullpath.should == d.fullpath
|
32
|
+
dd.content.should == d.content
|
30
33
|
end
|
31
34
|
|
32
35
|
it 'shows request history' do
|
@@ -11,8 +11,6 @@ describe Redirect do
|
|
11
11
|
it { should allow_mass_assignment_of(:pattern) }
|
12
12
|
it { should allow_mass_assignment_of(:to) }
|
13
13
|
it { should allow_mass_assignment_of(:position) }
|
14
|
-
# commented out since it doesn't work with :allow_blank => true
|
15
|
-
#it { should validate_uniqueness_of(:position) }
|
16
14
|
|
17
15
|
it 'assigns incremental position on create' do
|
18
16
|
r1 = Redirect.create :pattern => '.*', :to => 'someurl'
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-assured
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15424059
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
9
|
- 0
|
10
10
|
- rc
|
11
|
-
-
|
12
|
-
version: 0.2.0.
|
11
|
+
- 7
|
12
|
+
version: 0.2.0.rc7
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Artem Avetisyan
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-10-
|
20
|
+
date: 2011-10-24 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: sinatra
|
@@ -99,36 +99,22 @@ dependencies:
|
|
99
99
|
version: 3.1.0
|
100
100
|
type: :runtime
|
101
101
|
version_requirements: *id005
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: sqlite3
|
104
|
-
prerelease: false
|
105
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
hash: 19
|
111
|
-
segments:
|
112
|
-
- 1
|
113
|
-
- 3
|
114
|
-
- 4
|
115
|
-
version: 1.3.4
|
116
|
-
type: :runtime
|
117
|
-
version_requirements: *id006
|
118
102
|
- !ruby/object:Gem::Dependency
|
119
103
|
name: activeresource
|
120
104
|
prerelease: false
|
121
|
-
requirement: &
|
105
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
122
106
|
none: false
|
123
107
|
requirements:
|
124
|
-
- -
|
108
|
+
- - ~>
|
125
109
|
- !ruby/object:Gem::Version
|
126
110
|
hash: 3
|
127
111
|
segments:
|
112
|
+
- 3
|
113
|
+
- 1
|
128
114
|
- 0
|
129
|
-
version:
|
115
|
+
version: 3.1.0
|
130
116
|
type: :runtime
|
131
|
-
version_requirements: *
|
117
|
+
version_requirements: *id006
|
132
118
|
description:
|
133
119
|
email:
|
134
120
|
- artem.avetisyan@bbc.co.uk
|
@@ -141,6 +127,7 @@ extra_rdoc_files: []
|
|
141
127
|
files:
|
142
128
|
- .gitignore
|
143
129
|
- Gemfile
|
130
|
+
- Gemfile.lock
|
144
131
|
- Guardfile
|
145
132
|
- LICENSE
|
146
133
|
- README.markdown
|
@@ -162,7 +149,6 @@ files:
|
|
162
149
|
- features/call_history.feature
|
163
150
|
- features/doubles_via_api.feature
|
164
151
|
- features/doubles_via_ui.feature
|
165
|
-
- features/persistence.feature
|
166
152
|
- features/redirect_rules_via_api.feature
|
167
153
|
- features/redirect_rules_via_ui.feature
|
168
154
|
- features/step_definitions/call_history_steps.rb
|
@@ -173,10 +159,9 @@ files:
|
|
173
159
|
- features/support/env.rb
|
174
160
|
- features/support/selenium-fix.rb
|
175
161
|
- features/support/test-server.rb
|
176
|
-
- lib/active_record/
|
162
|
+
- lib/active_record/leaky_connections_patch.rb
|
177
163
|
- lib/rest-assured.rb
|
178
164
|
- lib/rest-assured/client.rb
|
179
|
-
- lib/rest-assured/client/double.rb
|
180
165
|
- lib/rest-assured/client/resources.rb
|
181
166
|
- lib/rest-assured/config.rb
|
182
167
|
- lib/rest-assured/init.rb
|
@@ -264,7 +249,6 @@ test_files:
|
|
264
249
|
- features/call_history.feature
|
265
250
|
- features/doubles_via_api.feature
|
266
251
|
- features/doubles_via_ui.feature
|
267
|
-
- features/persistence.feature
|
268
252
|
- features/redirect_rules_via_api.feature
|
269
253
|
- features/redirect_rules_via_ui.feature
|
270
254
|
- features/step_definitions/call_history_steps.rb
|
@@ -1,24 +0,0 @@
|
|
1
|
-
Feature: Persistence
|
2
|
-
In order to persist fixtrures/redirects between service restarts
|
3
|
-
As a developer
|
4
|
-
I want to be able to specify persistent storage
|
5
|
-
|
6
|
-
Scenario: default storage
|
7
|
-
Given I start service without --database option
|
8
|
-
And I register "/api/something" as fullpath and "content" as response content
|
9
|
-
And I restart service without --database option
|
10
|
-
When I request "/api/something"
|
11
|
-
Then I should get 404 in response status
|
12
|
-
|
13
|
-
Scenario Outline: specify storage
|
14
|
-
Given I start service with --database "<db>" option
|
15
|
-
And I register "/api/something" as fullpath and "content" as response content
|
16
|
-
And I restart service with --database "<db2>" option
|
17
|
-
When I request "/api/something"
|
18
|
-
Then I should get <status> in response status
|
19
|
-
|
20
|
-
Examples:
|
21
|
-
| db | db2 | status |
|
22
|
-
| database.db | database.db | 200 |
|
23
|
-
| /tmp/database.db | /tmp/database.db | 200 |
|
24
|
-
| database.db | database2.db | 404 |
|