class ApiTester::Endpoint
Class for defining and interacting with endpoints in a contract
Attributes
bad_request_response[RW]
methods[RW]
name[RW]
not_allowed_response[RW]
not_found_response[RW]
path_params[RW]
relative_url[RW]
test_helper[RW]
Public Class Methods
new(name:, relative_url:)
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 21 def initialize(name:, relative_url:) self.relative_url = relative_url self.name = name self.methods = [] self.path_params = [] self.test_helper = ApiTester::TestHelper.new self.bad_request_response = ApiTester::Response.new status_code: 400 self.not_allowed_response = ApiTester::Response.new status_code: 415 self.not_found_response = ApiTester::Response.new status_code: 404 end
Public Instance Methods
add_method(verb:, response:, request: Request.new)
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 68 def add_method(verb:, response:, request: Request.new) methods << ApiTester::Method.new(verb: verb, response: response, request: request) self end
add_path_param(param)
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 75 def add_path_param(param) path_params << param self end
call(base_url:, method:, query: '', payload: {}, headers: {})
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 53 def call(base_url:, method:, query: '', payload: {}, headers: {}) test_helper.before url = query ? "#{base_url}#{self.url}?#{query}" : "#{base_url}#{self.url}" begin response = RestClient::Request.execute(method: method.verb, url: url, payload: payload.to_json, headers: headers) rescue RestClient::ExceptionWithResponse => e response = e.response end test_helper.after response end
default_call(base_url)
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 40 def default_call(base_url) test_helper.before method_defaults = methods[0].default_request method_defaults[:url] = "#{base_url}#{url}" begin response = RestClient::Request.execute(method_defaults) rescue RestClient::ExceptionWithResponse => e response = e.response end test_helper.after response end
url()
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 32 def url temp_url = relative_url path_params.each do |param| temp_url.sub! "{#{param}}", test_helper.retrieve_param(param) end temp_url end
verbs()
click to toggle source
# File lib/api-tester/definition/endpoint.rb, line 80 def verbs methods.map(&:verb) end