1# Author:: Nathaniel Talbott. 2# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. 3# License:: Ruby license. 4 5require 'test/unit/testcase' 6require 'test/unit/testresult' 7 8module Test 9 module Unit 10 class TC_TestResult < TestCase 11 def setup 12 @my_result = TestResult.new 13 @my_result.add_assertion() 14 @failure = "failure" 15 @my_result.add_failure(@failure) 16 @error = "error" 17 @my_result.add_error(@error) 18 end 19 20 def test_result_changed_notification 21 called1 = false 22 @my_result.add_listener(TestResult::CHANGED) do |result| 23 assert_equal(@my_result, result) 24 called1 = true 25 end 26 @my_result.add_assertion 27 assert_true(called1) 28 29 called1, called2 = false, false 30 @my_result.add_listener(TestResult::CHANGED) do |result| 31 assert_equal(@my_result, result) 32 called2 = true 33 end 34 @my_result.add_assertion 35 assert_equal([true, true], [called1, called2]) 36 37 called1, called2 = false, false 38 @my_result.add_failure("") 39 assert_equal([true, true], [called1, called2]) 40 41 called1, called2 = false, false 42 @my_result.add_error("") 43 assert_equal([true, true], [called1, called2]) 44 45 called1, called2 = false, false 46 @my_result.add_run 47 assert_equal([true, true], [called1, called2]) 48 end 49 50 def test_fault_notification 51 called1 = false 52 fault = "fault" 53 @my_result.add_listener(TestResult::FAULT) do |passed_fault| 54 assert_equal(fault, passed_fault) 55 called1 = true 56 end 57 58 @my_result.add_assertion 59 assert_false(called1) 60 61 @my_result.add_failure(fault) 62 assert_true(called1) 63 64 called1, called2 = false, false 65 @my_result.add_listener(TestResult::FAULT) do |passed_fault| 66 assert_equal(fault, passed_fault) 67 called2 = true 68 end 69 70 @my_result.add_assertion 71 assert_equal([false, false], [called1, called2]) 72 73 called1, called2 = false, false 74 @my_result.add_failure(fault) 75 assert_equal([true, true], [called1, called2]) 76 77 called1, called2 = false, false 78 @my_result.add_error(fault) 79 assert_equal([true, true], [called1, called2]) 80 81 called1, called2 = false, false 82 @my_result.add_run 83 assert_equal([false, false], [called1, called2]) 84 end 85 86 def test_passed? 87 result = TestResult.new 88 assert_true(result.passed?) 89 90 result.add_assertion 91 assert_true(result.passed?) 92 93 result.add_run 94 assert_true(result.passed?) 95 96 result.add_failure("") 97 assert_false(result.passed?) 98 99 result = TestResult.new 100 result.add_error("") 101 assert_false(result.passed?) 102 end 103 104 def test_faults 105 assert_equal([@failure, @error], @my_result.faults) 106 107 notification = "notification" 108 @my_result.add_notification(notification) 109 assert_equal([@failure, @error, notification], @my_result.faults) 110 end 111 end 112 end 113end 114