summaryrefslogtreecommitdiffstats
path: root/test/testunit/collector/test_objectspace.rb
diff options
context:
space:
mode:
authorntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-19 02:48:46 +0000
committerntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-19 02:48:46 +0000
commitba51a267716363f1a69632f040ab01da0bbde78e (patch)
tree715b07f7eccd87ad19acb59d51494d85b759fb66 /test/testunit/collector/test_objectspace.rb
parent9fb55fa783bf276e3eebaf04d99ef77902d50e0e (diff)
downloadruby-ba51a267716363f1a69632f040ab01da0bbde78e.tar.gz
ruby-ba51a267716363f1a69632f040ab01da0bbde78e.tar.xz
ruby-ba51a267716363f1a69632f040ab01da0bbde78e.zip
* test/testunit/*: Added.
* lib/test/unit.rb: Documentation update. * lib/test/unit/ui/console/testrunner.rb (TestRunner#initialize): Ditto. * lib/test/unit.rb: Factored out an ObjectSpace collector. * lib/test/unit/collector/objectspace.rb: Ditto. * sample/testunit/*: Added. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/testunit/collector/test_objectspace.rb')
-rw-r--r--test/testunit/collector/test_objectspace.rb74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/testunit/collector/test_objectspace.rb b/test/testunit/collector/test_objectspace.rb
new file mode 100644
index 000000000..d596e1d31
--- /dev/null
+++ b/test/testunit/collector/test_objectspace.rb
@@ -0,0 +1,74 @@
+# Author:: Nathaniel Talbott.
+# Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
+# License:: Ruby license.
+
+require 'test/unit/collector/objectspace'
+
+module Test
+ module Unit
+ module Collector
+ class TC_ObjectSpace < TestCase
+ def setup
+ @tc1 = Class.new(TestCase) do
+ def test_1
+ end
+ def test_2
+ end
+ end
+
+ @tc2 = Class.new(TestCase) do
+ def test_3
+ end
+ end
+
+ @no_tc = Class.new do
+ def test_4
+ end
+ end
+
+ @object_space = {Class => [@tc1, @tc2, @no_tc], String => ['']}
+ def @object_space.each_object(type)
+ self[type].each{|item| yield(item) }
+ end
+ end
+
+ def test_basic_collection
+ expected = TestSuite.new("name")
+ expected << @tc1.new('test_1')
+ expected << @tc1.new('test_2')
+ expected << @tc2.new('test_3')
+ assert_equal(expected, ObjectSpace.new(@object_space).collect("name"))
+ end
+
+ def test_filtered_collection
+ expected = TestSuite.new(ObjectSpace::NAME)
+ collector = ObjectSpace.new(@object_space)
+ collector.filter = proc{|test| false}
+ assert_equal(expected, collector.collect)
+
+ expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc1.new('test_1')
+ expected << @tc1.new('test_2')
+ expected << @tc2.new('test_3')
+ collector = ObjectSpace.new(@object_space)
+ collector.filter = proc{|test| true}
+ assert_equal(expected, collector.collect)
+
+ expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc1.new('test_1')
+ expected << @tc2.new('test_3')
+ collector = ObjectSpace.new(@object_space)
+ collector.filter = proc{|test| ['test_1', 'test_3'].include?(test.method_name)}
+ assert_equal(expected, collector.collect)
+
+ expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc1.new('test_1')
+ expected << @tc2.new('test_3')
+ collector = ObjectSpace.new(@object_space)
+ collector.filter = [proc{|test| test.method_name == 'test_1'}, proc{|test| test.method_name == 'test_3'}]
+ assert_equal(expected, collector.collect)
+ end
+ end
+ end
+ end
+end