Class: Pact::Consumer::PactPost
- Inherits:
-
MockServiceAdministrationEndpoint
- Object
- MockServiceAdministrationEndpoint
- Pact::Consumer::PactPost
- Defined in:
- lib/pact/consumer/mock_service/pact_post.rb
Constant Summary
Constants included from RackRequestHelper
RackRequestHelper::REQUEST_KEYS
Instance Attribute Summary collapse
-
#consumer_contract ⇒ Object
Returns the value of attribute consumer_contract.
-
#interactions ⇒ Object
Returns the value of attribute interactions.
Attributes inherited from MockServiceAdministrationEndpoint
Instance Method Summary collapse
-
#initialize(name, logger, interactions) ⇒ PactPost
constructor
A new instance of PactPost.
- #request_method ⇒ Object
- #request_path ⇒ Object
- #respond(env) ⇒ Object
Methods inherited from MockServiceAdministrationEndpoint
Methods included from RackRequestHelper
#params_hash, #request_as_hash_from
Constructor Details
#initialize(name, logger, interactions) ⇒ PactPost
Returns a new instance of PactPost.
10 11 12 13 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 10 def initialize name, logger, interactions super name, logger @interactions = interactions end |
Instance Attribute Details
#consumer_contract ⇒ Object
Returns the value of attribute consumer_contract.
8 9 10 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 8 def consumer_contract @consumer_contract end |
#interactions ⇒ Object
Returns the value of attribute interactions.
8 9 10 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 8 def interactions @interactions end |
Instance Method Details
#request_method ⇒ Object
19 20 21 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 19 def request_method 'POST' end |
#request_path ⇒ Object
15 16 17 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 15 def request_path '/pact' end |
#respond(env) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/pact/consumer/mock_service/pact_post.rb', line 23 def respond env consumer_contract_details = JSON.parse(env['rack.input'].string, symbolize_names: true) logger.info "Writing pact with details #{consumer_contract_details}" consumer_contract_writer = ConsumerContractWriter.new(consumer_contract_details.merge(interactions: interactions), logger) json = consumer_contract_writer.write [200, {'Content-Type' =>'application/json'}, [json]] end |