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