Module: Committee::Test::Methods
- Defined in:
- lib/committee/test/methods.rb
Instance Method Summary collapse
- #assert_request_schema_confirm ⇒ Object
- #assert_response_schema_confirm ⇒ Object
- #assert_schema_conform ⇒ Object
- #committee_options ⇒ Object
- #old_behavior ⇒ Object
- #request_object ⇒ Object
- #response_data ⇒ Object
- #router ⇒ Object
- #schema ⇒ Object
- #schema_validator ⇒ Object
- #validate_response?(status) ⇒ Boolean
Instance Method Details
#assert_request_schema_confirm ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/committee/test/methods.rb', line 11 def assert_request_schema_confirm unless schema_validator.link_exist? request = "`#{request_object.request_method} #{request_object.path_info}` undefined in schema." raise Committee::InvalidRequest.new(request) end schema_validator.request_validate(request_object) end |
#assert_response_schema_confirm ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/committee/test/methods.rb', line 20 def assert_response_schema_confirm unless schema_validator.link_exist? response = "`#{request_object.request_method} #{request_object.path_info}` undefined in schema." raise Committee::InvalidResponse.new(response) end status, headers, body = response_data schema_validator.response_validate(status, headers, [body], true) if validate_response?(status) end |
#assert_schema_conform ⇒ Object
6 7 8 9 |
# File 'lib/committee/test/methods.rb', line 6 def assert_schema_conform assert_request_schema_confirm unless old_behavior assert_response_schema_confirm end |
#committee_options ⇒ Object
30 31 32 |
# File 'lib/committee/test/methods.rb', line 30 def raise "please set options" end |
#old_behavior ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/committee/test/methods.rb', line 58 def old_behavior old_assert_behavior = .fetch(:old_assert_behavior, nil) if old_assert_behavior.nil? warn <<-MSG [DEPRECATION] now assert_schema_conform check response schema only. but we will change check request and response in future major version. so if you want to conform response only, please use assert_response_schema_confirm, or you can suppress this message and keep old behavior by setting old_assert_behavior=true. MSG old_assert_behavior = true end old_assert_behavior end |
#request_object ⇒ Object
34 35 36 |
# File 'lib/committee/test/methods.rb', line 34 def request_object raise "please set object like 'last_request'" end |
#response_data ⇒ Object
38 39 40 |
# File 'lib/committee/test/methods.rb', line 38 def response_data raise "please set response data like 'last_response.status, last_response.headers, last_response.body'" end |
#router ⇒ Object
50 51 52 |
# File 'lib/committee/test/methods.rb', line 50 def router @router ||= schema.build_router() end |
#schema ⇒ Object
46 47 48 |
# File 'lib/committee/test/methods.rb', line 46 def schema @schema ||= Committee::Middleware::Base.get_schema() end |
#schema_validator ⇒ Object
54 55 56 |
# File 'lib/committee/test/methods.rb', line 54 def schema_validator @schema_validator ||= router.build_schema_validator(request_object) end |
#validate_response?(status) ⇒ Boolean
42 43 44 |
# File 'lib/committee/test/methods.rb', line 42 def validate_response?(status) Committee::Middleware::ResponseValidation.validate?(status, .fetch(:validate_success_only, false)) end |