Sha256: cc524f80f590161e681fe5f95ab5bde5ff5c08b145b98b787fc58a66179698fe

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

require "test_helper"

class ModuleSnapshotTest < Minitest::Test

  def test_detect_module_method_on_module
    for_all_method_visibilities do |visibility|
      mod = Module.new
      mod.__metaclass__.send(:define_method, :foo) {}
      mod.__metaclass__.send(visibility, :foo)
      assert_method_exists(mod, mod.__metaclass__, :foo, visibility)
    end
  end

  def test_detect_method_on_module_included_as_module_method_on_module
    for_all_method_visibilities do |visibility|
      supermod = Module.new
      supermod.send(:define_method, :foo) {}
      supermod.send(visibility, :foo)
      mod = Module.new do
        extend supermod
      end
      assert_method_exists(mod, supermod, :foo, visibility)
    end
  end

  def test_detect_method_on_module_included_into_module_included_as_module_method_on_module
    for_all_method_visibilities do |visibility|
      superdupermod = Module.new
      superdupermod.send(:define_method, :foo) {}
      superdupermod.send(visibility, :foo)
      supermod = Module.new do
        include superdupermod
      end
      mod = Module.new do
        extend supermod
      end
      assert_method_exists(mod, superdupermod, :foo, visibility)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
introspection-0.0.4 test/module_snapshot_test.rb