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