diff options
author | Toshiaki Asai <qtoship@gmail.com> | 2013-01-16 17:02:44 +0900 |
---|---|---|
committer | Toshiaki Asai <qtoship@gmail.com> | 2013-01-16 17:02:44 +0900 |
commit | 00e0b60ee678665610e4700f9cc7f353e77491a8 (patch) | |
tree | 862f8f7d39efb26b78ee605df48796861cb92a73 /test | |
parent | 72d3ac2c725909f18b80ee41c1f2b5e2b47f1ccc (diff) | |
download | mikutter-00e0b60ee678665610e4700f9cc7f353e77491a8.tar.gz |
最大容量を決めて値を保存できる SizeLimitedStorage
Diffstat (limited to 'test')
-rw-r--r-- | test/core/test_weakstorage.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/core/test_weakstorage.rb b/test/core/test_weakstorage.rb new file mode 100644 index 00000000..98b3f739 --- /dev/null +++ b/test/core/test_weakstorage.rb @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +require 'test/unit' +require 'rubygems' +require 'mocha' +require File.expand_path(File.dirname(__FILE__) + '/../helper') + +Dir.chdir(File.expand_path(File.dirname(__FILE__) + '/../core')) +$LOAD_PATH.push '.' +require 'utils' + +miquire :lib, 'test_unit_extensions', 'weakstorage' + +class TC_WeakStorage < Test::Unit::TestCase + def setup + end + + must "size limited storage item insertion" do + sls = SizeLimitedStorage.new(Symbol, String, 8) + assert_equal(0, sls.using) + sls[:a] = "foo" + assert_equal("foo", sls[:a]) + assert_equal(3, sls.using) + + sls[:b] = "bar" + assert_equal("foo", sls[:a]) + assert_equal("bar", sls[:b]) + assert_equal(6, sls.using) + + sls[:c] = "baz" + assert_nil(sls[:a]) + assert_equal("bar", sls[:b]) + assert_equal("baz", sls[:c]) + assert_equal(6, sls.using) + + sls[:d] = "pi" + assert_equal("bar", sls[:b]) + assert_equal("baz", sls[:c]) + assert_equal("pi", sls[:d]) + assert_equal(8, sls.using) + + assert(!sls.has_key?(:a)) + assert(sls.has_key?(:b)) + assert(sls.has_key?(:c)) + assert(sls.has_key?(:d)) + assert(!sls.has_key?(:e)) + end +end |