Class: TestCentricity::ExceptionQueue

Inherits:
Object
  • Object
show all
Includes:
Capybara::DSL
Defined in:
lib/testcentricity/exception_queue_helper.rb

Class Method Summary collapse

Class Method Details

.enqueue_assert_equal(expected, actual, error_message) ⇒ Object



7
8
9
10
11
12
# 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) ⇒ Object



14
15
16
17
18
19
# 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) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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)
      end
    end
  else
    enqueue_assert_equal(state, actual, error_msg)
  end
end

.enqueue_exception(error_message) ⇒ Object



21
22
23
# File 'lib/testcentricity/exception_queue_helper.rb', line 21

def self.enqueue_exception(error_message)
  enqueue(error_message)
end

.post_exceptionsObject



25
26
27
28
29
# 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