class TestCaseGenerator::DSLContext
Attributes
children[R]
class_name[R]
labels[R]
Public Class Methods
new()
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 10 def initialize @patterns = [] @before = [] @after = [] @children = [] @labels = [] @class_name = nil end
Public Instance Methods
<<(events)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 19 def <<(events) if events.is_a?(String) || events.is_a?(Symbol) @patterns << [events] @labels << events unless @labels.include? events else @patterns << events events.each do |label| @labels << label unless @labels.include? label end end end
add_async_events(src_items, options={})
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 157 def add_async_events(src_items, options={}) out_items = [] src_items.each do |pattern1| idx_from = options[:from].nil? ? nil : pattern1.find_index{|item| item==options[:from]} if idx_from.nil? out_items << pattern1 next end pattern2 = pattern1[idx_from + 1 ... pattern1.size] idx_to = options[:to].nil? ? nil : pattern2.find_index{|item| item==options[:to]} tmp_items = idx_to.nil? ? [pattern2] : [pattern2[0 ... idx_to]] Utils.para! tmp_items, options[:items] out_items.concat tmp_items.map{ |ptn| pattern1[0 .. idx_from] + ptn + (idx_to.nil? ? [] : pattern2[idx_to ... pattern2.size]) } end out_items.uniq end
add_async_events!(src_items, options={})
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 179 def add_async_events!(src_items, options={}) tmp_items = add_async_events(src_items, options) src_items.clear src_items.concat tmp_items src_items end
add_patterns(patterns)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 187 def add_patterns(patterns) @patterns.concat patterns patterns.each do |pattern| pattern.each do |label| @labels << label unless @labels.include? label end end end
after() { |after| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 39 def after yield @after end
before() { |before| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 35 def before yield @before end
concat(&block)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 57 def concat(&block) child_context = DSLContext.new child_context.instance_eval &block first = true tmp = [] child_context.children.each do |ctx| tmp2 = [] ctx.raw_each do |ptn| if first tmp2 << ptn else tmp.each do |x| tmp2 << x + ptn end end end tmp = tmp2 first = false end tmp.each do |x| @patterns << x x.each do |label| @labels << label unless @labels.include? label end end end
def_labels() { |labels| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 31 def def_labels yield @labels end
def_state_machine(options={}, &block)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 139 def def_state_machine(options={}, &block) ctx = StateMachineContext.new(options) ctx.instance_eval &block if block_given? ctx end
each() { |map { |p| make_method_name p| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 205 def each raw_each do |raw_ptn| yield raw_ptn.map { |p| # p.to_s.split('_').inject([]) { |buffer, e| # buffer << (buffer.empty? ? e : e.capitalize) # }.join TestCaseGenerator::Utils.make_method_name p } end end
para(*args)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 135 def para(*args) Utils.para *args end
parallel(&block)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 91 def parallel(&block) child_context = DSLContext.new child_context.instance_eval &block first = true tmp = [] child_context.children.each do |ctx| tmp2 = [] ctx.raw_each do |ptn| if first tmp2 << ptn else tmp.each do |x| (0..x.length + ptn.length - 1).to_a.combination(x.length) do |index_arr| x_index = 0 ptn_index = 0 tmp2 << (0..x.length + ptn.length - 1).map do |i| if index_arr.include?(i) ret = x[x_index] x_index += 1 else ret = ptn[ptn_index] ptn_index += 1 end ret end end end end end tmp = tmp2 first = false end tmp.each do |x| @patterns << x x.each do |label| @labels << label unless @labels.include? label end end end
pattern() { |child_context| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 43 def pattern child_context = DSLContext.new yield child_context @children << child_context child_context.raw_each do |ptn| @patterns << ptn ptn.each do |label| @labels << label unless @labels.include? label end end end
Also aliased as: choice
raw_each() { |before| ... }
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 201 def raw_each @patterns.each { |ptn| yield @before + ptn + @after } end
seq(*args)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 87 def seq(*args) Utils.concat *args end
set_class_name(class_name)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 197 def set_class_name(class_name) @class_name = class_name end
state_machine(options={}, &block)
click to toggle source
# File lib/test_case_generator/dsl_context.rb, line 145 def state_machine(options={}, &block) ctx = def_state_machine options, &block ctx.items.each do |x| @patterns << x x.each do |label| @labels << label unless @labels.include? label end end # @patterns.concat ctx.items end