module Mocha::Integration::TestUnit

Public Class Methods

activate() click to toggle source
# File lib/mocha/integration/test_unit.rb, line 18
def self.activate
  return false unless Detection::TestUnit.testcase
  test_unit_version = Gem::Version.new(Detection::TestUnit.version)
  ruby_version = Gem::Version.new(RUBY_VERSION.dup)

  Debug.puts "Detected Ruby version: #{ruby_version}"
  Debug.puts "Detected Test::Unit version: #{test_unit_version}"

  integration_module = [
    TestUnit::Adapter,
    TestUnit::GemVersion230To250,
    TestUnit::GemVersion203To220,
    TestUnit::GemVersion201To202,
    TestUnit::GemVersion200,
    TestUnit::RubyVersion186AndAbove,
    TestUnit::Nothing
  ].detect { |m| m.applicable_to?(test_unit_version, ruby_version) }

  unless ::Test::Unit::TestCase < integration_module
    unless integration_module == TestUnit::Adapter
      Deprecation.warning(
        'Versions of test-unit earlier than v2.5.1 will not be supported in future versions of Mocha.'
      )
    end
    Debug.puts "Applying #{integration_module.description}"
    ::Test::Unit::TestCase.send(:include, integration_module)
  end
  true
end