class TestCentricity::ExceptionQueue

Public Class Methods

enqueue_assert_equal(expected, actual, error_message) click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 7
def self.enqueue_assert_equal(expected, actual, error_message)
  unless expected == actual
    enqueue("#{error_message} to be\n  '#{expected}'\nbut found\n  '#{actual}'")
    enqueue_screenshot
  end
end
enqueue_assert_not_equal(expected, actual, error_message) click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 14
def self.enqueue_assert_not_equal(expected, actual, error_message)
  unless expected != actual
    enqueue("#{error_message} to not be equal to '#{expected}'")
    enqueue_screenshot
  end
end
enqueue_comparison(state, actual, error_msg) click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 31
def self.enqueue_comparison(state, actual, error_msg)
  if state.is_a?(Hash) && state.length == 1
    state.each do |key, value|
      case key
      when :lt, :less_than
        enqueue_exception("#{error_msg} be less than #{value} but found '#{actual}'") unless actual < value
      when :lt_eq, :less_than_or_equal
        enqueue_exception("#{error_msg} be less than or equal to #{value} but found '#{actual}'") unless actual <= value
      when :gt, :greater_than
        enqueue_exception("#{error_msg} be greater than #{value} but found '#{actual}'") unless actual > value
      when :gt_eq, :greater_than_or_equal
        enqueue_exception("#{error_msg} be greater than or equal to  #{value} but found '#{actual}'") unless actual >= value
      when :starts_with
        enqueue_exception("#{error_msg} start with '#{value}' but found '#{actual}'") unless actual.start_with?(value)
      when :ends_with
        enqueue_exception("#{error_msg} end with '#{value}' but found '#{actual}'") unless actual.end_with?(value)
      when :contains
        enqueue_exception("#{error_msg} contain '#{value}' but found '#{actual}'") unless actual.include?(value)
      when :not_contains, :does_not_contain
        enqueue_exception("#{error_msg} not contain '#{value}' but found '#{actual}'") if actual.include?(value)
      when :not_equal
        enqueue_exception("#{error_msg} not equal '#{value}' but found '#{actual}'") if actual == value
      when :like, :is_like
        actual_like = actual.delete("\n")
        actual_like = actual_like.delete("\r")
        actual_like = actual_like.delete("\t")
        actual_like = actual_like.delete(' ')
        actual_like = actual_like.downcase
        expected    = value.delete("\n")
        expected    = expected.delete("\r")
        expected    = expected.delete("\t")
        expected    = expected.delete(' ')
        expected    = expected.downcase
        enqueue_exception("#{error_msg} be like '#{value}' but found '#{actual}'") unless actual_like.include?(expected)
      when :translate
        expected = I18n.t(value)
        enqueue_assert_equal(expected, actual, error_msg)
      when :translate_upcase
        expected = I18n.t(value).upcase
        enqueue_assert_equal(expected, actual, error_msg)
      when :translate_downcase
        expected = I18n.t(value).downcase
        enqueue_assert_equal(expected, actual, error_msg)
      when :translate_capitalize
        expected = I18n.t(value).capitalize
        enqueue_assert_equal(expected, actual, error_msg)
      end
    end
  else
    enqueue_assert_equal(state, actual, error_msg)
  end
end
enqueue_exception(error_message) click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 21
def self.enqueue_exception(error_message)
  enqueue(error_message)
end
post_exceptions() click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 25
def self.post_exceptions
  raise @error_queue unless @error_queue.nil?
ensure
  @error_queue = nil
end

Private Class Methods

enqueue(message) click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 86
def self.enqueue(message)
  @error_queue = "#{@error_queue}#{message}\n\n"
end
enqueue_screenshot() click to toggle source
# File lib/testcentricity/exception_queue_helper.rb, line 90
def self.enqueue_screenshot
  timestamp = Time.now.strftime('%Y%m%d%H%M%S')
  filename = "Screenshot-#{timestamp}"
  path = File.join Dir.pwd, 'reports/screenshots/', filename
  if Environ.driver == :appium
    AppiumConnect.take_screenshot("#{path}.png")
  else
    Capybara.save_screenshot "#{path}.png"
  end
  puts "Screenshot saved at #{path}.png"
  screen_shot = { :path => path, :filename => filename }
  Environ.save_screen_shot(screen_shot)
end