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

Sign up to get free protection for your applications and to get access to all the features.
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