class Object
Public Instance Methods
generate_command(workflow_path, config)
click to toggle source
# File lib/commander.rb, line 65 def generate_command(workflow_path, config) template = File.read(File.join(File.dirname(File.expand_path(__FILE__)), 'templates/command.erb')) renderer = ERB.new(template) puts "Scenario: #{config.name}, test cases: #{config.cases.size}\n".cyan config.cases.each do |caze| test_case = TestCase.new({ :name => caze.name, :url => "#{config.baseurl}/#{caze.path}", :headers => caze.headers, :type => caze.type, :data_path => "#{workflow_path}/#{caze.data ? caze.data.strip : ''}", :success => SuccessDefinition.new(caze.success), :debug => caze.debug }) command = renderer.result(test_case.get_binding).gsub("\n", " ").strip test = ExecutableTest.new({ :name => caze.name, :type => caze.type, :url => "#{config.baseurl}/#{caze.path}", :command => command, :success => SuccessDefinition.new(caze.success) }) verify(test) end end
verfiy_xpath(caze, result)
click to toggle source
# File lib/commander.rb, line 18 def verfiy_xpath(caze, result) xmldoc = Document.new(result) nodes = XPath.match(xmldoc, "#{caze.success.content}") if nodes != nil puts "Case: ['#{caze.name}'] passed".green else puts "Case: ['#{caze.name}'] failed\nExpected: #{caze.success.content}\nGot: #{result}".red end puts "#{caze.type} #{caze.url}\n".cyan end
verify(caze)
click to toggle source
# File lib/commander.rb, line 52 def verify(caze) result = `#{caze.command}` case caze.success.type when 'xpath' verfiy_xpath(caze, result) when 'regexp' verify_regexp(caze, result) when 'jsonpath' verify_jsonpath(caze, result) end end
verify_jsonpath(caze, result)
click to toggle source
# File lib/commander.rb, line 41 def verify_jsonpath(caze, result) nodes = JsonPath.on(result, "#{caze.success.content}") if nodes.size != 0 puts "Case: ['#{caze.name}'] passed".green else puts "Case: ['#{caze.name}'] failed\nExpected: #{nodes}\nGot: #{result}".red end puts "#{caze.type} #{caze.url}\n".cyan end
verify_regexp(caze, result)
click to toggle source
# File lib/commander.rb, line 30 def verify_regexp(caze, result) x = result.match(/#{caze.success.content}/) if x != nil puts "Case: ['#{caze.name}'] passed".green else puts "Case: ['#{caze.name}'] failed\nExpected: #{caze.success.content}\nGot: #{result}".red end puts "#{caze.type} #{caze.url}\n".cyan end