Class: ApiTester::MethodCaseTest
- Inherits:
-
Object
- Object
- ApiTester::MethodCaseTest
- Defined in:
- lib/api-tester/method_case_test.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#expected_response ⇒ Object
Returns the value of attribute expected_response.
-
#module_name ⇒ Object
Returns the value of attribute module_name.
-
#payload ⇒ Object
Returns the value of attribute payload.
-
#reports ⇒ Object
Returns the value of attribute reports.
-
#response ⇒ Object
Returns the value of attribute response.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #check ⇒ Object
- #check_response_code ⇒ Object
- #extra_field_report(field) ⇒ Object
- #increment_fields(seen_fields) ⇒ Object
-
#initialize(response, payload, expected_response, url, verb, module_name) ⇒ MethodCaseTest
constructor
A new instance of MethodCaseTest.
- #json_parse(body) ⇒ Object
- #missing_field_report(field) ⇒ Object
- #response_code_report ⇒ Object
Constructor Details
#initialize(response, payload, expected_response, url, verb, module_name) ⇒ MethodCaseTest
Returns a new instance of MethodCaseTest.
12 13 14 15 16 17 18 19 |
# File 'lib/api-tester/method_case_test.rb', line 12 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 |
Instance Attribute Details
#expected_response ⇒ Object
Returns the value of attribute expected_response.
5 6 7 |
# File 'lib/api-tester/method_case_test.rb', line 5 def expected_response @expected_response end |
#module_name ⇒ Object
Returns the value of attribute module_name.
10 11 12 |
# File 'lib/api-tester/method_case_test.rb', line 10 def module_name @module_name end |
#payload ⇒ Object
Returns the value of attribute payload.
6 7 8 |
# File 'lib/api-tester/method_case_test.rb', line 6 def payload @payload end |
#reports ⇒ Object
Returns the value of attribute reports.
8 9 10 |
# File 'lib/api-tester/method_case_test.rb', line 8 def reports @reports end |
#response ⇒ Object
Returns the value of attribute response.
7 8 9 |
# File 'lib/api-tester/method_case_test.rb', line 7 def response @response end |
#url ⇒ Object
Returns the value of attribute url.
9 10 11 |
# File 'lib/api-tester/method_case_test.rb', line 9 def url @url end |
Instance Method Details
#check ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/api-tester/method_case_test.rb', line 39 def check if check_response_code evaluator = ApiTester::ResponseEvaluator.new json_parse(self.response.body), self.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 return self.reports end |
#check_response_code ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/api-tester/method_case_test.rb', line 49 def check_response_code if response.code != expected_response.code response_code_report return false end return true end |
#extra_field_report(field) ⇒ Object
33 34 35 36 37 |
# File 'lib/api-tester/method_case_test.rb', line 33 def extra_field_report field report = Report.new "#{module_name} - Found extra field #{field}", self.url, self.payload, self.expected_response, self.response self.reports << report nil end |
#increment_fields(seen_fields) ⇒ Object
57 58 59 60 61 |
# File 'lib/api-tester/method_case_test.rb', line 57 def increment_fields seen_fields seen_fields.each do |field| field.seen end end |
#json_parse(body) ⇒ Object
63 64 65 66 67 |
# File 'lib/api-tester/method_case_test.rb', line 63 def json_parse body JSON.parse!(body) rescue JSON::ParserError body end |
#missing_field_report(field) ⇒ Object
27 28 29 30 31 |
# File 'lib/api-tester/method_case_test.rb', line 27 def missing_field_report field report = Report.new "#{module_name} - Missing field #{field}", self.url, self.payload, self.expected_response, self.response self.reports << report nil end |
#response_code_report ⇒ Object
21 22 23 24 25 |
# File 'lib/api-tester/method_case_test.rb', line 21 def response_code_report report = StatusCodeReport.new "#{module_name} - Incorrect response code", self.url, self.payload, self.expected_response.code, self.response.code self.reports << report nil end |