Sha256: 2a700fee3f6ae64ac7247fd41354cb4f2a36cbb1fa41fc4ae0103fa5c5607f3e

Contents?: true

Size: 1009 Bytes

Versions: 1

Compression:

Stored size: 1009 Bytes

Contents

# frozen_string_literal: true

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-on-quails-0.1.0 activesupport/test/core_ext/object/instance_variables_test.rb