From 93030d0e4d93683346648b25bd69a3f33a5f0486 Mon Sep 17 00:00:00 2001 From: jeg2 Date: Thu, 27 Dec 2012 16:15:53 +0000 Subject: * lib/csv.rb: Added more Hash methods to CSV::Row. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/csv/test_row.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/csv/test_row.rb') diff --git a/test/csv/test_row.rb b/test/csv/test_row.rb index 3016c5b57c..697c7d56c8 100755 --- a/test/csv/test_row.rb +++ b/test/csv/test_row.rb @@ -78,6 +78,33 @@ class TestCSV::Row < TestCSV assert_equal(nil, @row.field("A", 5)) end + def test_fetch + # only by name + assert_equal(2, @row.fetch('B')) + + # missing header raises KeyError + assert_raise KeyError do + @row.fetch('foo') + end + + # missing header yields itself to block + assert_equal 'bar', @row.fetch('foo') { |header| + header == 'foo' ? 'bar' : false } + + # missing header returns the given default value + assert_equal 'bar', @row.fetch('foo', 'bar') + + # more than one vararg raises ArgumentError + assert_raise ArgumentError do + @row.fetch('foo', 'bar', 'baz') + end + end + + def test_has_key? + assert_equal(true, @row.has_key?('B')) + assert_equal(false, @row.has_key?('foo')) + end + def test_set_field # set field by name assert_equal(100, @row["A"] = 100) -- cgit v1.2.3