Class: Cucumber::Core::Test::Case
- Inherits:
-
Object
- Object
- Cucumber::Core::Test::Case
show all
- Defined in:
- lib/cucumber/core/test/case.rb
Defined Under Namespace
Classes: NameBuilder, TagCollector
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(test_steps, source, around_hooks = []) ⇒ Case
Returns a new instance of Case.
11
12
13
14
15
16
|
# File 'lib/cucumber/core/test/case.rb', line 11
def initialize(test_steps, source, around_hooks = [])
raise ArgumentError.new("test_steps should be an Array but is a #{test_steps.class}") unless test_steps.kind_of?(Array)
@test_steps = test_steps
@source = source
@around_hooks = around_hooks
end
|
Instance Attribute Details
#around_hooks ⇒ Object
Returns the value of attribute around_hooks.
9
10
11
|
# File 'lib/cucumber/core/test/case.rb', line 9
def around_hooks
@around_hooks
end
|
#source ⇒ Object
Returns the value of attribute source.
9
10
11
|
# File 'lib/cucumber/core/test/case.rb', line 9
def source
@source
end
|
#test_steps ⇒ Object
Returns the value of attribute test_steps.
9
10
11
|
# File 'lib/cucumber/core/test/case.rb', line 9
def test_steps
@test_steps
end
|
Instance Method Details
#all_locations ⇒ Object
86
87
88
|
# File 'lib/cucumber/core/test/case.rb', line 86
def all_locations
@all_locations ||= Ast::Location.merge(all_source.map(&:all_locations).flatten)
end
|
#all_source ⇒ Object
90
91
92
|
# File 'lib/cucumber/core/test/case.rb', line 90
def all_source
@all_source ||= (source + test_steps.map(&:source)).flatten.uniq
end
|
#describe_source_to(visitor, *args) ⇒ Object
33
34
35
36
37
38
|
# File 'lib/cucumber/core/test/case.rb', line 33
def describe_source_to(visitor, *args)
source.reverse.each do |node|
node.describe_to(visitor, *args)
end
self
end
|
#describe_to(visitor, *args) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/cucumber/core/test/case.rb', line 22
def describe_to(visitor, *args)
visitor.test_case(self, *args) do |child_visitor|
compose_around_hooks(child_visitor, *args) do
test_steps.each do |test_step|
test_step.describe_to(child_visitor, *args)
end
end
end
self
end
|
#feature ⇒ Object
98
99
100
|
# File 'lib/cucumber/core/test/case.rb', line 98
def feature
source.first
end
|
#inspect ⇒ Object
94
95
96
|
# File 'lib/cucumber/core/test/case.rb', line 94
def inspect
"#<#{self.class}: #{location}>"
end
|
#keyword ⇒ Object
52
53
54
|
# File 'lib/cucumber/core/test/case.rb', line 52
def keyword
@keyword ||= NameBuilder.new(self).keyword
end
|
#language ⇒ Object
68
69
70
|
# File 'lib/cucumber/core/test/case.rb', line 68
def language
feature.language
end
|
#location ⇒ Object
72
73
74
|
# File 'lib/cucumber/core/test/case.rb', line 72
def location
source.last.location
end
|
#match_locations?(queried_locations) ⇒ Boolean
76
77
78
79
80
81
82
83
84
|
# File 'lib/cucumber/core/test/case.rb', line 76
def match_locations?(queried_locations)
queried_locations.any? { |queried_location|
all_source.any? { |node|
node.all_locations.any? { |location|
queried_location.match? location
}
}
}
end
|
#match_name?(name_regexp) ⇒ Boolean
64
65
66
|
# File 'lib/cucumber/core/test/case.rb', line 64
def match_name?(name_regexp)
source.any? { |node| node.respond_to?(:name) && node.name =~ name_regexp }
end
|
#name ⇒ Object
48
49
50
|
# File 'lib/cucumber/core/test/case.rb', line 48
def name
@name ||= NameBuilder.new(self).result
end
|
#step_count ⇒ Object
18
19
20
|
# File 'lib/cucumber/core/test/case.rb', line 18
def step_count
test_steps.count
end
|
56
57
58
|
# File 'lib/cucumber/core/test/case.rb', line 56
def tags
@tags ||= TagCollector.new(self).result
end
|
#with_around_hooks(around_hooks) ⇒ Object
44
45
46
|
# File 'lib/cucumber/core/test/case.rb', line 44
def with_around_hooks(around_hooks)
self.class.new(test_steps, source, around_hooks)
end
|
#with_steps(test_steps) ⇒ Object
40
41
42
|
# File 'lib/cucumber/core/test/case.rb', line 40
def with_steps(test_steps)
self.class.new(test_steps, source, around_hooks)
end
|