test/test_enumerable_extra.rb in enumerable-extra-0.1.2 vs test/test_enumerable_extra.rb in enumerable-extra-0.2.0

- old
+ new

@@ -2,76 +2,87 @@ # tc_enumerable_extra.rb # # Test case for the enumerable-extra library. You should run this # test via the 'rake test' task. ######################################################################## -require 'test/unit' +require 'test-unit' require 'enumerable/extra' class TC_Enumerable_Extra < Test::Unit::TestCase - def setup - @words = %w/foo bar baz/ - @numbers = [1,2,3] - @hash = {'foo' => 1, 'bar' => 2} - @array = [] - end + def setup + @words = %w/foo bar baz/ + @numbers = [1,2,3] + @hash = {'foo' => 1, 'bar' => 2} + @array = [] + end - def test_version - assert_equal('0.1.2', Enumerable::EXTRA_VERSION) - end + test "version number is set properly" do + assert_equal('0.2.0', Enumerable::EXTRA_VERSION) + end - def test_sum - assert_respond_to(@numbers, :sum) - assert_equal(6, @numbers.sum) - assert_equal(20, @numbers.sum(14)) - end + def test_sum + assert_respond_to(@numbers, :sum) + assert_equal(6, @numbers.sum) + assert_equal(20, @numbers.sum(14)) + end - def test_sum_expected_errors - assert_raises(TypeError){ @words.sum } - end + def test_sum_expected_errors + assert_raises(TypeError){ @words.sum } + end - def test_map_array_no_block - assert_nothing_raised{ @words.map } - assert_equal(%w/foo bar baz/, @words.map) - assert_equal(%w/FOO BAR BAZ/, @words.map(:upcase)) - assert_equal(%w/fooA barA bazA/, @words.map(:+, 'A')) - assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified - end + def test_map_array_no_block + assert_nothing_raised{ @words.map } + assert_equal(%w/foo bar baz/, @words.map) + assert_equal(%w/FOO BAR BAZ/, @words.map(:upcase)) + assert_equal(%w/fooA barA bazA/, @words.map(:+, 'A')) + assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified + end - # Test the alias explicitly - def test_collect_array_no_block - assert_nothing_raised{ @words.collect } - assert_equal(%w/foo bar baz/, @words.collect) - assert_equal(%w/FOO BAR BAZ/, @words.collect(:upcase)) - assert_equal(%w/fooA barA bazA/, @words.collect(:+, 'A')) - assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified - end + # Test the alias explicitly + def test_collect_array_no_block + assert_nothing_raised{ @words.collect } + assert_equal(%w/foo bar baz/, @words.collect) + assert_equal(%w/FOO BAR BAZ/, @words.collect(:upcase)) + assert_equal(%w/fooA barA bazA/, @words.collect(:+, 'A')) + assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified + end - def test_map_bang_array_no_block - assert_nothing_raised{ @words.map! } - assert_equal(%w/foo bar baz/, @words.map!) - assert_equal(%w/FOO BAR BAZ/, @words.map!(:upcase)) - assert_equal(%w/FOO BAR BAZ/, @words) # Verify receiver modified - end + def test_map_bang_array_no_block + assert_nothing_raised{ @words.map! } + assert_equal(%w/foo bar baz/, @words.map!) + assert_equal(%w/FOO BAR BAZ/, @words.map!(:upcase)) + assert_equal(%w/FOO BAR BAZ/, @words) # Verify receiver modified + end - def test_map_with_block - assert_nothing_raised{ @words.map{} } - assert_nothing_raised{ @words.map{ |e| @array << e } } - assert_equal(%w/foo bar baz/, @array) - - @array = [] - assert_nothing_raised{ @words.map(:upcase){ |e| @array << e } } - assert_equal(%w/FOO BAR BAZ/, @array) + def test_map_with_block + assert_nothing_raised{ @words.map{} } + assert_nothing_raised{ @words.map{ |e| @array << e } } + assert_equal(%w/foo bar baz/, @array) - @array = [] - assert_nothing_raised{ @words.map(:+, 'A'){ |e| @array << e } } - assert_equal(%w/fooA barA bazA/, @array) - assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified - end + @array = [] + assert_nothing_raised{ @words.map(:upcase){ |e| @array << e } } + assert_equal(%w/FOO BAR BAZ/, @array) - def teardown - @words = nil - @numbers = nil - @hash = nil - @array = nil - end + @array = [] + assert_nothing_raised{ @words.map(:+, 'A'){ |e| @array << e } } + assert_equal(%w/fooA barA bazA/, @array) + assert_equal(%w/foo bar baz/, @words) # Verify receiver unmodified + end + + test "each accepts arguments" do + a1 = [1,2,3] + a2 = [4,5,6] + assert_nothing_raised{ a1.each(a2){} } + assert_equal([[1,4],[2,5],[3,6]], a1.each(a2)) + end + + test "each defaults to using the old behavior if no arguments are passed" do + assert_nothing_raised{ @array.each{} } + end + + def teardown + @words = nil + @numbers = nil + @hash = nil + @array = nil + end end