mirage 0.1.5 → 0.1.6
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.
- data/Gemfile.lock +1 -1
- data/features/default_responses.feature +4 -4
- data/features/web_user_interface.feature +1 -1
- data/lib/mirage/core.rb +12 -12
- data/mirage.gemspec +1 -1
- metadata +4 -4
data/Gemfile.lock
CHANGED
@@ -16,7 +16,7 @@ Feature: Mirage can respond with a 'default' response when a when the response r
|
|
16
16
|
| response | another level |
|
17
17
|
And I hit 'http://localhost:7001/mirage/set/level1' with parameters:
|
18
18
|
| response | level 1 |
|
19
|
-
|
|
19
|
+
| default | true |
|
20
20
|
|
21
21
|
When I hit 'http://localhost:7001/mirage/get/level1/level2'
|
22
22
|
Then 'level 1' should be returned
|
@@ -25,17 +25,17 @@ Feature: Mirage can respond with a 'default' response when a when the response r
|
|
25
25
|
Scenario: More than one potential default response exists
|
26
26
|
Given I hit 'http://localhost:7001/mirage/set/level1' with parameters:
|
27
27
|
| response | level 1 |
|
28
|
-
|
|
28
|
+
| default | true |
|
29
29
|
And I hit 'http://localhost:7001/mirage/set/level1/level2' with parameters:
|
30
30
|
| response | level 2 |
|
31
|
-
|
|
31
|
+
| default | true |
|
32
32
|
And I hit 'http://localhost:7001/mirage/set/level1/level2/level3' with parameters:
|
33
33
|
| response | level 3 |
|
34
34
|
And I hit 'http://localhost:7001/mirage/set/level1/level2/level3/level4' with parameters:
|
35
35
|
| pattern | a pattern that wont be matched |
|
36
36
|
And I hit 'http://localhost:7001/mirage/set/level1/level2/level3/level4/level5' with parameters:
|
37
37
|
| response | level 5 |
|
38
|
-
|
|
38
|
+
| default | true |
|
39
39
|
|
40
40
|
When I hit 'http://localhost:7001/mirage/get/level1/level2/level3/level4'
|
41
41
|
Then 'level 2' should be returned
|
@@ -6,7 +6,7 @@ Feature: Mirage's home page allows you to see what response are currently being
|
|
6
6
|
Background: There are already a couple of responses hosted on he Mirage server
|
7
7
|
Given I hit 'http://localhost:7001/mirage/set/greeting' with parameters:
|
8
8
|
| response | hello |
|
9
|
-
|
|
9
|
+
| default | true |
|
10
10
|
And I hit 'http://localhost:7001/mirage/set/leaving' with parameters:
|
11
11
|
| response | goodbye |
|
12
12
|
|
data/lib/mirage/core.rb
CHANGED
@@ -14,16 +14,16 @@ module Mirage
|
|
14
14
|
attr_reader :response_id, :delay, :name, :pattern
|
15
15
|
attr_accessor :response_id
|
16
16
|
|
17
|
-
def initialize name, value, pattern=nil, delay=0,
|
18
|
-
@name, @value, @pattern, @response_id, @delay, @
|
17
|
+
def initialize name, value, pattern=nil, delay=0, default=false
|
18
|
+
@name, @value, @pattern, @response_id, @delay, @default = name, value, pattern, @@id_count+=1, delay, default
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.reset_count
|
22
22
|
@@id_count = 0
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
26
|
-
@
|
25
|
+
def default?
|
26
|
+
@default
|
27
27
|
end
|
28
28
|
|
29
29
|
def file?
|
@@ -71,7 +71,7 @@ module Mirage
|
|
71
71
|
|
72
72
|
responses.each do |pattern, response|
|
73
73
|
pattern = pattern.is_a?(Regexp) ? pattern.source : pattern
|
74
|
-
@responses["#{name}#{'/*' if response.
|
74
|
+
@responses["#{name}#{'/*' if response.default?}: #{pattern}"] = response
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -91,9 +91,9 @@ module Mirage
|
|
91
91
|
delay = (request['delay']||0)
|
92
92
|
pattern = request['pattern'] ? /#{request['pattern']}/ : :default
|
93
93
|
name = args.join('/')
|
94
|
-
|
94
|
+
is_default = request['default'] == 'true'
|
95
95
|
|
96
|
-
response = MockResponse.new(name, (request[:file]||response_value), pattern, delay.to_f,
|
96
|
+
response = MockResponse.new(name, (request[:file]||response_value), pattern, delay.to_f, is_default)
|
97
97
|
|
98
98
|
stored_responses = RESPONSES[name]||={}
|
99
99
|
|
@@ -113,11 +113,11 @@ module Mirage
|
|
113
113
|
if stored_responses
|
114
114
|
record = find_response(body, query_string, stored_responses)
|
115
115
|
else
|
116
|
-
|
116
|
+
default_responses, record = find_default_responses(name), nil
|
117
117
|
|
118
|
-
until record ||
|
119
|
-
record = find_response(body, query_string,
|
120
|
-
record = record.
|
118
|
+
until record || default_responses.empty?
|
119
|
+
record = find_response(body, query_string, default_responses.delete_at(0))
|
120
|
+
record = record.default? ? record : nil
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
@@ -183,7 +183,7 @@ module Mirage
|
|
183
183
|
respond('response or file parameter required', 500)
|
184
184
|
end
|
185
185
|
|
186
|
-
def
|
186
|
+
def find_default_responses(name)
|
187
187
|
matches = RESPONSES.keys.find_all { |key| name.index(key) == 0 }.sort { |a, b| b.length <=> a.length }
|
188
188
|
matches.collect { |key| RESPONSES[key] }
|
189
189
|
end
|
data/mirage.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'mirage'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.6'
|
4
4
|
s.authors = ["Leon Davis"]
|
5
5
|
s.homepage = 'https://github.com/lashd/mirage'
|
6
6
|
s.description = 'Mirage aids testing of your applications by hosting mock responses so that your applications do not have to talk to real endpoints. Its accessible via HTTP and has a RESTful interface.'
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mirage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Leon Davis
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-27 00:00:00 +00:00
|
14
14
|
default_executable: mirage
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -145,7 +145,7 @@ licenses: []
|
|
145
145
|
|
146
146
|
post_install_message: "\n\
|
147
147
|
===============================================================================\n\
|
148
|
-
Thanks you for installing mirage-0.1.
|
148
|
+
Thanks you for installing mirage-0.1.6. \n\n\
|
149
149
|
Run Mirage with:\n\n\
|
150
150
|
mirage start\n\
|
151
151
|
===============================================================================\n"
|
@@ -171,7 +171,7 @@ rubyforge_project:
|
|
171
171
|
rubygems_version: 1.6.1
|
172
172
|
signing_key:
|
173
173
|
specification_version: 3
|
174
|
-
summary: mirage-0.1.
|
174
|
+
summary: mirage-0.1.6
|
175
175
|
test_files:
|
176
176
|
- features/checking_for_requests.feature
|
177
177
|
- features/clearing_requests_and_responses.feature
|