1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
# frozen_string_literal: true
require File.expand_path("../helper", __FILE__)
require "stringio"
class TestTraceOutput < Rake::TestCase # :nodoc:
include Rake::TraceOutput
class PrintSpy # :nodoc:
attr_reader :result, :calls
def initialize
@result = "".dup
@calls = 0
end
def print(string)
@result << string
@calls += 1
end
end
def test_trace_issues_single_io_for_args_with_empty_args
spy = PrintSpy.new
trace_on(spy)
assert_equal "\n", spy.result
assert_equal 1, spy.calls
end
def test_trace_issues_single_io_for_args_multiple_strings
spy = PrintSpy.new
trace_on(spy, "HI\n", "LO")
assert_equal "HI\nLO\n", spy.result
assert_equal 1, spy.calls
end
def test_trace_handles_nil_objects
spy = PrintSpy.new
trace_on(spy, "HI\n", nil, "LO")
assert_equal "HI\nLO\n", spy.result
assert_equal 1, spy.calls
end
def test_trace_issues_single_io_for_args_multiple_strings_and_alternate_sep
verbose, $VERBOSE = $VERBOSE, nil
old_sep = $\
$\ = "\r"
$VERBOSE = verbose
spy = PrintSpy.new
trace_on(spy, "HI\r", "LO")
assert_equal "HI\rLO\r", spy.result
assert_equal 1, spy.calls
ensure
$VERBOSE = nil
$\ = old_sep
$VERBOSE = verbose
end
end
|