class Barthes::Client::AceJson4
Public Class Methods
new(env)
click to toggle source
Calls superclass method
Barthes::Client::Ace::new
# File lib/barthes/client/ace_json4.rb, line 5 def initialize(env) super(env) @client = AceClient::Json4.new(@options) end
Public Instance Methods
compare(response, expectation)
click to toggle source
# File lib/barthes/client/ace_json4.rb, line 10 def compare(response, expectation) result = nil case expectation['type'] when 'response_code' result = response.code == expectation['value'] {'result' => result, 'returned' => response.code, 'expected' => expectation['value']} when 'jmespath_value' text = jmespath(response, expectation['jmespath']) if expectation['method'].nil? || expectation['method'] == 'eq' result = (text == expectation['value']) elsif expectation['method'] == 'regexp' result = !(text.match Regexp.new(expectation['value'])).nil? elsif expectation['method'] == 'ne' result = (text != expectation['value']) end {'result' => result, 'returned' => text, 'expected' => expectation['value']} when 'jmespath_size' size = jmespath(response, expectation['jmespath']).size if expectation['method'].nil? || expectation['method'] == 'eq' result = (size == expectation['value']) elsif expectation['method'] == 'gt' result = (size > expectation['value']) elsif expectation['method'] == 'gte' result = (size >= expectation['value']) elsif expectation['method'] == 'lt' result = (size < expectation['value']) elsif expectation['method'] == 'lte' result = (size <= expectation['value']) end {'result' => result, 'returned' => size, 'expected' => expectation['value']} else {'result' => true} end end
extract(config, response)
click to toggle source
# File lib/barthes/client/ace_json4.rb, line 45 def extract(config, response) jmespath(response, config["jmespath"]) end
jmespath(response, jmespath)
click to toggle source
# File lib/barthes/client/ace_json4.rb, line 49 def jmespath(response, jmespath) JMESPath.search(jmespath, response.parsed_response) end