aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorToshiaki Asai <qtoship@gmail.com>2013-01-16 17:02:44 +0900
committerToshiaki Asai <qtoship@gmail.com>2013-01-16 17:02:44 +0900
commit00e0b60ee678665610e4700f9cc7f353e77491a8 (patch)
tree862f8f7d39efb26b78ee605df48796861cb92a73 /test
parent72d3ac2c725909f18b80ee41c1f2b5e2b47f1ccc (diff)
downloadmikutter-00e0b60ee678665610e4700f9cc7f353e77491a8.tar.gz
最大容量を決めて値を保存できる SizeLimitedStorage
Diffstat (limited to 'test')
-rw-r--r--test/core/test_weakstorage.rb47
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