Sha256: 7f80e262d6b910d47d98eb17c368b52288daf5e0b4c3320c597b82de5e6744ba

Contents?: true

Size: 1.9 KB

Versions: 10

Compression:

Stored size: 1.9 KB

Contents

require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')

class TestMetaExtension < Test::Unit::TestCase
  module ExtensionClass
    extend MetaExtension

    extension_attr :code, :code2
  end

  module ExtensionClass2
    extend MetaExtension

    extension_attr :code3, :code4
  end


  def test_setup_annotate
    str = "String"
    ExtensionClass.setup(str, :code)
    assert ExtensionClass === str
    assert_equal :code, str.code

    str2 = "String2"
    str.annotate(str2)
    assert_equal :code, str2.code
  end

  def test_marshal
    str = "String"
    ExtensionClass.setup(str, :code)
    assert ExtensionClass === str
    assert_equal :code, str.code

    str2 = Marshal.load(Marshal.dump(str))
    assert_equal :code, str2.code
  end

  def test_setup_alternatives
    str = "String"

    ExtensionClass.setup(str, :code2 => :code)
    assert_equal :code, str.code2

    ExtensionClass.setup(str, code2: :code)
    assert_equal :code, str.code2

    ExtensionClass.setup(str, "code2" => :code)
    assert_equal :code, str.code2

  end

  def test_setup_block
    o = ExtensionClass.setup nil, :code => :c, :code2 => :c2 do
      puts 1
    end

    assert o.extension_attr_hash.include?(:code)
    assert o.extension_attr_hash.include?(:code2)
  end

  def test_twice
    str = "String"

    ExtensionClass.setup(str, :code2 => :code)
    assert_equal :code, str.code2
    assert_include str.instance_variable_get(:@extension_attrs), :code

    str.extend ExtensionClass2
    str.code3 = :code_alt
    assert_equal :code, str.code2
    assert_equal :code_alt, str.code3
    assert_include str.instance_variable_get(:@extension_attrs), :code
    assert_include str.instance_variable_get(:@extension_attrs), :code3

    assert_include str.extension_attr_hash, :code
    assert_include str.extension_attr_hash, :code3
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
scout-essentials-1.3.1 test/scout/test_meta_extension.rb
scout-essentials-1.3.0 test/scout/test_meta_extension.rb
scout-essentials-1.2.0 test/scout/test_meta_extension.rb
scout-essentials-1.1.1 test/scout/test_meta_extension.rb
scout-essentials-1.1.0 test/scout/test_meta_extension.rb
scout-essentials-1.0.0 test/scout/test_meta_extension.rb
scout-gear-9.1.0 test/scout/test_meta_extension.rb
scout-gear-9.0.0 test/scout/test_meta_extension.rb
scout-gear-8.1.0 test/scout/test_meta_extension.rb
scout-gear-8.0.0 test/scout/test_meta_extension.rb