class ApiTester::MethodCaseTest
Class for testing methods
Attributes
expected_response[RW]
module_name[RW]
payload[RW]
reports[RW]
response[RW]
url[RW]
Public Class Methods
new(response:, payload:, expected_response:, url:, verb:, module_name:)
click to toggle source
# File lib/api-tester/method_case_test.rb, line 15 def initialize(response:, payload:, expected_response:, url:, verb:, module_name:) self.payload = payload self.response = response self.expected_response = expected_response self.reports = [] self.url = "#{verb} #{url}" self.module_name = module_name end
Public Instance Methods
check()
click to toggle source
# File lib/api-tester/method_case_test.rb, line 54 def check if check_response_code evaluator = ApiTester::ResponseEvaluator.new actual_body: json_parse(response.body), expected_fields: expected_response evaluator.missing_fields.map { |field| missing_field_report(field) } evaluator.extra_fields.map { |field| extra_field_report(field) } increment_fields evaluator.seen_fields end reports end
check_response_code()
click to toggle source
# File lib/api-tester/method_case_test.rb, line 65 def check_response_code if response.code != expected_response.code response_code_report return false end true end
extra_field_report(field)
click to toggle source
# File lib/api-tester/method_case_test.rb, line 44 def extra_field_report(field) report = Report.new description: "#{module_name} - Found extra field #{field}", url: url, request: payload, expected_response: expected_response, actual_response: response reports << report nil end
increment_fields(seen_fields)
click to toggle source
# File lib/api-tester/method_case_test.rb, line 73 def increment_fields(seen_fields) seen_fields.each(&:seen) end
json_parse(body)
click to toggle source
# File lib/api-tester/method_case_test.rb, line 77 def json_parse(body) JSON.parse!(body) rescue JSON::ParserError body end
missing_field_report(field)
click to toggle source
# File lib/api-tester/method_case_test.rb, line 34 def missing_field_report(field) report = Report.new description: "#{module_name} - Missing field #{field}", url: url, request: payload, expected_response: expected_response, actual_response: response reports << report nil end
response_code_report()
click to toggle source
# File lib/api-tester/method_case_test.rb, line 24 def response_code_report report = StatusCodeReport.new description: "#{module_name} - Incorrect response code", url: url, request: payload, expected_status_code: expected_response.code, actual_status_code: "#{response.code} : #{response.body}" reports << report nil end