| Class | CoreEx::TestProc |
| In: |
lib/core_ex/proc.rb
|
| Parent: | ::Test::Unit::TestCase |
# File lib/core_ex/proc.rb, line 109 def assert_instance_call ( ref, proc, args ) assert_nothing_raised do begin proc.instance_call(*args) rescue Proc::ArityError => ex assert_equal :ArityError, ref assert_equal [], @mock_args return end end assert_equal ref, @mock_args.shift assert_equal [], @mock_args end
# File lib/core_ex/proc.rb, line 71 def setup @procs = { proc {} => __LINE__, method(:teardown).to_proc => __LINE__, TestProc.instance_method(:setup).bind(self).to_proc => __LINE__ } mock_args = @mock_args = [] @m_ = proc { mock_args << [:_, object_id] } @m_0 = proc { || mock_args << ['0''0', object_id] } @m_as = proc { |*a| mock_args << [:as, a, object_id] } @m_a_bs = proc { |a, *b| mock_args << [:a_bs, a, b, object_id] } @m_a = proc { |a| mock_args << [:a, a, object_id] } @m_a_b = proc { |a, b| mock_args << [:a_b, a, b, object_id] } @m_a_b_c = proc { |a, b, c| mock_args << [:a_b_c, a, b, c, object_id] } @m_procs = [@m_, @m_0, @m_as, @m_a_bs, @m_a, @m_a_b, @m_a_b_c] end
# File lib/core_ex/proc.rb, line 123 def test_instance_call a, b, c = 'a', 'b', 'c' ai, bi, ci, si = a.object_id, b.object_id, c.object_id, object_id assert_instance_call [:_, ai], @m_, [a] assert_instance_call ['0''0', ai], @m_0, [a] assert_instance_call [:as, [], ai], @m_as, [a] assert_instance_call [:a_bs, a, [], si], @m_a_bs, [a] assert_instance_call [:a, a, si], @m_a, [a] assert_instance_call :ArityError, @m_a_b, [a] assert_instance_call :ArityError, @m_a_b_c, [a] assert_instance_call [:_, ai], @m_, [a, b] assert_instance_call :ArityError, @m_0, [a, b] assert_instance_call [:as, [b], ai], @m_as, [a, b] assert_instance_call [:a_bs, a, [b], si], @m_a_bs, [a, b] assert_instance_call [:a, b, ai], @m_a, [a, b] assert_instance_call [:a_b, a, b, si], @m_a_b, [a, b] assert_instance_call :ArityError, @m_a_b_c, [a, b] assert_instance_call [:_, ai], @m_, [a, b, c] assert_instance_call :ArityError, @m_0, [a, b, c] assert_instance_call [:as, [b, c], ai], @m_as, [a, b, c] assert_instance_call [:a_bs, a, [b, c], si], @m_a_bs, [a, b, c] assert_instance_call :ArityError, @m_a, [a, b, c] assert_instance_call [:a_b, b, c, ai], @m_a_b, [a, b, c] assert_instance_call [:a_b_c, a, b, c, si], @m_a_b_c, [a, b, c] end
# File lib/core_ex/proc.rb, line 91 def test_simple assert_nothing_raised do @procs.each do |block, __line__| assert_equal __FILE__, block.source_file, 'bad source_file' assert_equal __line__, block.source_line, 'bad source_line' assert_equal "#{__FILE__}:#{__line__}", block.source_location, 'bad source_location' end end end