class Test::Unit::Fixture::Fixture

Attributes

cleanup[R]
setup[R]
teardown[R]

Public Class Methods

new(test_case) click to toggle source
# File lib/test/unit/fixture.rb, line 25
def initialize(test_case)
  @test_case = test_case
  @setup = HookPoint.new(@test_case, :setup, :after => :append)
  @cleanup = HookPoint.new(@test_case, :cleanup, :before => :prepend)
  @teardown = HookPoint.new(@test_case, :teardown, :before => :prepend)
  @cached_before_callbacks = {}
  @cached_after_callbacks = {}
end

Public Instance Methods

[](type) click to toggle source
# File lib/test/unit/fixture.rb, line 34
def [](type)
  case type
  when :setup
    @setup
  when :cleanup
    @cleanup
  when :teardown
    @teardown
  end
end
after_callbacks(type) click to toggle source
# File lib/test/unit/fixture.rb, line 49
def after_callbacks(type)
  @cached_after_callbacks[type] ||= collect_after_callbacks(type)
end
before_callbacks(type) click to toggle source
# File lib/test/unit/fixture.rb, line 45
def before_callbacks(type)
  @cached_before_callbacks[type] ||= collect_before_callbacks(type)
end

Private Instance Methods

collect_after_callbacks(type) click to toggle source
# File lib/test/unit/fixture.rb, line 69
def collect_after_callbacks(type)
  prepend_callbacks = []
  append_callbacks = []
  target_test_cases.each do |ancestor|
    prepend_callbacks << ancestor.fixture[type].after_prepend_callbacks
    append_callbacks << ancestor.fixture[type].after_append_callbacks
  end

  merge_callbacks(prepend_callbacks, append_callbacks)
end
collect_before_callbacks(type) click to toggle source
# File lib/test/unit/fixture.rb, line 58
def collect_before_callbacks(type)
  prepend_callbacks = []
  append_callbacks = []
  target_test_cases.each do |ancestor|
    prepend_callbacks << ancestor.fixture[type].before_prepend_callbacks
    append_callbacks << ancestor.fixture[type].before_append_callbacks
  end

  merge_callbacks(prepend_callbacks, append_callbacks)
end
collect_target_test_cases() click to toggle source
# File lib/test/unit/fixture.rb, line 80
def collect_target_test_cases
  ancestors = @test_case.ancestors
  base_index = ancestors.index(::Test::Unit::Fixture)
  interested_ancestors = ancestors[0, base_index].find_all do |ancestor|
    ancestor.is_a?(Class)
  end
  interested_ancestors.reverse
end
merge_callbacks(prepend_callbacks, append_callbacks) click to toggle source
# File lib/test/unit/fixture.rb, line 89
def merge_callbacks(prepend_callbacks, append_callbacks)
  all_callbacks = []
  prepend_callbacks.reverse_each do |callbacks|
    all_callbacks.concat(callbacks)
  end
  append_callbacks.each do |callbacks|
    all_callbacks.concat(callbacks)
  end
  all_callbacks
end
target_test_cases() click to toggle source
# File lib/test/unit/fixture.rb, line 54
def target_test_cases
  @cached_target_test_cases ||= collect_target_test_cases
end