require 'helper' class TestSourceFileLine < Test::Unit::TestCase on_ruby '1.9' do context "A source line" do setup do @line = SimpleCov::SourceFile::Line.new('# the ruby source', 5, 3) end subject { @line } should 'return "# the ruby source" as src' do assert_equal '# the ruby source', @line.src end should 'return the same for source as for src' do assert_equal @line.src, @line.source end should 'have line number 5' do assert_equal 5, @line.line_number end should 'have equal line_number, line and number' do assert_equal @line.line_number, @line.line assert_equal @line.line_number, @line.number end context "flagged as skipped!" do setup { @line.skipped! } should_not_be :covered? should_be :skipped? should_not_be :missed? should_not_be :never? should_have :status, 'skipped' end end context "A source line with coverage" do setup do @line = SimpleCov::SourceFile::Line.new('# the ruby source', 5, 3) end subject { @line } should "have coverage of 3" do assert_equal 3, @line.coverage end should_be :covered? should_not_be :skipped? should_not_be :missed? should_not_be :never? should_have :status, 'covered' end context "A source line without coverage" do setup do @line = SimpleCov::SourceFile::Line.new('# the ruby source', 5, 0) end subject { @line } should "have coverage of 0" do assert_equal 0, @line.coverage end should_not_be :covered? should_not_be :skipped? should_be :missed? should_not_be :never? should_have :status, 'missed' end context "A source line with no code" do setup do @line = SimpleCov::SourceFile::Line.new('# the ruby source', 5, nil) end subject { @line } should "have nil coverage" do assert_nil @line.coverage end should_not_be :covered? should_not_be :skipped? should_not_be :missed? should_be :never? should_have :status, 'never' end should "raise ArgumentError when initialized with invalid src" do assert_raise ArgumentError do SimpleCov::SourceFile::Line.new(:symbol, 5, 3) end end should "raise ArgumentError when initialized with invalid line_number" do assert_raise ArgumentError do SimpleCov::SourceFile::Line.new("some source", "five", 3) end end should "raise ArgumentError when initialized with invalid coverage" do assert_raise ArgumentError do SimpleCov::SourceFile::Line.new("some source", 5, "three") end end end end