1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
require 'cucumber/core/ast/describes_itself'
require 'cucumber/core/ast/names'
require 'cucumber/core/ast/empty_background'
require 'cucumber/core/ast/location'
module Cucumber
module Core
module Ast
class Scenario
include Names
include HasLocation
include DescribesItself
attr_reader :location, :background,
:comments, :tags, :keyword,
:description, :raw_steps
private :raw_steps
def initialize(location, comments, tags, keyword, name, description, steps)
@location = location
@comments = comments
@tags = tags
@keyword = keyword
@name = name
@description = description
@raw_steps = steps
end
def children
raw_steps
end
def to_sexp
sexp = [:scenario, line, keyword, name]
comment = comment.to_sexp
sexp += [comment] if comment
tags = tags.to_sexp
sexp += tags if tags.any?
sexp += step_invocations.to_sexp if step_invocations.any?
sexp
end
private
def description_for_visitors
:scenario
end
end
end
end
end
|