class ApiTester::Request
Class for defining requests in a contract
Attributes
definition[RW]
fields[RW]
header_fields[RW]
query_params[RW]
Public Class Methods
new()
click to toggle source
# File lib/api-tester/definition/request.rb, line 13 def initialize self.fields = [] self.header_fields = [] self.query_params = [] end
Public Instance Methods
add_field(new_field)
click to toggle source
# File lib/api-tester/definition/request.rb, line 19 def add_field(new_field) fields << new_field self end
add_header_field(new_header)
click to toggle source
# File lib/api-tester/definition/request.rb, line 33 def add_header_field(new_header) header_fields << new_header self end
add_query_param(new_query_param)
click to toggle source
# File lib/api-tester/definition/request.rb, line 24 def add_query_param(new_query_param) query_params << new_query_param self end
altered_payload(field_name:, value:)
click to toggle source
# File lib/api-tester/definition/request.rb, line 82 def altered_payload(field_name:, value:) body = payload body[field_name] = value body end
altered_payload_with(fields)
click to toggle source
# File lib/api-tester/definition/request.rb, line 88 def altered_payload_with(fields) body = payload fields.each do |field| body[field[:name]] = field[:value] end body end
cases()
click to toggle source
# File lib/api-tester/definition/request.rb, line 68 def cases boundary_cases = [] fields.each do |field| field.negative_boundary_values.each do |value| bcase = BoundaryCase.new description: "Setting #{field.name} to #{value}", payload: altered_payload(field_name: field.name, value: value), headers: default_headers boundary_cases.push bcase end end boundary_cases end
default_headers()
click to toggle source
# File lib/api-tester/definition/request.rb, line 52 def default_headers if header_fields != [] headers else { content_type: :json, accept: :json } end end
default_payload()
click to toggle source
# File lib/api-tester/definition/request.rb, line 48 def default_payload payload end
default_query()
click to toggle source
# File lib/api-tester/definition/request.rb, line 29 def default_query query_params.map { |param| "#{param.name}=#{param.default_value}" }.join('&') end
headers()
click to toggle source
# File lib/api-tester/definition/request.rb, line 60 def headers header_response = {} header_fields.each do |header_field| header_response[header_field.name] = header_field.default_value end header_response end
payload()
click to toggle source
# File lib/api-tester/definition/request.rb, line 38 def payload response = {} fields.each do |field| if field.required == true response[field.name] = field.default_value end end response end