mirage 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mirage (0.1.4)
4
+ mirage (0.1.5)
5
5
  mechanize (>= 1.0.0)
6
6
  rack (~> 1.1.0)
7
7
  ramaze (>= 2011.01.30)
@@ -19,16 +19,12 @@ GEM
19
19
  diff-lcs (1.1.2)
20
20
  gherkin (2.3.5)
21
21
  json (>= 1.4.6)
22
- gherkin (2.3.5-java)
23
- json (>= 1.4.6)
24
22
  innate (2011.01)
25
23
  rack (>= 1.1.0)
26
24
  json (1.5.1)
27
- json (1.5.1-java)
28
25
  mechanize (1.0.0)
29
26
  nokogiri (>= 1.2.1)
30
- nokogiri (1.4.4-java)
31
- weakling (>= 0.0.3)
27
+ nokogiri (1.4.4)
32
28
  rack (1.1.2)
33
29
  rake (0.8.7)
34
30
  ramaze (2011.01.30)
@@ -42,10 +38,8 @@ GEM
42
38
  diff-lcs (~> 1.1.2)
43
39
  rspec-mocks (2.5.0)
44
40
  term-ansicolor (1.0.5)
45
- weakling (0.0.4-java)
46
41
 
47
42
  PLATFORMS
48
- java
49
43
  ruby
50
44
 
51
45
  DEPENDENCIES
data/bin/mirage CHANGED
@@ -31,7 +31,7 @@ if ARGV.include?('start')
31
31
 
32
32
  start_mirage(ARGV, mirage_client)
33
33
  begin
34
- mirage_client.load_defaults
34
+ mirage_client.prime
35
35
  rescue Mirage::InternalServerException => e
36
36
  puts "WARN: #{e.message}"
37
37
  end
@@ -32,20 +32,20 @@ Feature: the Mirage client provides methods for setting responses and loading de
32
32
  """
33
33
  Then 'Hello Leon' should be returned
34
34
 
35
- Scenario: Loading default responses
35
+ Scenario: Priming Mirage
36
36
  Given Mirage is not running
37
37
  And I run 'mirage start'
38
38
 
39
- When the file 'defaults/default_greetings.rb' contains:
39
+ When the file 'responses/default_greetings.rb' contains:
40
40
  """
41
- Mirage.default do |mirage|
41
+ Mirage.prime do |mirage|
42
42
  mirage.set('greeting', :response => 'hello')
43
43
  mirage.set('leaving', :response => 'goodbye')
44
44
  end
45
45
  """
46
46
  And I run
47
47
  """
48
- Mirage::Client.new.load_defaults
48
+ Mirage::Client.new.prime
49
49
  """
50
50
  And I hit 'http://localhost:7001/mirage/get/greeting'
51
51
  Then 'hello' should be returned
@@ -54,15 +54,15 @@ Feature: the Mirage client provides methods for setting responses and loading de
54
54
  Then 'goodbye' should be returned
55
55
 
56
56
 
57
- Scenario: Setting defaults and one of the files has something bad in it
58
- Given the file 'defaults/default_greetings.rb' contains:
57
+ Scenario: Priming Mirage when one of the response file has something bad in it
58
+ Given the file 'responses/default_greetings.rb' contains:
59
59
  """
60
60
  Something bad...
61
61
  """
62
62
  When I run
63
63
  """
64
64
  begin
65
- Mirage::Client.new.load_defaults
65
+ Mirage::Client.new.prime
66
66
  fail("Error should have been thrown")
67
67
  rescue Exception => e
68
68
  e.is_a?(Mirage::InternalServerException).should == true
@@ -1,91 +1,48 @@
1
- @command_line
2
- Feature: Mirage can be primed with a default responses.
3
- By default, Mirage loads any rb files found in ./defaults on startup. Mirage can also be made to load default responses
4
- from a directory of your choosing.
5
-
6
- Defaults can also be added/reloaded after Mirage has started
7
-
8
-
9
- Scenario: Mirage is started with defaults in the standard location.
10
- Given the file 'defaults/default_greetings.rb' contains:
11
- """
12
- Mirage.default do |mirage|
13
- mirage.set('greeting', :response => 'hello')
14
- mirage.set('leaving', :response => 'goodbye')
15
- end
16
- """
17
- And I run 'mirage start'
18
- When I hit 'http://localhost:7001/mirage/get/greeting'
19
- Then 'hello' should be returned
20
- When I hit 'http://localhost:7001/mirage/get/leaving'
21
- Then 'goodbye' should be returned
22
-
23
-
24
- Scenario: Mirage is started pointing with a relative path for default responses
25
- Given the file './custom_default_location/default_greetings.rb' contains:
26
- """
27
- Mirage.default do |mirage|
28
- mirage.set('greeting', :response => 'hello')
29
- end
30
- """
31
- And I run 'mirage start -d ./custom_default_location'
32
- When I hit 'http://localhost:7001/mirage/get/greeting'
33
- Then 'hello' should be returned
34
-
35
-
36
- Scenario: Mirage is started pointing with a full path for default responses
37
- Given the file '/tmp/defaults/default_greetings.rb' contains:
38
- """
39
- Mirage.default do |mirage|
40
- mirage.set('greeting', :response => 'hello')
41
- end
42
- """
43
- And I run 'mirage start -d /tmp/defaults'
44
- When I hit 'http://localhost:7001/mirage/load_defaults'
45
- And I hit 'http://localhost:7001/mirage/get/greeting'
46
- Then 'hello' should be returned
47
-
48
-
49
- Scenario: Reloading default responses after mirage has been started
50
- Given the file 'defaults/default_greetings.rb' contains:
51
- """
52
- Mirage.default do |mirage|
53
- mirage.set('greeting', :response => 'hello')
54
- end
55
- """
56
- And I run 'mirage start'
57
- And I hit 'http://localhost:7001/mirage/clear'
58
- And I hit 'http://localhost:7001/mirage/set/a_new_response' with parameters:
59
- | response | new response |
60
-
61
- When I hit 'http://localhost:7001/mirage/load_defaults'
62
- When I hit 'http://localhost:7001/mirage/get/greeting'
63
- Then 'hello' should be returned
64
- When I hit 'http://localhost:7001/mirage/get/a_new_response'
65
- Then a 404 should be returned
66
-
67
-
68
- Scenario: Mirage is started with a bad defaults file
69
- Given the file 'defaults/default_greetings.rb' contains:
70
- """
71
- A file with a mistake in it
72
- """
73
- When I run 'mirage start'
74
- Then I should see 'WARN: Unable to load default responses from: defaults/default_greetings.rb' on the command line
75
-
76
-
77
- Scenario: Defaults with a mistake in them are reloaded after mirage has been started
78
- Given I run 'mirage start'
79
- When the file 'defaults/default_greetings.rb' contains:
80
- """
81
- A file with a mistake in it
82
- """
83
- And I hit 'http://localhost:7001/mirage/load_defaults'
84
- Then a 500 should be returned
85
-
86
-
87
-
88
-
89
-
90
-
91
-
1
+ Feature: Mirage can respond with a 'default' response when a when the response requested at a sub url is not found.
2
+ I.e.
3
+ if a response is held for 'level1' and request comes in for 'level1/level2' the response for 'level1'
4
+ can be returned if nothing is held for 'level1/level2'
5
+
6
+ If a request is made and there is more than one response that could be appropriate then the closet is chosen.
7
+
8
+ E.g.
9
+ responses exist for: 'level1' and 'level1/level2'. If a response for 'level1/level2/level3 is made, then the response for
10
+ 'level1/level2' will be returned as it is the most specific match out of the two.
11
+
12
+ Root responses can cause unexpected behaviour and so in order to qualify as a default reponse a client must knowingly mark it as one.
13
+
14
+ Scenario: A default response is returned
15
+ Given I hit 'http://localhost:7001/mirage/set/level0/level1' with parameters:
16
+ | response | another level |
17
+ And I hit 'http://localhost:7001/mirage/set/level1' with parameters:
18
+ | response | level 1 |
19
+ | root_response | true |
20
+
21
+ When I hit 'http://localhost:7001/mirage/get/level1/level2'
22
+ Then 'level 1' should be returned
23
+
24
+
25
+ Scenario: More than one potential default response exists
26
+ Given I hit 'http://localhost:7001/mirage/set/level1' with parameters:
27
+ | response | level 1 |
28
+ | root_response | true |
29
+ And I hit 'http://localhost:7001/mirage/set/level1/level2' with parameters:
30
+ | response | level 2 |
31
+ | root_response | true |
32
+ And I hit 'http://localhost:7001/mirage/set/level1/level2/level3' with parameters:
33
+ | response | level 3 |
34
+ And I hit 'http://localhost:7001/mirage/set/level1/level2/level3/level4' with parameters:
35
+ | pattern | a pattern that wont be matched |
36
+ And I hit 'http://localhost:7001/mirage/set/level1/level2/level3/level4/level5' with parameters:
37
+ | response | level 5 |
38
+ | root_response | true |
39
+
40
+ When I hit 'http://localhost:7001/mirage/get/level1/level2/level3/level4'
41
+ Then 'level 2' should be returned
42
+
43
+
44
+ Scenario: There isnt a default response
45
+ Given I hit 'http://localhost:7001/mirage/set/level1' with parameters:
46
+ | response | level 1 |
47
+ When I hit 'http://localhost:7001/mirage/get/level1/level2'
48
+ Then a 404 should be returned
@@ -0,0 +1,93 @@
1
+ @command_line
2
+ Feature: Mirage can be primed with a set of responses.
3
+ By default, Mirage loads any rb files found in ./responses on startup. Mirage can also be made to load response for a directory
4
+ of your choosing
5
+
6
+ Responses can be added to the responses directory and used to prime Mirage after Mirage has been started.
7
+
8
+ Priming mirage causes any modifications to its state to be lost
9
+
10
+
11
+ Scenario: Mirage is started with the responses to be used for priming located in ./responses
12
+ Given the file 'responses/default_greetings.rb' contains:
13
+ """
14
+ Mirage.prime do |mirage|
15
+ mirage.set('greeting', :response => 'hello')
16
+ mirage.set('leaving', :response => 'goodbye')
17
+ end
18
+ """
19
+ And I run 'mirage start'
20
+ When I hit 'http://localhost:7001/mirage/get/greeting'
21
+ Then 'hello' should be returned
22
+ When I hit 'http://localhost:7001/mirage/get/leaving'
23
+ Then 'goodbye' should be returned
24
+
25
+
26
+ Scenario: Mirage is started pointing with a relative path given for the responses directory
27
+ Given the file './custom_responses_location/default_greetings.rb' contains:
28
+ """
29
+ Mirage.prime do |mirage|
30
+ mirage.set('greeting', :response => 'hello')
31
+ end
32
+ """
33
+ And I run 'mirage start -d ./custom_responses_location'
34
+ When I hit 'http://localhost:7001/mirage/get/greeting'
35
+ Then 'hello' should be returned
36
+
37
+
38
+ Scenario: Mirage is started pointing with a full path for the responses
39
+ Given the file '/tmp/responses/default_greetings.rb' contains:
40
+ """
41
+ Mirage.prime do |mirage|
42
+ mirage.set('greeting', :response => 'hello')
43
+ end
44
+ """
45
+ And I run 'mirage start -d /tmp/responses'
46
+ When I hit 'http://localhost:7001/mirage/primes'
47
+ And I hit 'http://localhost:7001/mirage/get/greeting'
48
+ Then 'hello' should be returned
49
+
50
+
51
+ Scenario: Priming mirage after its state has been modified
52
+ Given the file 'responses/default_greetings.rb' contains:
53
+ """
54
+ Mirage.prime do |mirage|
55
+ mirage.set('greeting', :response => 'hello')
56
+ end
57
+ """
58
+ And I run 'mirage start'
59
+ And I hit 'http://localhost:7001/mirage/clear'
60
+ And I hit 'http://localhost:7001/mirage/set/a_new_response' with parameters:
61
+ | response | new response |
62
+
63
+ When I hit 'http://localhost:7001/mirage/prime'
64
+ When I hit 'http://localhost:7001/mirage/get/greeting'
65
+ Then 'hello' should be returned
66
+ When I hit 'http://localhost:7001/mirage/get/a_new_response'
67
+ Then a 404 should be returned
68
+
69
+
70
+ Scenario: Mirage is started with a bad file
71
+ Given the file 'responses/default_greetings.rb' contains:
72
+ """
73
+ A file with a mistake in it
74
+ """
75
+ When I run 'mirage start'
76
+ Then I should see 'WARN: Unable to load default responses from: responses/default_greetings.rb' on the command line
77
+
78
+
79
+ Scenario: Mirage is primed with a bad file after it has been started
80
+ Given I run 'mirage start'
81
+ When the file 'responses/default_greetings.rb' contains:
82
+ """
83
+ A file with a mistake in it
84
+ """
85
+ And I hit 'http://localhost:7001/mirage/prime'
86
+ Then a 500 should be returned
87
+
88
+
89
+
90
+
91
+
92
+
93
+
@@ -80,7 +80,7 @@ Before do
80
80
  start_mirage
81
81
  end
82
82
 
83
- `ls #{SCRATCH}/ | grep -v mirage.log | rm -rf`
83
+ `cd #{SCRATCH}/ && ls | grep -v mirage.log | xargs rm -rf`
84
84
  `truncate -s 0 #{SCRATCH}/mirage.log`
85
85
  end
86
86
 
@@ -4,7 +4,7 @@ require 'mirage/core'
4
4
  require 'mirage/client'
5
5
 
6
6
  module Mirage
7
- def self.default
7
+ def self.prime
8
8
  yield @@client
9
9
  end
10
10
 
@@ -117,8 +117,8 @@ module Mirage
117
117
  end
118
118
 
119
119
  # Clear down the Mirage Server and load any defaults that are in Mirages default responses directory.
120
- def load_defaults
121
- response(http_post("#{@url}/load_defaults"))
120
+ def prime
121
+ response(http_post("#{@url}/prime"))
122
122
  end
123
123
 
124
124
  private
@@ -159,7 +159,7 @@ module Mirage
159
159
  RESPONSES.clear and RESPONSES.replace(SNAPSHOT.deep_clone)
160
160
  end
161
161
 
162
- def load_defaults
162
+ def prime
163
163
  clear
164
164
  Dir["#{DEFAULT_RESPONSES_DIR}/**/*.rb"].each do |default|
165
165
  begin
@@ -12,7 +12,7 @@ module Mirage
12
12
  end
13
13
 
14
14
  def parse_options args
15
- options = {:port => 7001, :defaults_directory => 'defaults', :root_directory => '.'}
15
+ options = {:port => 7001, :defaults_directory => 'responses', :root_directory => '.'}
16
16
 
17
17
  opt_parser = OptionParser.new do |opts|
18
18
  opts.banner = "Usage: mirage start|stop [options]"
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mirage'
3
- s.version = '0.1.4'
3
+ s.version = '0.1.5'
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
@@ -1,222 +1,199 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mirage
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 4
9
- version: 0.1.4
4
+ prerelease:
5
+ version: 0.1.5
10
6
  platform: ruby
11
7
  authors:
12
- - Leon Davis
8
+ - Leon Davis
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-03-25 00:00:00 +00:00
13
+ date: 2011-03-24 00:00:00 +00:00
18
14
  default_executable: mirage
19
15
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rack
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ~>
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 1
30
- - 0
31
- version: 1.1.0
32
- type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: ramaze
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 2011
43
- - 1
44
- - 30
45
- version: 2011.01.30
46
- type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: mechanize
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 1
57
- - 0
58
- - 0
59
- version: 1.0.0
60
- type: :runtime
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: rake
64
- prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- version: "0"
72
- type: :development
73
- version_requirements: *id004
74
- - !ruby/object:Gem::Dependency
75
- name: cucumber
76
- prerelease: false
77
- requirement: &id005 !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- segments:
82
- - 0
83
- version: "0"
84
- type: :development
85
- version_requirements: *id005
86
- - !ruby/object:Gem::Dependency
87
- name: rspec
88
- prerelease: false
89
- requirement: &id006 !ruby/object:Gem::Requirement
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- segments:
94
- - 0
95
- version: "0"
96
- type: :development
97
- version_requirements: *id006
98
- - !ruby/object:Gem::Dependency
99
- name: bundler
100
- prerelease: false
101
- requirement: &id007 !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- segments:
106
- - 0
107
- version: "0"
108
- type: :development
109
- version_requirements: *id007
16
+ - !ruby/object:Gem::Dependency
17
+ name: rack
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 1.1.0
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: ramaze
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 2011.01.30
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: mechanize
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.0.0
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: rake
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :development
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: cucumber
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ type: :development
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: rspec
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ type: :development
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: bundler
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ type: :development
92
+ version_requirements: *id007
110
93
  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.
111
94
  email:
112
95
  executables:
113
- - mirage
96
+ - mirage
114
97
  extensions: []
115
98
 
116
99
  extra_rdoc_files: []
117
100
 
118
101
  files:
119
- - .rvmrc
120
- - Gemfile
121
- - Gemfile.lock
122
- - README.md
123
- - bin/mirage
124
- - features/checking_for_requests.feature
125
- - features/clearing_requests_and_responses.feature
126
- - features/client/checking_for_requests.feature
127
- - features/client/clearing_responses.feature
128
- - features/client/getting_responses.feature
129
- - features/client/mirage_client.feature
130
- - features/client/peeking.feature
131
- - features/client/setting_responses.feature
132
- - features/client/snapshotting.feature
133
- - features/command_line_iterface.feature
134
- - features/default_responses.feature
135
- - features/file_hosting.feature
136
- - features/logging.feature
137
- - features/peeking_at_response.feature
138
- - features/resources/test.zip
139
- - features/response_templates.feature
140
- - features/root_responses.feature
141
- - features/setting_responses.feature
142
- - features/setting_responses_with_a_delay.feature
143
- - features/setting_responses_with_pattern_matching.feature
144
- - features/snapshotting.feature
145
- - features/step_definitions/my_steps.rb
146
- - features/support/env.rb
147
- - features/web_user_interface.feature
148
- - full_build.sh
149
- - lib/config.ru
150
- - lib/mirage.rb
151
- - lib/mirage/client.rb
152
- - lib/mirage/core.rb
153
- - lib/mirage/util.rb
154
- - lib/mirage/web.rb
155
- - lib/start_mirage.rb
156
- - lib/view/mirage/index.xhtml
157
- - mirage.gemspec
158
- - rakefile
102
+ - .rvmrc
103
+ - Gemfile
104
+ - Gemfile.lock
105
+ - README.md
106
+ - bin/mirage
107
+ - features/checking_for_requests.feature
108
+ - features/clearing_requests_and_responses.feature
109
+ - features/client/checking_for_requests.feature
110
+ - features/client/clearing_responses.feature
111
+ - features/client/getting_responses.feature
112
+ - features/client/mirage_client.feature
113
+ - features/client/peeking.feature
114
+ - features/client/setting_responses.feature
115
+ - features/client/snapshotting.feature
116
+ - features/command_line_iterface.feature
117
+ - features/default_responses.feature
118
+ - features/file_hosting.feature
119
+ - features/logging.feature
120
+ - features/peeking_at_response.feature
121
+ - features/priming.feature
122
+ - features/resources/test.zip
123
+ - features/response_templates.feature
124
+ - features/setting_responses.feature
125
+ - features/setting_responses_with_a_delay.feature
126
+ - features/setting_responses_with_pattern_matching.feature
127
+ - features/snapshotting.feature
128
+ - features/step_definitions/my_steps.rb
129
+ - features/support/env.rb
130
+ - features/web_user_interface.feature
131
+ - full_build.sh
132
+ - lib/config.ru
133
+ - lib/mirage.rb
134
+ - lib/mirage/client.rb
135
+ - lib/mirage/core.rb
136
+ - lib/mirage/util.rb
137
+ - lib/mirage/web.rb
138
+ - lib/start_mirage.rb
139
+ - lib/view/mirage/index.xhtml
140
+ - mirage.gemspec
141
+ - rakefile
159
142
  has_rdoc: true
160
143
  homepage: https://github.com/lashd/mirage
161
144
  licenses: []
162
145
 
163
- post_install_message: |
164
-
165
- ===============================================================================
166
- Thanks you for installing mirage-0.1.4.
167
-
168
- Run Mirage with:
169
-
170
- mirage start
171
- ===============================================================================
172
-
146
+ post_install_message: "\n\
147
+ ===============================================================================\n\
148
+ Thanks you for installing mirage-0.1.5. \n\n\
149
+ Run Mirage with:\n\n\
150
+ mirage start\n\
151
+ ===============================================================================\n"
173
152
  rdoc_options: []
174
153
 
175
154
  require_paths:
176
- - lib
155
+ - lib
177
156
  required_ruby_version: !ruby/object:Gem::Requirement
157
+ none: false
178
158
  requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- segments:
182
- - 0
183
- version: "0"
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: "0"
184
162
  required_rubygems_version: !ruby/object:Gem::Requirement
163
+ none: false
185
164
  requirements:
186
- - - ">="
187
- - !ruby/object:Gem::Version
188
- segments:
189
- - 0
190
- version: "0"
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: "0"
191
168
  requirements: []
192
169
 
193
170
  rubyforge_project:
194
- rubygems_version: 1.3.6
171
+ rubygems_version: 1.6.1
195
172
  signing_key:
196
173
  specification_version: 3
197
- summary: mirage-0.1.4
174
+ summary: mirage-0.1.5
198
175
  test_files:
199
- - features/checking_for_requests.feature
200
- - features/clearing_requests_and_responses.feature
201
- - features/client/checking_for_requests.feature
202
- - features/client/clearing_responses.feature
203
- - features/client/getting_responses.feature
204
- - features/client/mirage_client.feature
205
- - features/client/peeking.feature
206
- - features/client/setting_responses.feature
207
- - features/client/snapshotting.feature
208
- - features/command_line_iterface.feature
209
- - features/default_responses.feature
210
- - features/file_hosting.feature
211
- - features/logging.feature
212
- - features/peeking_at_response.feature
213
- - features/resources/test.zip
214
- - features/response_templates.feature
215
- - features/root_responses.feature
216
- - features/setting_responses.feature
217
- - features/setting_responses_with_a_delay.feature
218
- - features/setting_responses_with_pattern_matching.feature
219
- - features/snapshotting.feature
220
- - features/step_definitions/my_steps.rb
221
- - features/support/env.rb
222
- - features/web_user_interface.feature
176
+ - features/checking_for_requests.feature
177
+ - features/clearing_requests_and_responses.feature
178
+ - features/client/checking_for_requests.feature
179
+ - features/client/clearing_responses.feature
180
+ - features/client/getting_responses.feature
181
+ - features/client/mirage_client.feature
182
+ - features/client/peeking.feature
183
+ - features/client/setting_responses.feature
184
+ - features/client/snapshotting.feature
185
+ - features/command_line_iterface.feature
186
+ - features/default_responses.feature
187
+ - features/file_hosting.feature
188
+ - features/logging.feature
189
+ - features/peeking_at_response.feature
190
+ - features/priming.feature
191
+ - features/resources/test.zip
192
+ - features/response_templates.feature
193
+ - features/setting_responses.feature
194
+ - features/setting_responses_with_a_delay.feature
195
+ - features/setting_responses_with_pattern_matching.feature
196
+ - features/snapshotting.feature
197
+ - features/step_definitions/my_steps.rb
198
+ - features/support/env.rb
199
+ - features/web_user_interface.feature
@@ -1,47 +0,0 @@
1
- Feature: Mirage can respond with a 'root' response when a when the response requested at a sub url is not found.
2
- I.e.
3
- if a response is held for 'level1' and request comes in for 'level1/level2' the response for 'level1'
4
- can be returned if nothing is held for 'level1/level2'
5
-
6
- If a request is made and there is more than one response that could be appropriate then the closet is chosen.
7
-
8
- E.g.
9
- responses exist for: 'level1' and 'level1/level2'. If a response for 'level1/level2/level3 is made, then the response for
10
- 'level1/level2' will be returned as it is the most specific match out of the two.
11
-
12
- Root responses can cause unexpected behaviour and so in order to qualify as a root reponse a client must knowingly mark it as one.
13
-
14
- Scenario: A root response is returned
15
- Given I hit 'http://localhost:7001/mirage/set/level0/level1' with parameters:
16
- | response | another level |
17
- And I hit 'http://localhost:7001/mirage/set/level1' with parameters:
18
- | response | level 1 |
19
- | root_response | true |
20
-
21
- When I hit 'http://localhost:7001/mirage/get/level1/level2'
22
- Then 'level 1' should be returned
23
-
24
-
25
- Scenario: More than one potential root response exists
26
- Given I hit 'http://localhost:7001/mirage/set/level1' with parameters:
27
- | response | level 1 |
28
- | root_response | true |
29
- And I hit 'http://localhost:7001/mirage/set/level1/level2' with parameters:
30
- | response | level 2 |
31
- | root_response | true |
32
- And I hit 'http://localhost:7001/mirage/set/level1/level2/level3' with parameters:
33
- | response | level 3 |
34
- | root_response | false |
35
- And I hit 'http://localhost:7001/mirage/set/level1/level2/level3/level4/level5' with parameters:
36
- | response | level 5 |
37
- | root_response | true |
38
-
39
- When I hit 'http://localhost:7001/mirage/get/level1/level2/level3/level4'
40
- Then 'level 2' should be returned
41
-
42
-
43
- Scenario: There isnt a root response
44
- Given I hit 'http://localhost:7001/mirage/set/level1' with parameters:
45
- | response | level 1 |
46
- When I hit 'http://localhost:7001/mirage/get/level1/level2'
47
- Then a 404 should be returned