mirage 3.0.0.alpha.15 → 3.0.0.alpha.16

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/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm --create use 1.9.2@mirage
1
+ rvm --create use 1.9.3@mirage
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.0.alpha.15
1
+ 3.0.0.alpha.16
@@ -0,0 +1,10 @@
1
+ Feature: URI wildcards
2
+
3
+ Scenario: Setting a template with wildcards
4
+ Given the following Template JSON:
5
+ """
6
+ {"response":{"body":"SGVsbG8="}}
7
+ """
8
+ And the template is sent using PUT to '/templates/greeting/*/davis'
9
+ When GET is sent to '/responses/greeting/leon/davis'
10
+ Then 'Hello' should be returned
data/mirage.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "mirage"
8
- s.version = "3.0.0.alpha.15"
8
+ s.version = "3.0.0.alpha.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Leon Davis"]
12
- s.date = "2013-08-21"
12
+ s.date = "2013-10-22"
13
13
  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."
14
14
  s.executables = ["mirage"]
15
15
  s.extra_rdoc_files = [
@@ -52,6 +52,7 @@ Gem::Specification.new do |s|
52
52
  "features/support/web.rb",
53
53
  "features/templates/delete.feature",
54
54
  "features/templates/get.feature",
55
+ "features/templates/path_wildcards.feature",
55
56
  "features/templates/preview.feature",
56
57
  "features/templates/put.feature",
57
58
  "features/templates/put_with_substitutions.feature",
@@ -113,7 +114,7 @@ Gem::Specification.new do |s|
113
114
  s.licenses = ["MIT"]
114
115
  s.post_install_message = "\n===============================================================================\nThanks you for installing mirage. \n\nRun Mirage with:\n\nmirage start \n\nFor more information go to: https://github.com/lashd/mirage/wiki\n===============================================================================\n"
115
116
  s.require_paths = ["lib"]
116
- s.rubygems_version = "1.8.24"
117
+ s.rubygems_version = "1.8.25"
117
118
  s.summary = "Mirage is a easy mock server for testing your applications"
118
119
 
119
120
  if s.respond_to? :specification_version then
@@ -1,4 +1,5 @@
1
1
  require 'binary_data_checker'
2
+
2
3
  require 'hashie/mash'
3
4
  module Mirage
4
5
  class ServerResponseNotFound < Exception
@@ -132,7 +133,9 @@ module Mirage
132
133
  end
133
134
 
134
135
  def responses_for_endpoint(response)
135
- responses[response.name]||={}
136
+ name = response.name
137
+ name = %r{#{name.gsub('*', '.*')}} if name =~ /\*/
138
+ responses[name]||={}
136
139
  end
137
140
 
138
141
  def responses
@@ -1,5 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'extensions/object'
3
+ require 'extensions/hash'
3
4
  require 'mock_response'
4
5
 
5
6
  describe Mirage::MockResponse do
@@ -228,6 +229,21 @@ describe Mirage::MockResponse do
228
229
  end
229
230
  end
230
231
 
232
+ describe 'matching request uri' do
233
+ it 'should match using wild cards' do
234
+ response_spec = convert_keys_to_strings(
235
+ {
236
+ :response => {
237
+ :body => 'response'
238
+ }
239
+
240
+ }
241
+ )
242
+ response = MockResponse.new('greeting/*/ashley/*', response_spec)
243
+ MockResponse.find(:params => {}, :headers => {}, :http_method => "get", endpoint: 'greeting/leon/ashley/davis').should == response
244
+ end
245
+ end
246
+
231
247
  describe 'matching against request http_headers' do
232
248
  it 'should match using literals' do
233
249
  required_headers = {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mirage
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha.15
4
+ version: 3.0.0.alpha.16
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-21 00:00:00.000000000 Z
12
+ date: 2013-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -281,6 +281,7 @@ files:
281
281
  - features/support/web.rb
282
282
  - features/templates/delete.feature
283
283
  - features/templates/get.feature
284
+ - features/templates/path_wildcards.feature
284
285
  - features/templates/preview.feature
285
286
  - features/templates/put.feature
286
287
  - features/templates/put_with_substitutions.feature
@@ -354,7 +355,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
354
355
  version: '0'
355
356
  segments:
356
357
  - 0
357
- hash: -3864215664462087330
358
+ hash: 4569055939435473462
358
359
  required_rubygems_version: !ruby/object:Gem::Requirement
359
360
  none: false
360
361
  requirements:
@@ -363,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
363
364
  version: 1.3.1
364
365
  requirements: []
365
366
  rubyforge_project:
366
- rubygems_version: 1.8.24
367
+ rubygems_version: 1.8.25
367
368
  signing_key:
368
369
  specification_version: 3
369
370
  summary: Mirage is a easy mock server for testing your applications