mirage 0.1.4 → 0.1.5

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.
@@ -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