blob: 510352595a35d5ee72afd75d4ec64dc09fac6fca (
plain) (
tree)
|
|
require "abstract_unit"
require "active_support/core_ext/object"
class ObjectInstanceVariableTest < ActiveSupport::TestCase
def setup
@source, @dest = Object.new, Object.new
@source.instance_variable_set(:@bar, "bar")
@source.instance_variable_set(:@baz, "baz")
end
def test_instance_variable_names
assert_equal %w(@bar @baz), @source.instance_variable_names.sort
end
def test_instance_values
assert_equal({"bar" => "bar", "baz" => "baz"}, @source.instance_values)
end
def test_instance_exec_passes_arguments_to_block
assert_equal %w(hello goodbye), "hello".instance_exec("goodbye") { |v| [self, v] }
end
def test_instance_exec_with_frozen_obj
assert_equal %w(olleh goodbye), "hello".freeze.instance_exec("goodbye") { |v| [reverse, v] }
end
def test_instance_exec_nested
assert_equal %w(goodbye olleh bar), "hello".instance_exec("goodbye") { |arg|
[arg] + instance_exec("bar") { |v| [reverse, v] } }
end
end
|