http_stub 0.19.1 → 0.20.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.
Files changed (114) hide show
  1. checksums.yaml +13 -5
  2. data/lib/http_stub.rb +26 -21
  3. data/lib/http_stub/configurer/server/command_processor.rb +1 -0
  4. data/lib/http_stub/server/application.rb +24 -46
  5. data/lib/http_stub/server/formatted_hash.rb +18 -0
  6. data/lib/http_stub/server/header_parser.rb +17 -0
  7. data/lib/http_stub/server/registry.rb +9 -9
  8. data/lib/http_stub/server/request.rb +19 -0
  9. data/lib/http_stub/server/request_pipeline.rb +27 -0
  10. data/lib/http_stub/server/response.rb +7 -3
  11. data/lib/http_stub/server/scenario.rb +1 -1
  12. data/lib/http_stub/server/scenario/activator.rb +4 -4
  13. data/lib/http_stub/server/scenario/controller.rb +8 -8
  14. data/lib/http_stub/server/scenario/{request_parser.rb → parser.rb} +2 -2
  15. data/lib/http_stub/server/scenario/{instance.rb → scenario.rb} +2 -2
  16. data/lib/http_stub/server/stub.rb +1 -1
  17. data/lib/http_stub/server/stub/controller.rb +8 -8
  18. data/lib/http_stub/server/stub/empty.rb +34 -0
  19. data/lib/http_stub/server/stub/match/exact_value_matcher.rb +17 -0
  20. data/lib/http_stub/server/stub/match/hash_with_string_value_matchers.rb +26 -0
  21. data/lib/http_stub/server/stub/match/match.rb +20 -0
  22. data/lib/http_stub/server/stub/match/omitted_value_matcher.rb +23 -0
  23. data/lib/http_stub/server/stub/match/regexp_value_matcher.rb +18 -0
  24. data/lib/http_stub/server/stub/match/rule/body.rb +49 -0
  25. data/lib/http_stub/server/stub/match/rule/headers.rb +31 -0
  26. data/lib/http_stub/server/stub/match/rule/json_body.rb +39 -0
  27. data/lib/http_stub/server/stub/match/rule/method.rb +27 -0
  28. data/lib/http_stub/server/stub/match/rule/parameters.rb +27 -0
  29. data/lib/http_stub/server/stub/match/rule/simple_body.rb +27 -0
  30. data/lib/http_stub/server/stub/match/rule/uri.rb +27 -0
  31. data/lib/http_stub/server/stub/match/string_value_matcher.rb +33 -0
  32. data/lib/http_stub/server/stub/match/truthy_matcher.rb +25 -0
  33. data/lib/http_stub/server/stub/{request_parser.rb → parser.rb} +2 -2
  34. data/lib/http_stub/server/stub/payload_file_consolidator.rb +1 -1
  35. data/lib/http_stub/server/stub/registry.rb +16 -8
  36. data/lib/http_stub/server/stub/response/base.rb +2 -2
  37. data/lib/http_stub/server/stub/stub.rb +44 -0
  38. data/lib/http_stub/server/stub/triggers.rb +2 -2
  39. data/lib/http_stub/server/views/_match.haml +20 -0
  40. data/lib/http_stub/server/views/matches.haml +3 -0
  41. data/lib/http_stub/server/views/stub.haml +1 -0
  42. data/lib/http_stub/version.rb +1 -1
  43. data/spec/acceptance/stub_control_values_spec.rb +6 -3
  44. data/spec/acceptance/stub_match_spec.rb +142 -0
  45. data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +4 -0
  46. data/spec/lib/http_stub/server/application_integration_spec.rb +17 -18
  47. data/spec/lib/http_stub/server/application_spec.rb +81 -53
  48. data/spec/lib/http_stub/server/formatted_hash_spec.rb +54 -0
  49. data/spec/lib/http_stub/server/{stub/request_header_parser_spec.rb → header_parser_spec.rb} +9 -9
  50. data/spec/lib/http_stub/server/{request_file_consolidator_spec.rb → payload_file_consolidator_spec.rb} +4 -4
  51. data/spec/lib/http_stub/server/registry_spec.rb +13 -14
  52. data/spec/lib/http_stub/server/request_pipeline_spec.rb +80 -0
  53. data/spec/lib/http_stub/server/request_spec.rb +113 -0
  54. data/spec/lib/http_stub/server/response_spec.rb +46 -12
  55. data/spec/lib/http_stub/server/scenario/activator_spec.rb +18 -18
  56. data/spec/lib/http_stub/server/scenario/controller_spec.rb +18 -15
  57. data/spec/lib/http_stub/server/scenario/{request_parser_spec.rb → parser_spec.rb} +8 -8
  58. data/spec/lib/http_stub/server/scenario/{instance_spec.rb → scenario_spec.rb} +7 -5
  59. data/spec/lib/http_stub/server/scenario_spec.rb +3 -3
  60. data/spec/lib/http_stub/server/stub/controller_spec.rb +29 -14
  61. data/spec/lib/http_stub/server/stub/empty_spec.rb +68 -0
  62. data/spec/lib/http_stub/server/stub/{exact_value_matcher_spec.rb → match/exact_value_matcher_spec.rb} +2 -2
  63. data/spec/lib/http_stub/server/stub/{hash_with_string_value_matchers_spec.rb → match/hash_with_string_value_matchers_spec.rb} +27 -19
  64. data/spec/lib/http_stub/server/stub/match/match_spec.rb +40 -0
  65. data/spec/lib/http_stub/server/stub/{omitted_value_matcher_spec.rb → match/omitted_value_matcher_spec.rb} +2 -2
  66. data/spec/lib/http_stub/server/stub/{regexp_value_matcher_spec.rb → match/regexp_value_matcher_spec.rb} +2 -2
  67. data/spec/lib/http_stub/server/stub/{request_body_spec.rb → match/rule/body_spec.rb} +12 -12
  68. data/spec/lib/http_stub/server/stub/match/rule/headers_spec.rb +90 -0
  69. data/spec/lib/http_stub/server/stub/{json_request_body_spec.rb → match/rule/json_body_spec.rb} +9 -10
  70. data/spec/lib/http_stub/server/stub/{method_spec.rb → match/rule/method_spec.rb} +6 -5
  71. data/spec/lib/http_stub/server/stub/{request_parameters_spec.rb → match/rule/parameters_spec.rb} +16 -10
  72. data/spec/lib/http_stub/server/stub/match/rule/simple_body_spec.rb +46 -0
  73. data/spec/lib/http_stub/server/stub/match/rule/uri_spec.rb +46 -0
  74. data/spec/lib/http_stub/server/stub/{string_value_matcher_spec.rb → match/string_value_matcher_spec.rb} +30 -26
  75. data/spec/lib/http_stub/server/stub/match/truthy_matcher_spec.rb +24 -0
  76. data/spec/lib/http_stub/server/stub/{request_parser_spec.rb → parser_spec.rb} +7 -7
  77. data/spec/lib/http_stub/server/stub/registry_integration_spec.rb +5 -5
  78. data/spec/lib/http_stub/server/stub/registry_spec.rb +114 -43
  79. data/spec/lib/http_stub/server/stub/response/base_spec.rb +8 -2
  80. data/spec/lib/http_stub/server/stub/stub_spec.rb +294 -0
  81. data/spec/lib/http_stub/server/stub/triggers_spec.rb +4 -4
  82. data/spec/lib/http_stub/server/stub_spec.rb +3 -3
  83. data/spec/spec_helper.rb +7 -3
  84. data/spec/support/configurer_integration.rb +1 -0
  85. data/spec/support/http_stub/empty_configurer.rb +7 -0
  86. data/spec/support/{scenario_fixture.rb → http_stub/scenario_fixture.rb} +0 -0
  87. data/spec/support/http_stub/server/request_fixture.rb +25 -0
  88. data/spec/support/http_stub/server/scenario/scenario_fixture.rb +15 -0
  89. data/spec/support/http_stub/server/stub/match/match_fixture.rb +17 -0
  90. data/spec/support/{stub_fixture.rb → http_stub/stub_fixture.rb} +0 -0
  91. data/spec/support/server_integration.rb +1 -0
  92. metadata +315 -290
  93. data/lib/http_stub/server/stub/exact_value_matcher.rb +0 -15
  94. data/lib/http_stub/server/stub/hash_with_string_value_matchers.rb +0 -22
  95. data/lib/http_stub/server/stub/headers.rb +0 -19
  96. data/lib/http_stub/server/stub/instance.rb +0 -32
  97. data/lib/http_stub/server/stub/json_request_body.rb +0 -35
  98. data/lib/http_stub/server/stub/method.rb +0 -23
  99. data/lib/http_stub/server/stub/omitted_value_matcher.rb +0 -21
  100. data/lib/http_stub/server/stub/regexp_value_matcher.rb +0 -16
  101. data/lib/http_stub/server/stub/request_body.rb +0 -44
  102. data/lib/http_stub/server/stub/request_header_parser.rb +0 -19
  103. data/lib/http_stub/server/stub/request_headers.rb +0 -28
  104. data/lib/http_stub/server/stub/request_parameters.rb +0 -23
  105. data/lib/http_stub/server/stub/simple_request_body.rb +0 -23
  106. data/lib/http_stub/server/stub/string_value_matcher.rb +0 -31
  107. data/lib/http_stub/server/stub/truthy_request_matcher.rb +0 -23
  108. data/lib/http_stub/server/stub/uri.rb +0 -23
  109. data/spec/lib/http_stub/server/stub/headers_spec.rb +0 -51
  110. data/spec/lib/http_stub/server/stub/instance_spec.rb +0 -235
  111. data/spec/lib/http_stub/server/stub/request_headers_spec.rb +0 -68
  112. data/spec/lib/http_stub/server/stub/simple_request_body_spec.rb +0 -43
  113. data/spec/lib/http_stub/server/stub/truthy_request_matcher_spec.rb +0 -23
  114. data/spec/lib/http_stub/server/stub/uri_spec.rb +0 -43
@@ -0,0 +1,90 @@
1
+ describe HttpStub::Server::Stub::Match::Rule::Headers do
2
+
3
+ let(:request) { instance_double(HttpStub::Server::Request) }
4
+
5
+ let(:stubbed_headers) { { "stub_key" => "value" } }
6
+
7
+ let(:request_headers) { described_class.new(stubbed_headers) }
8
+
9
+ describe "when stubbed headers are provided" do
10
+
11
+ it "creates a regexpable representation of the stubbed headers whose keys are downcased and underscored" do
12
+ downcased_and_underscored_hash = { "another_stub_key" => "value" }
13
+ expect(stubbed_headers).to receive(:downcase_and_underscore_keys).and_return(downcased_and_underscored_hash)
14
+ expect(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to(
15
+ receive(:new).with(downcased_and_underscored_hash)
16
+ )
17
+
18
+ request_headers
19
+ end
20
+
21
+ end
22
+
23
+ describe "when the stubbed headers are nil" do
24
+
25
+ let(:stubbed_headers) { nil }
26
+
27
+ it "creates a regexpable representation of an empty hash" do
28
+ expect(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to receive(:new).with({})
29
+
30
+ request_headers
31
+ end
32
+
33
+ end
34
+
35
+ describe "#matches?" do
36
+
37
+ let(:request_header_hash) { { "header_key" => "header value" } }
38
+ let(:regexpable_stubbed_headers) do
39
+ double(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).as_null_object
40
+ end
41
+ let(:logger) { double(Logger) }
42
+
43
+ subject { request_headers.matches?(request, logger) }
44
+
45
+ before(:example) do
46
+ allow(request).to receive(:headers).and_return(request_header_hash)
47
+ allow(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to(
48
+ receive(:new).and_return(regexpable_stubbed_headers)
49
+ )
50
+ end
51
+
52
+ it "downcases and underscore the keys in the request header hash" do
53
+ expect(request_header_hash).to receive(:downcase_and_underscore_keys)
54
+
55
+ subject
56
+ end
57
+
58
+ it "delegates to the regexpable representation of the stubbed headers to determine a match" do
59
+ downcased_and_underscored_hash = { "another_request_key" => "value" }
60
+ allow(request_header_hash).to receive(:downcase_and_underscore_keys).and_return(downcased_and_underscored_hash)
61
+ expect(regexpable_stubbed_headers).to receive(:matches?).with(downcased_and_underscored_hash).and_return(true)
62
+
63
+ expect(subject).to eql(true)
64
+ end
65
+
66
+ end
67
+
68
+ describe "#to_s" do
69
+
70
+ let(:readable_hash) { instance_double(HttpStub::Server::FormattedHash, to_s: "readable header hash string") }
71
+
72
+ subject { request_headers.to_s }
73
+
74
+ before(:example) do
75
+ allow(HttpStub::Server::FormattedHash).to receive(:new).with(stubbed_headers, anything).and_return(readable_hash)
76
+ end
77
+
78
+ it "returns the string representation of the readable header hash" do
79
+ expect(subject).to eql("readable header hash string")
80
+ end
81
+
82
+ it "formats the headers with a ':' key value delimiter" do
83
+ expect(HttpStub::Server::FormattedHash).to receive(:new).with(stubbed_headers, ":")
84
+
85
+ subject
86
+ end
87
+
88
+ end
89
+
90
+ end
@@ -1,24 +1,23 @@
1
- describe HttpStub::Server::Stub::JsonRequestBody do
1
+ describe HttpStub::Server::Stub::Match::Rule::JsonBody do
2
2
 
3
3
  let(:stubbed_schema_definition) { { "type" => "object", "properties" => { "some_property" => "some_type" } } }
4
4
 
5
- let(:json_request_body) { HttpStub::Server::Stub::JsonRequestBody.new(stubbed_schema_definition) }
5
+ let(:json_body) { described_class.new(stubbed_schema_definition) }
6
6
 
7
- describe "#match?" do
7
+ describe "#matches?" do
8
8
 
9
- let(:logger) { double("Logger").as_null_object }
10
- let(:raw_request_body) { { "some_json_property" => "some_json_value" }.to_json }
11
- let(:request_body) { double("RackRequestBody", read: raw_request_body) }
12
- let(:request) { instance_double(Rack::Request, logger: logger, body: request_body) }
9
+ let(:request_body) { { "some_json_property" => "some_json_value" }.to_json }
10
+ let(:request) { instance_double(HttpStub::Server::Request, body: request_body) }
11
+ let(:logger) { instance_double(Logger, info: nil) }
13
12
 
14
13
  let(:validation_errors) { [] }
15
14
 
16
- subject { json_request_body.match?(request) }
15
+ subject { json_body.matches?(request, logger) }
17
16
 
18
17
  before(:example) { allow(JSON::Validator).to receive(:fully_validate).and_return(validation_errors) }
19
18
 
20
19
  it "validates the request body using the stubbed schema definition" do
21
- expect(JSON::Validator).to receive(:fully_validate).with(stubbed_schema_definition, raw_request_body, anything)
20
+ expect(JSON::Validator).to receive(:fully_validate).with(stubbed_schema_definition, request_body, anything)
22
21
 
23
22
  subject
24
23
  end
@@ -91,7 +90,7 @@ describe HttpStub::Server::Stub::JsonRequestBody do
91
90
 
92
91
  describe "#to_s" do
93
92
 
94
- subject { json_request_body.to_s }
93
+ subject { json_body.to_s }
95
94
 
96
95
  it "returns the JSON representation of the schema definition" do
97
96
  expect(subject).to eql(stubbed_schema_definition.to_json)
@@ -1,15 +1,16 @@
1
- describe HttpStub::Server::Stub::Method do
1
+ describe HttpStub::Server::Stub::Match::Rule::Method do
2
2
 
3
3
  let(:raw_stub_method) { "put" }
4
4
 
5
- let(:the_method) { HttpStub::Server::Stub::Method.new(raw_stub_method) }
5
+ let(:the_method) { described_class.new(raw_stub_method) }
6
6
 
7
- describe "#match?" do
7
+ describe "#matches?" do
8
8
 
9
9
  let(:request_method) { "get" }
10
- let(:request) { instance_double(Rack::Request, request_method: request_method) }
10
+ let(:request) { instance_double(HttpStub::Server::Request, method: request_method) }
11
+ let(:logger) { instance_double(Logger) }
11
12
 
12
- subject { the_method.match?(request) }
13
+ subject { the_method.matches?(request, logger) }
13
14
 
14
15
  context "when the request method is identical to the stub method" do
15
16
 
@@ -1,17 +1,19 @@
1
- describe HttpStub::Server::Stub::RequestParameters do
1
+ describe HttpStub::Server::Stub::Match::Rule::Parameters do
2
2
 
3
3
  let(:raw_request_parameters) { double("RequestParameters") }
4
- let(:request) { instance_double(Rack::Request, params: raw_request_parameters) }
4
+ let(:request) { instance_double(HttpStub::Server::Request, parameters: raw_request_parameters) }
5
5
 
6
6
  let(:stubbed_parameters) { { "key1" => "value1", "key2" => "value2", "key3" => "value3" } }
7
- let(:regexpable_stubbed_paremeters) { double(HttpStub::Server::Stub::HashWithStringValueMatchers).as_null_object }
7
+ let(:regexpable_stubbed_paremeters) do
8
+ double(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).as_null_object
9
+ end
8
10
 
9
- let(:request_parameters) { HttpStub::Server::Stub::RequestParameters.new(stubbed_parameters) }
11
+ let(:request_parameters) { described_class.new(stubbed_parameters) }
10
12
 
11
13
  describe "when stubbed parameters are provided" do
12
14
 
13
15
  it "creates a regexpable representation of the stubbed parameters" do
14
- expect(HttpStub::Server::Stub::HashWithStringValueMatchers).to receive(:new).with(stubbed_parameters)
16
+ expect(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to receive(:new).with(stubbed_parameters)
15
17
 
16
18
  request_parameters
17
19
  end
@@ -23,20 +25,24 @@ describe HttpStub::Server::Stub::RequestParameters do
23
25
  let(:stubbed_parameters) { nil }
24
26
 
25
27
  it "creates a regexpable representation of an empty hash" do
26
- expect(HttpStub::Server::Stub::HashWithStringValueMatchers).to receive(:new).with({})
28
+ expect(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to receive(:new).with({})
27
29
 
28
30
  request_parameters
29
31
  end
30
32
 
31
33
  end
32
34
 
33
- describe "#match?" do
35
+ describe "#matches?" do
36
+
37
+ let(:logger) { instance_double(Logger) }
34
38
 
35
39
  it "delegates to the regexpable representation of the stubbed parameters to determine a match" do
36
- allow(HttpStub::Server::Stub::HashWithStringValueMatchers).to receive(:new).and_return(regexpable_stubbed_paremeters)
37
- expect(regexpable_stubbed_paremeters).to receive(:match?).with(raw_request_parameters).and_return(true)
40
+ allow(HttpStub::Server::Stub::Match::HashWithStringValueMatchers).to(
41
+ receive(:new).and_return(regexpable_stubbed_paremeters)
42
+ )
43
+ expect(regexpable_stubbed_paremeters).to receive(:matches?).with(raw_request_parameters).and_return(true)
38
44
 
39
- expect(request_parameters.match?(request)).to be(true)
45
+ expect(request_parameters.matches?(request, logger)).to be(true)
40
46
  end
41
47
 
42
48
  end
@@ -0,0 +1,46 @@
1
+ describe HttpStub::Server::Stub::Match::Rule::SimpleBody do
2
+
3
+ let(:raw_body) { "some body" }
4
+ let(:value_matcher) { instance_double(HttpStub::Server::Stub::Match::StringValueMatcher).as_null_object }
5
+
6
+ let(:simple_body) { described_class.new(raw_body) }
7
+
8
+ before(:example) do
9
+ allow(HttpStub::Server::Stub::Match::StringValueMatcher).to receive(:new).and_return(value_matcher)
10
+ end
11
+
12
+ describe "constructor" do
13
+
14
+ it "creates a value matcher for the provided body" do
15
+ expect(HttpStub::Server::Stub::Match::StringValueMatcher).to receive(:new).with(raw_body)
16
+
17
+ simple_body
18
+ end
19
+
20
+ end
21
+
22
+ describe "#matches?" do
23
+
24
+ let(:request_body) { "some request body" }
25
+ let(:request) { instance_double(HttpStub::Server::Request, body: request_body) }
26
+ let(:logger) { instance_double(Logger) }
27
+
28
+ it "delegates to the value matcher to match the request body" do
29
+ expect(value_matcher).to receive(:matches?).with(request_body).and_return(true)
30
+
31
+ expect(simple_body.matches?(request, logger)).to be(true)
32
+ end
33
+
34
+ end
35
+
36
+ describe "#to_s" do
37
+
38
+ it "delegates to the value matcher representation of the provided body" do
39
+ expect(value_matcher).to receive(:to_s).and_return("some value matcher string")
40
+
41
+ expect(simple_body.to_s).to eql("some value matcher string")
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,46 @@
1
+ describe HttpStub::Server::Stub::Match::Rule::Uri do
2
+
3
+ let(:raw_uri) { "/some/uri" }
4
+ let(:value_matcher) { instance_double(HttpStub::Server::Stub::Match::StringValueMatcher).as_null_object }
5
+
6
+ let(:uri) { described_class.new(raw_uri) }
7
+
8
+ before(:example) do
9
+ allow(HttpStub::Server::Stub::Match::StringValueMatcher).to receive(:new).and_return(value_matcher)
10
+ end
11
+
12
+ describe "constructor" do
13
+
14
+ it "creates a value matcher for the provided uri" do
15
+ expect(HttpStub::Server::Stub::Match::StringValueMatcher).to receive(:new).with(raw_uri)
16
+
17
+ uri
18
+ end
19
+
20
+ end
21
+
22
+ describe "#matches?" do
23
+
24
+ let(:request_uri) { "/some/uri" }
25
+ let(:request) { instance_double(HttpStub::Server::Request, uri: request_uri) }
26
+ let(:logger) { instance_double(Logger) }
27
+
28
+ it "delegates to the value matcher representation of the provided uri" do
29
+ expect(value_matcher).to receive(:matches?).with(request_uri).and_return(true)
30
+
31
+ expect(uri.matches?(request, logger)).to be(true)
32
+ end
33
+
34
+ end
35
+
36
+ describe "#to_s" do
37
+
38
+ it "delegates to the value matcher representation of the provided uri" do
39
+ expect(value_matcher).to receive(:to_s).and_return("some value matcher string")
40
+
41
+ expect(uri.to_s).to eql("some value matcher string")
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -1,61 +1,63 @@
1
- describe HttpStub::Server::Stub::StringValueMatcher do
1
+ describe HttpStub::Server::Stub::Match::StringValueMatcher do
2
2
 
3
3
  let(:stub_value) { "some stub value" }
4
4
 
5
- let(:string_value_matcher) { HttpStub::Server::Stub::StringValueMatcher.new(stub_value) }
5
+ let(:string_value_matcher) { HttpStub::Server::Stub::Match::StringValueMatcher.new(stub_value) }
6
6
 
7
- describe "#match?" do
7
+ describe "#matches?" do
8
8
 
9
9
  let(:actual_value) { "some actual value" }
10
10
 
11
+ subject { string_value_matcher.matches?(actual_value) }
12
+
11
13
  shared_examples_for "a StringValueMatcher that matches an expected stub value" do
12
14
 
13
15
  it "determines if actual value should be omitted" do
14
- expect(HttpStub::Server::Stub::OmittedValueMatcher).to(
16
+ expect(HttpStub::Server::Stub::Match::OmittedValueMatcher).to(
15
17
  receive(:match?).with(expected_stub_match_value, actual_value)
16
18
  )
17
19
 
18
- perform_match
20
+ subject
19
21
  end
20
22
 
21
23
  it "determines if the actual value matches a regular expression" do
22
- expect(HttpStub::Server::Stub::RegexpValueMatcher).to(
24
+ expect(HttpStub::Server::Stub::Match::RegexpValueMatcher).to(
23
25
  receive(:match?).with(expected_stub_match_value, actual_value)
24
26
  )
25
27
 
26
- perform_match
28
+ subject
27
29
  end
28
30
 
29
31
  it "determines if the actual value exactly matches the stub value" do
30
- expect(HttpStub::Server::Stub::ExactValueMatcher).to(
32
+ expect(HttpStub::Server::Stub::Match::ExactValueMatcher).to(
31
33
  receive(:match?).with(expected_stub_match_value, actual_value)
32
34
  )
33
35
 
34
- perform_match
36
+ subject
35
37
  end
36
38
 
37
39
  it "determines if actual value should be omitted" do
38
- expect(HttpStub::Server::Stub::OmittedValueMatcher).to(
40
+ expect(HttpStub::Server::Stub::Match::OmittedValueMatcher).to(
39
41
  receive(:match?).with(expected_stub_match_value, actual_value)
40
42
  )
41
43
 
42
- perform_match
44
+ subject
43
45
  end
44
46
 
45
47
  it "determines if the actual value matches a regular expression" do
46
- expect(HttpStub::Server::Stub::RegexpValueMatcher).to(
48
+ expect(HttpStub::Server::Stub::Match::RegexpValueMatcher).to(
47
49
  receive(:match?).with(expected_stub_match_value, actual_value)
48
50
  )
49
51
 
50
- perform_match
52
+ subject
51
53
  end
52
54
 
53
55
  it "determines if the actual value exactly matches the stub value" do
54
- expect(HttpStub::Server::Stub::ExactValueMatcher).to(
56
+ expect(HttpStub::Server::Stub::Match::ExactValueMatcher).to(
55
57
  receive(:match?).with(expected_stub_match_value, actual_value)
56
58
  )
57
59
 
58
- perform_match
60
+ subject
59
61
  end
60
62
 
61
63
  end
@@ -80,30 +82,36 @@ describe HttpStub::Server::Stub::StringValueMatcher do
80
82
 
81
83
  context "when an omitted match occurs" do
82
84
 
83
- before(:example) { expect(HttpStub::Server::Stub::OmittedValueMatcher).to receive(:match?).and_return(true) }
85
+ before(:example) do
86
+ expect(HttpStub::Server::Stub::Match::OmittedValueMatcher).to receive(:match?).and_return(true)
87
+ end
84
88
 
85
89
  it "returns true" do
86
- expect(perform_match).to be_truthy
90
+ expect(subject).to be(true)
87
91
  end
88
92
 
89
93
  end
90
94
 
91
95
  context "when a regular expression match occurs" do
92
96
 
93
- before(:example) { expect(HttpStub::Server::Stub::RegexpValueMatcher).to receive(:match?).and_return(true) }
97
+ before(:example) do
98
+ expect(HttpStub::Server::Stub::Match::RegexpValueMatcher).to receive(:match?).and_return(true)
99
+ end
94
100
 
95
101
  it "returns true" do
96
- expect(perform_match).to be_truthy
102
+ expect(subject).to be(true)
97
103
  end
98
104
 
99
105
  end
100
106
 
101
107
  context "when an exact match occurs" do
102
108
 
103
- before(:example) { expect(HttpStub::Server::Stub::ExactValueMatcher).to receive(:match?).and_return(true) }
109
+ before(:example) do
110
+ expect(HttpStub::Server::Stub::Match::ExactValueMatcher).to receive(:match?).and_return(true)
111
+ end
104
112
 
105
113
  it "returns true" do
106
- expect(perform_match).to be_truthy
114
+ expect(subject).to be(true)
107
115
  end
108
116
 
109
117
  end
@@ -111,14 +119,10 @@ describe HttpStub::Server::Stub::StringValueMatcher do
111
119
  context "when no match occurs" do
112
120
 
113
121
  it "returns false" do
114
- expect(perform_match).to be_falsey
122
+ expect(subject).to be(false)
115
123
  end
116
124
 
117
125
  end
118
-
119
- def perform_match
120
- string_value_matcher.match?(actual_value)
121
- end
122
126
 
123
127
  end
124
128
 
@@ -0,0 +1,24 @@
1
+ describe HttpStub::Server::Stub::Match::TruthyMatcher do
2
+
3
+ let(:truthy_matcher) { described_class }
4
+
5
+ describe "::matches?" do
6
+
7
+ let(:request) { instance_double(HttpStub::Server::Request) }
8
+ let(:logger) { instance_double(Logger) }
9
+
10
+ it "returns true" do
11
+ expect(truthy_matcher.matches?(request, logger)).to be(true)
12
+ end
13
+
14
+ end
15
+
16
+ describe "::to_s" do
17
+
18
+ it "returns an empty string" do
19
+ expect(truthy_matcher.to_s).to eql("")
20
+ end
21
+
22
+ end
23
+
24
+ end