class Manacle::Example

Attributes

case[R]
description[R]
exception[R]
execution_result[R]
file_path[R]
full_description[R]
last_response[R]
metadata[R]
params[R]
run_time[R]
status[R]

Public Class Methods

new(example, last_response) click to toggle source
# File lib/manacle/formatter.rb, line 9
  def initialize(example, last_response)
    @description = example.description
    @full_description = build_description(example)
    @execution_result = example.execution_result
#    @run_time = RSpec::Core::Formatters::Helpers.format_duration(@execution_result.run_time)
    @run_time = execution_result.run_time
    @status = @execution_result.status.to_s
    @metadata = example.metadata
    @exception = example.exception
    @file_path = @metadata[:file_path]
    @last_response = last_response if ['passed', 'failed'].include?(@status)
    # @last_response = last_response
    @case = @metadata[:case]
    @params = @metadata[:params]
    @params ||= build_params(example)
  end

Public Instance Methods

build_description(example) click to toggle source
# File lib/manacle/formatter.rb, line 44
def build_description(example)
  full_description = [example.description, example.example_group.description]
  parent = example.example_group.parent
  while parent.is_a?(Class)
    full_description << parent.try(:description)
    parent = parent.parent
  end
  full_description.reverse.join('<br/>')
end
build_params(example) click to toggle source
# File lib/manacle/formatter.rb, line 26
def build_params(example)
  return [] if last_response.nil?
  xml = Nokogiri::XML(last_response.request.options[:body])

  ns = {ns: 'http://www.quantiguous.com/services'}
  params = []

  example.example_group.described_class.param_defaults.each do |pv|
    p = pv.keys.first; v = pv.values.first
    if v.nil?
       params << xml.at_xpath("//ns:#{p}", ns).name.to_sym unless xml.at_xpath("//ns:#{p}", ns).nil?
    else
       params << xml.at_xpath("//ns:#{p}", ns).name.to_sym unless xml.at_xpath("//ns:#{p}", ns).try(:text) == v
    end
  end
  params
end
param_value(param) click to toggle source
# File lib/manacle/formatter.rb, line 54
def param_value(param)
  @reqDoc ||= Nokogiri::XML(@last_response.request.options[:body])
  @reqDoc.at_xpath('//ns:' + param.to_s, 'ns' => 'http://www.quantiguous.com/services').try(:text)
end