From 65fe176ea49b3094c8d5aa031cd8016de1c9d134 Mon Sep 17 00:00:00 2001 From: ntalbott Date: Fri, 19 Sep 2003 02:48:46 +0000 Subject: * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/testunit/test_testresult.rb | 104 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 test/testunit/test_testresult.rb (limited to 'test/testunit/test_testresult.rb') diff --git a/test/testunit/test_testresult.rb b/test/testunit/test_testresult.rb new file mode 100644 index 0000000000..95d631a082 --- /dev/null +++ b/test/testunit/test_testresult.rb @@ -0,0 +1,104 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/testcase' +require 'test/unit/testresult' + +module Test + module Unit + class TC_TestResult < TestCase + def setup + @my_result = TestResult.new + @my_result.add_assertion() + @my_result.add_failure("") + @my_result.add_error("") + end + def test_result_changed_notification + called1 = false + @my_result.add_listener( TestResult::CHANGED) { + |result| + assert_block("The result should be correct") { result == @my_result } + called1 = true + } + @my_result.add_assertion + assert_block("Should have been notified when the assertion happened") { called1 } + + called1, called2 = false, false + @my_result.add_listener( TestResult::CHANGED) { + |result| + assert_block("The result should be correct") { result == @my_result } + called2 = true + } + @my_result.add_assertion + assert_block("Both listeners should have been notified for a success") { called1 && called2 } + + called1, called2 = false, false + @my_result.add_failure("") + assert_block("Both listeners should have been notified for a failure") { called1 && called2 } + + called1, called2 = false, false + @my_result.add_error("") + assert_block("Both listeners should have been notified for an error") { called1 && called2 } + + called1, called2 = false, false + @my_result.add_run + assert_block("Both listeners should have been notified for a run") { called1 && called2 } + end + def test_fault_notification + called1 = false + fault = "fault" + @my_result.add_listener(TestResult::FAULT) { + | passed_fault | + assert_block("The fault should be correct") { passed_fault == fault } + called1 = true + } + + @my_result.add_assertion + assert_block("Should not have been notified when the assertion happened") { !called1 } + + @my_result.add_failure(fault) + assert_block("Should have been notified when the failure happened") { called1 } + + called1, called2 = false, false + @my_result.add_listener(TestResult::FAULT) { + | passed_fault | + assert_block("The fault should be correct") { passed_fault == fault } + called2 = true + } + + @my_result.add_assertion + assert_block("Neither listener should have been notified for a success") { !(called1 || called2) } + + called1, called2 = false, false + @my_result.add_failure(fault) + assert_block("Both listeners should have been notified for a failure") { called1 && called2 } + + called1, called2 = false, false + @my_result.add_error(fault) + assert_block("Both listeners should have been notified for an error") { called1 && called2 } + + called1, called2 = false, false + @my_result.add_run + assert_block("Neither listener should have been notified for a run") { !(called1 || called2) } + end + def test_passed? + result = TestResult.new + assert(result.passed?, "An empty result should have passed") + + result.add_assertion + assert(result.passed?, "Adding an assertion should not cause the result to not pass") + + result.add_run + assert(result.passed?, "Adding a run should not cause the result to not pass") + + result.add_failure("") + assert(!result.passed?, "Adding a failed assertion should cause the result to not pass") + + result = TestResult.new + result.add_error("") + assert(!result.passed?, "Adding an error should cause the result to not pass") + end + end + end +end -- cgit v1.2.3