module WireMockMapper

Constants

WIREMOCK_CLEAR_MAPPINGS_PATH
WIREMOCK_MAPPINGS_PATH
WIREMOCK_RESET_SCENARIOS_PATH

Public Class Methods

clear_mappings(url = Configuration.wiremock_url) click to toggle source
# File lib/wiremock_mapper.rb, line 29
def clear_mappings(url = Configuration.wiremock_url)
  clear_wiremock_mappings(url)
end
create_mapping(url = Configuration.wiremock_url, &block) click to toggle source
# File lib/wiremock_mapper.rb, line 6
def create_mapping(url = Configuration.wiremock_url, &block)
  create_mapping_with_priority(nil, url, &block)
end
create_mapping_with_priority(priority = nil, url = Configuration.wiremock_url) { |request_builder, response_builder, scenario_builder| ... } click to toggle source
# File lib/wiremock_mapper.rb, line 10
def create_mapping_with_priority(priority = nil, url = Configuration.wiremock_url)
  request_builder = deep_clone(Configuration.request_builder)
  response_builder = deep_clone(Configuration.response_builder)
  scenario_builder = deep_clone(Configuration.scenario_builder)

  yield request_builder, response_builder, scenario_builder

  body = { request: request_builder, response: response_builder }.merge(scenario_builder)
  body[:priority] = priority if priority

  response = send_to_wiremock(url, body)

  JSON.parse(response.body).fetch('id')
end
delete_mapping(mapping_id, url = Configuration.wiremock_url) click to toggle source
# File lib/wiremock_mapper.rb, line 25
def delete_mapping(mapping_id, url = Configuration.wiremock_url)
  delete_from_wiremock(url, mapping_id)
end
reset_scenarios(url = Configuration.wiremock_url) click to toggle source
# File lib/wiremock_mapper.rb, line 33
def reset_scenarios(url = Configuration.wiremock_url)
  reset_wiremock_scenarios(url)
end

Private Class Methods

clear_wiremock_mappings(url) click to toggle source
# File lib/wiremock_mapper.rb, line 47
def clear_wiremock_mappings(url)
  uri = URI([url, WIREMOCK_CLEAR_MAPPINGS_PATH].join('/'))
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.port == 443
  request = Net::HTTP::Post.new(uri.path)
  http.request(request)
end
deep_clone(object) click to toggle source
# File lib/wiremock_mapper.rb, line 43
def deep_clone(object)
  Marshal.load(Marshal.dump(object))
end
delete_from_wiremock(url, mapping_id) click to toggle source
# File lib/wiremock_mapper.rb, line 55
def delete_from_wiremock(url, mapping_id)
  uri = URI([url, WIREMOCK_MAPPINGS_PATH, mapping_id].join('/'))
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.port == 443
  request = Net::HTTP::Delete.new(uri.path)
  http.request(request)
end
reset_wiremock_scenarios(url) click to toggle source
# File lib/wiremock_mapper.rb, line 72
def reset_wiremock_scenarios(url)
  uri = URI([url, WIREMOCK_RESET_SCENARIOS_PATH].join('/'))
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.port == 443
  request = Net::HTTP::Post.new(uri.path)
  http.request(request)
end
send_to_wiremock(url, body) click to toggle source
# File lib/wiremock_mapper.rb, line 63
def send_to_wiremock(url, body)
  uri = URI([url, WIREMOCK_MAPPINGS_PATH].join('/'))
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.port == 443
  request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
  request.body = body.to_json
  http.request(request)
end