class FakeService::Server

Public Class Methods

define_action!(expected_request, expected_response) click to toggle source

define action.

# File lib/fake_service/server.rb, line 26
def self.define_action!(expected_request, expected_response)
  action = expected_request["method"].downcase
  url = expected_request["full_path"]
  send(action, url, provides: :json) do
    pass unless right_header?(expected_request["headers"], request.env)
    pass unless equal_json_bodies?(expected_request["body"], request.body.read)
    headers expected_response["headers"]
    status expected_response["code"]
    expected_response["body"]
  end
end

Public Instance Methods

equal_json_bodies?(expected_body, body) click to toggle source

Checks for bodies equality. json bodies keys can have different orders.

# File lib/fake_service/server.rb, line 14
def equal_json_bodies?(expected_body, body)
  JSON.parse(expected_body) == JSON.parse(body)
end
right_header?(expected, actual) click to toggle source

Checks for request comes with right header.

# File lib/fake_service/server.rb, line 19
def right_header?(expected, actual)
  expected.inject(true) do |memo, (k, v)|
    memo && v == actual[k]
  end
end