diff options
author | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-19 02:48:46 +0000 |
---|---|---|
committer | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-19 02:48:46 +0000 |
commit | ba51a267716363f1a69632f040ab01da0bbde78e (patch) | |
tree | 715b07f7eccd87ad19acb59d51494d85b759fb66 /test/testunit/collector/test_objectspace.rb | |
parent | 9fb55fa783bf276e3eebaf04d99ef77902d50e0e (diff) | |
download | ruby-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.rb | 74 |
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 |