wiremock_mapper 0.9.0 → 1.0.0
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/README.md +11 -7
- data/lib/builders/helpers.rb +10 -0
- data/lib/builders/match_builder.rb +9 -7
- data/lib/builders/response_builder.rb +8 -0
- data/lib/builders/url_match_builder.rb +4 -3
- data/spec/match_builder_spec.rb +10 -0
- data/spec/response_builder_spec.rb +8 -0
- data/spec/url_match_builder_spec.rb +5 -0
- data/wiremock_mapper.gemspec +1 -1
- metadata +3 -2
data/README.md
CHANGED
@@ -3,28 +3,32 @@
|
|
3
3
|
[](https://codeclimate.com/github/ike18t/wiremock_mapper/coverage)
|
4
4
|
[](https://gemnasium.com/github.com/ike18t/wiremock_mapper)
|
5
5
|
[](https://badge.fury.io/rb/wiremock_mapper)
|
6
|
+
[](http://inch-ci.org/github/ike18t/wiremock_mapper)
|
6
7
|
|
7
8
|
##WireMockMapper
|
8
9
|
|
9
10
|
**Ruby DSL for setting up [WireMock](http://wiremock.org/) mappings**
|
10
11
|
|
12
|
+
####Documentation
|
13
|
+
Can be found at [RubyDoc.info](http://www.rubydoc.info/gems/wiremock_mapper)
|
14
|
+
|
11
15
|
####Usage Example
|
12
16
|
```ruby
|
13
17
|
WireMockMapper::Configuration.set_wiremock_url('http://my_wiremock.com')
|
14
18
|
|
15
19
|
WireMockMapper::Configuration.create_global_mapping do |request, respond|
|
16
20
|
request.with_header('Some-Header').equal_to('some_value')
|
17
|
-
.with_cookie('Some-Cookie').
|
21
|
+
.with_cookie('Some-Cookie').not_matching('some_cookie_value')
|
18
22
|
respond.with_status(200)
|
19
23
|
end
|
20
24
|
|
21
25
|
WireMockMapper.create_mapping do |request, respond|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
request.is_a_post
|
27
|
+
.with_url_path.equal_to('path/to/stub')
|
28
|
+
.with_header('Some-Other-Header').equal_to('some_other_value')
|
29
|
+
.with_cookie('Some-Other-Cookie').containing('some_other_cookie_value')
|
30
|
+
.with_body.equal_to(foo: bar)
|
31
|
+
respond.with_body('good job!')
|
28
32
|
end
|
29
33
|
```
|
30
34
|
|
@@ -58,12 +58,13 @@ module WireMockMapper
|
|
58
58
|
@request_builder
|
59
59
|
end
|
60
60
|
|
61
|
-
# Match if attribute value matches the
|
62
|
-
# @param
|
61
|
+
# Match if attribute value matches the regexp
|
62
|
+
# @param regexp [String, Regexp] regexp to match against
|
63
63
|
# @return [RequestBuilder] calling request builder for chaining additional attributes
|
64
|
-
def matching(
|
64
|
+
def matching(regexp)
|
65
|
+
regexp = Helpers.regexp_to_string regexp if regexp.is_a? Regexp
|
65
66
|
@type = :matches
|
66
|
-
@value =
|
67
|
+
@value = regexp
|
67
68
|
@request_builder
|
68
69
|
end
|
69
70
|
|
@@ -86,11 +87,12 @@ module WireMockMapper
|
|
86
87
|
end
|
87
88
|
|
88
89
|
# Match if attribute value does not match
|
89
|
-
# @param
|
90
|
+
# @param regexp [Regexp, String] regexp to match against
|
90
91
|
# @return [RequestBuilder] calling request builder for chaining additional attributes
|
91
|
-
def not_matching(
|
92
|
+
def not_matching(regexp)
|
93
|
+
regexp = Helpers.regexp_to_string regexp if regexp.is_a? Regexp
|
92
94
|
@type = :doesNotMatch
|
93
|
-
@value =
|
95
|
+
@value = regexp
|
94
96
|
@request_builder
|
95
97
|
end
|
96
98
|
|
@@ -14,6 +14,14 @@ module WireMockMapper
|
|
14
14
|
self
|
15
15
|
end
|
16
16
|
|
17
|
+
# Add a response delay
|
18
|
+
# @param milliseconds [String, Numeric] the delay duration in milliseconds
|
19
|
+
# @return [ResponseBuilder] response builder for chaining
|
20
|
+
def with_delay(milliseconds)
|
21
|
+
@options[:fixedDelayMilliseconds] = milliseconds
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
17
25
|
# Add a response header
|
18
26
|
# @param key [String] the key of the header
|
19
27
|
# @param value [String] the value of the header
|
@@ -18,11 +18,12 @@ module WireMockMapper
|
|
18
18
|
end
|
19
19
|
|
20
20
|
# Expect url to match
|
21
|
-
# @param
|
21
|
+
# @param regexp [Regexp, String] regex for url to match against
|
22
22
|
# @return [RequestBuilder] calling request builder for chaining additional attributes
|
23
|
-
def matching(
|
23
|
+
def matching(regexp)
|
24
|
+
regexp = Helpers.regexp_to_string regexp if regexp.is_a? Regexp
|
24
25
|
@type = @path ? :urlPathPattern : :urlPattern
|
25
|
-
@url_or_pattern =
|
26
|
+
@url_or_pattern = regexp
|
26
27
|
@request_builder
|
27
28
|
end
|
28
29
|
|
data/spec/match_builder_spec.rb
CHANGED
@@ -53,6 +53,11 @@ describe WireMockMapper::Builders::MatchBuilder do
|
|
53
53
|
builder.matching 'foo'
|
54
54
|
expect(builder.to_hash).to eq(matches: 'foo')
|
55
55
|
end
|
56
|
+
|
57
|
+
it 'converts the regex to a string and returns a hash of { matches => value }' do
|
58
|
+
builder.matching(/foo(s)?/)
|
59
|
+
expect(builder.to_hash).to eq(matches: 'foo(s)?')
|
60
|
+
end
|
56
61
|
end
|
57
62
|
|
58
63
|
describe 'matching_json_path' do
|
@@ -74,5 +79,10 @@ describe WireMockMapper::Builders::MatchBuilder do
|
|
74
79
|
builder.not_matching 'foo'
|
75
80
|
expect(builder.to_hash).to eq(doesNotMatch: 'foo')
|
76
81
|
end
|
82
|
+
|
83
|
+
it 'converts the regex to a string and returns a hash of { doesNotMatch => value }' do
|
84
|
+
builder.matching(/foo(s)?/)
|
85
|
+
expect(builder.to_hash).to eq(matches: 'foo(s)?')
|
86
|
+
end
|
77
87
|
end
|
78
88
|
end
|
@@ -47,4 +47,12 @@ describe WireMockMapper::Builders::ResponseBuilder do
|
|
47
47
|
expect(result[:statusMessage]).to eq('message')
|
48
48
|
end
|
49
49
|
end
|
50
|
+
|
51
|
+
describe 'with_delay' do
|
52
|
+
it 'adds the fixed delay milliseconds' do
|
53
|
+
builder.with_delay(1200)
|
54
|
+
result = builder.to_hash
|
55
|
+
expect(result[:fixedDelayMilliseconds]).to eq(1200)
|
56
|
+
end
|
57
|
+
end
|
50
58
|
end
|
@@ -34,6 +34,11 @@ describe WireMockMapper::Builders::MatchBuilder do
|
|
34
34
|
builder.matching '/some/path'
|
35
35
|
expect(builder.to_hash).to eq(urlPattern: '/some/path')
|
36
36
|
end
|
37
|
+
|
38
|
+
it 'sets the return of to_hash to {urlPattern: value}' do
|
39
|
+
builder.matching(/\/some(\/path)?/)
|
40
|
+
expect(builder.to_hash).to eq(urlPattern: '\/some(\/path)?')
|
41
|
+
end
|
37
42
|
end
|
38
43
|
end
|
39
44
|
end
|
data/wiremock_mapper.gemspec
CHANGED
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.expand_path('../lib', __FILE__))
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'wiremock_mapper'
|
5
|
-
spec.version = '0.
|
5
|
+
spec.version = '1.0.0'
|
6
6
|
spec.platform = Gem::Platform::RUBY
|
7
7
|
spec.required_ruby_version = '>= 1.9.3'
|
8
8
|
spec.authors = ['Isaac Datlof']
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wiremock_mapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
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: 2016-
|
12
|
+
date: 2016-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: codeclimate-test-reporter
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- LICENSE.txt
|
156
156
|
- README.md
|
157
157
|
- Rakefile
|
158
|
+
- lib/builders/helpers.rb
|
158
159
|
- lib/builders/match_builder.rb
|
159
160
|
- lib/builders/request_builder.rb
|
160
161
|
- lib/builders/response_builder.rb
|