diff options
author | ayumin <ayumin@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-25 12:05:06 +0000 |
---|---|---|
committer | ayumin <ayumin@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-25 12:05:06 +0000 |
commit | 3255adcd0cb07c5bf4279ecbff1f2aeebdefeae4 (patch) | |
tree | 1518b0c004ac587e4db103b1a5a89d5876173f36 /test/syck | |
parent | 73bd9e566b081941e9e7f158cbf4f5fd1c2461a8 (diff) | |
download | ruby-3255adcd0cb07c5bf4279ecbff1f2aeebdefeae4.tar.gz |
* test/syck/test/yamldbm.rb: add test for Syck::DBM.
* test/psych/test_yamldbm.rb: add test for Psych::DBM.
* test/psych/test_yamlstore.rb: add test for Psych::PStore.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/syck')
-rw-r--r-- | test/syck/test_yamldbm.rb | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/test/syck/test_yamldbm.rb b/test/syck/test_yamldbm.rb new file mode 100644 index 0000000000..12b3b18eca --- /dev/null +++ b/test/syck/test_yamldbm.rb @@ -0,0 +1,152 @@ +# -*- coding: UTF-8 -*- +require 'test/unit' +require 'yaml/dbm' +Syck::DBM = YAML::DBM unless defined?(Syck::DBM) + +module Syck + class YAMLDBMTest < Test::Unit::TestCase + def setup + @engine, YAML::ENGINE.yamler = YAML::ENGINE.yamler, 'syck' + @yamldbm_file = "yamldbm.tmp.#{Process.pid}" + @yamldbm = YAML::DBM.new(@yamldbm_file) + end + + def teardown + YAML::ENGINE.yamler = @engine + File.unlink(@yamldbm_file + '.db') rescue nil + end + + def test_store + @yamldbm.store('a','b') + @yamldbm.store('c','d') + assert_equal 'b', @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_nil @yamldbm['e'] + end + + def test_store_using_carret + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal 'b', @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_nil @yamldbm['e'] + end + + def test_to_a + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal([['a','b'],['c','d']], @yamldbm.to_a) + end + + def test_to_hash + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal({'a'=>'b','c'=>'d'}, @yamldbm.to_hash) + end + + def test_has_value? + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal true, @yamldbm.has_value?('b') + assert_equal true, @yamldbm.has_value?('d') + assert_equal false, @yamldbm.has_value?('f') + end + + # Note: + # YAML::DBM#index makes warning from internal of ::DBM#index. + # It says 'DBM#index is deprecated; use DBM#key', but DBM#key + # behaves not same as DBM#index. + # + # def test_index + # @yamldbm['a'] = 'b' + # @yamldbm['c'] = 'd' + # assert_equal 'a', @yamldbm.index('b') + # assert_equal 'c', @yamldbm.index('d') + # assert_nil @yamldbm.index('f') + # end + + def test_key + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal 'a', @yamldbm.key('b') + assert_equal 'c', @yamldbm.key('d') + assert_nil @yamldbm.key('f') + end + + def test_fetch + assert_equal('bar', @yamldbm['foo']='bar') + assert_equal('bar', @yamldbm.fetch('foo')) + assert_nil @yamldbm.fetch('bar') + assert_equal('baz', @yamldbm.fetch('bar', 'baz')) + assert_equal('foobar', @yamldbm.fetch('bar') {|key| 'foo' + key }) + end + + def test_shift + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal(['a','b'], @yamldbm.shift) + assert_equal(['c','d'], @yamldbm.shift) + assert_nil @yamldbm.shift + end + + def test_invert + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal({'b'=>'a','d'=>'c'}, @yamldbm.invert) + end + + def test_update + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + @yamldbm.update({'c'=>'d','e'=>'f'}) + assert_equal 'b', @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_equal 'f', @yamldbm['e'] + end + + def test_replace + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + @yamldbm.replace({'c'=>'d','e'=>'f'}) + assert_nil @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_equal 'f', @yamldbm['e'] + end + + def test_delete + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + assert_equal 'b', @yamldbm.delete('a') + assert_nil @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_nil @yamldbm.delete('e') + end + + def test_delete_if + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + @yamldbm['e'] = 'f' + + @yamldbm.delete_if {|k,v| k == 'a'} + assert_nil @yamldbm['a'] + assert_equal 'd', @yamldbm['c'] + assert_equal 'f', @yamldbm['e'] + + @yamldbm.delete_if {|k,v| v == 'd'} + assert_nil @yamldbm['c'] + assert_equal 'f', @yamldbm['e'] + + @yamldbm.delete_if {|k,v| false } + assert_equal 'f', @yamldbm['e'] + end + + def test_reject + @yamldbm['a'] = 'b' + @yamldbm['c'] = 'd' + @yamldbm['e'] = 'f' + assert_equal({'c'=>'d','e'=>'f'}, @yamldbm.reject {|k,v| k == 'a'}) + assert_equal({'a'=>'b','e'=>'f'}, @yamldbm.reject {|k,v| v == 'd'}) + assert_equal({'a'=>'b','c'=>'d','e'=>'f'}, @yamldbm.reject {false}) + end + end +end |