enkessler/cuke_slicer

View on GitHub
testing/cucumber/step_definitions/action_steps.rb

Summary

Maintainability
A
2 hrs
Test Coverage
When(/^test cases are extracted from "([^"]*)"$/) do |target|
  @output ||= {}
  filters = {}

  filters[:excluded_tags] = @excluded_tag_filters if @excluded_tag_filters
  filters[:included_tags] = @included_tag_filters if @included_tag_filters
  filters[:excluded_paths] = @excluded_path_filters if @excluded_path_filters
  filters[:included_paths] = @included_path_filters if @included_path_filters

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}",
                                                 filters,
                                                 :file_line,
                                                 &@custom_filter)
end

When(/^test cases are extracted from it$/) do
  @output ||= {}
  filters = {}
  target = @targets.first
  @output_type ||= :file_line

  begin
    @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", filters, @output_type)
  rescue ArgumentError => e
    @error_raised = e
  end
end

When(/^test cases are extracted from them$/) do
  @output ||= {}
  filters = {}

  @targets.each do |target|
    @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", filters, :file_line)
  end
end

When(/^test cases are extracted from "([^"]*)" using the following exclusive tag filters:$/) do |target, filters|
  @output ||= {}
  options = {}

  options[:excluded_tags] = filters.raw.flatten.collect { |filter| process_filter(filter) }

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
end

When(/^test cases are extracted from "([^"]*)" using the following inclusive tag filters:$/) do |target, filters|
  @output ||= {}
  options = {}

  options[:included_tags] = filters.raw.flatten.collect { |filter| process_filter(filter) }

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
end

When(/^test cases are extracted from "([^"]*)" using the following inclusive path filters:$/) do |target, filters|
  @output ||= {}
  options = {}

  options[:included_paths] = filters.raw.flatten.collect { |filter| process_filter(filter) }

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
end

When(/^test cases are extracted from "([^"]*)" using the following exclusive path filters:$/) do |target, filters|
  @output ||= {}
  options = {}

  options[:excluded_paths] = filters.raw.flatten.collect { |filter| process_filter(filter) }

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
end

When(/^test cases are extracted from "([^"]*)" using the following custom filter:$/) do |target, filter_block|
  @output ||= {}

  custom_filter = eval("Proc.new #{filter_block}")

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", :file_line, &custom_filter)
end

When(/^test cases are extracted from "([^"]*)" using "([^"]*)"$/) do |target, included_tag_filters|
  @output ||= {}
  options = {}

  options[:included_tags] = eval("[#{included_tag_filters}]")

  @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
end

When(/^it tries to extract test cases using an unknown filter type$/) do
  begin
    @slicer.slice(@default_file_directory, { unknown_filter: 'foo' }, :file_line)
  rescue ArgumentError => e
    @error_raised = e
  end
end

When(/^it tries to extract test cases using an invalid filter$/) do
  begin
    @slicer.slice(@default_file_directory, { included_tags: 7 }, :file_line)
  rescue ArgumentError => e
    @error_raised = e
  end
end