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