Class: Screenplay::TestActor

Inherits:
Actor
  • Object
show all
Defined in:
lib/screenplay/actors/test.rb

Instance Attribute Summary

Attributes inherited from Actor

#name

Instance Method Summary collapse

Methods inherited from Actor

#configure, descendants, #initialize

Constructor Details

This class inherits a constructor from Screenplay::Actor

Instance Method Details

#play(params, input) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/screenplay/actors/test.rb', line 31

def play(params, input)
  params.each { | key, values |
    values.each { | test, b |
      expects = !test.to_s.start_with?('not-')
      test = test.to_s[4..-1] unless expects
      method = "test_#{test}".to_sym
      raise UnknownTestException.new(test) if !respond_to?(method)
      a = input.get_value_from_path(key)
      raise TestFailedException.new(test, a, b) unless (public_send(method, a, b) == expects)
    }
  }
  return input
end

#test_eq(a, b) ⇒ Object



53
54
55
# File 'lib/screenplay/actors/test.rb', line 53

def test_eq(a, b)
  a === b
end

#test_gt(a, b) ⇒ Object



61
62
63
# File 'lib/screenplay/actors/test.rb', line 61

def test_gt(a, b)
  a > b
end

#test_gte(a, b) ⇒ Object



57
58
59
# File 'lib/screenplay/actors/test.rb', line 57

def test_gte(a, b)
  a >= b
end

#test_in(a, b) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/screenplay/actors/test.rb', line 65

def test_in(a, b)
  if (b.is_a?(String))
    b.index(a) != nil
  elsif (b.is_a?(Array))
    b.to_a.include?(a)
  elsif (b.is_a?(Hash))
    b.include?(a.to_sym)
  else
    raise UnsupportedTypeTestException.new(:in, b)
  end
end

#test_lt(a, b) ⇒ Object



45
46
47
# File 'lib/screenplay/actors/test.rb', line 45

def test_lt(a, b)
  a < b
end

#test_lte(a, b) ⇒ Object



49
50
51
# File 'lib/screenplay/actors/test.rb', line 49

def test_lte(a, b)
  a <= b
end

#test_regexp(a, b) ⇒ Object



85
86
87
88
89
90
# File 'lib/screenplay/actors/test.rb', line 85

def test_regexp(a, b)
  b = Regexp.new(b.to_s) if b.is_a?(String) || b.is_a?(Symbol)
  raise UnsupportedTypeTestException.new(:regexp, b) unless b.is_a?(Regexp)
  raise UnsupportedTypeTestException.new(:regexp, a) unless a.is_a?(String)
  !a.match(b).nil?
end

#test_size(a, b) ⇒ Object



77
78
79
80
81
82
83
# File 'lib/screenplay/actors/test.rb', line 77

def test_size(a, b)
  if (a.respond_to?(:size))
    a.size == b
  else
    raise UnsupportedTypeTestException.new(:size, a)
  end
end