Sha256: 8c122ee60b442e2a4993ead6df5d93dd0f342d2a5081fd015a8d8d0fa7eb6899

Contents?: true

Size: 1.95 KB

Versions: 7

Compression:

Stored size: 1.95 KB

Contents

#####################################################################
# test_middle.rb
#
# Test case for the File.middle method. You should run this test
# via the 'rake test_middle' task.
#####################################################################
require 'test-unit'
require 'ptools'

class TC_FileMiddle < Test::Unit::TestCase
  def self.startup
    Dir.chdir('test') if File.exist?('test')
    File.open('test_file1.txt', 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
  end

  def setup
    @test_file = 'test_file1.txt'

    @expected_middle1 = ["line10\n", "line11\n", "line12\n", "line13\n", "line14\n"]
    @expected_middle1.push("line15\n","line16\n", "line17\n", "line18\n")
    @expected_middle1.push("line19\n","line20\n")

    @expected_middle2 = ["line14\n","line15\n","line16\n","line17\n"]
    @expected_middle2.push("line18\n","line19\n","line20\n")

    @expected_middle3 = ["line5\n","line6\n","line7\n"]
    @expected_middle3.push("line8\n","line9\n","line10\n")
  end

  def test_method_basic
    assert_respond_to(File, :middle)
    assert_nothing_raised{ File.middle(@test_file) }
    assert_nothing_raised{ File.middle(@test_file, 14) }
    assert_nothing_raised{ File.middle(@test_file, 5, 10) }
    assert_nothing_raised{ File.middle(@test_file){} }
  end

  def test_middle_expected_results
    assert_kind_of(Array, File.middle(@test_file))
    assert_equal(@expected_middle1, File.middle(@test_file))
    assert_equal(@expected_middle2, File.middle(@test_file, 14))
    assert_equal(@expected_middle3, File.middle(@test_file, 5, 10))
  end

  def test_middle_expected_errors
    assert_raises(ArgumentError){ File.middle }
    assert_raises(ArgumentError){ File.middle(@test_file, 5, 10, 15) }
    assert_raises(NoMethodError){ File.middle(@test_file, "foo") }
    assert_raises(Errno::ENOENT){ File.middle("bogus") }
  end

  def teardown
    @test_file = nil
    @expected_middle1 = nil
    @expected_middle2 = nil
    @expected_middle3 = nil
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ptools-1.2.7 test/test_middle.rb
ptools-1.2.6 test/test_middle.rb
ptools-1.2.6-universal-mingw32 test/test_middle.rb
ptools-1.2.5-universal-mingw32 test/test_middle.rb
ptools-1.2.4 test/test_middle.rb
ptools-1.2.4-universal-mingw32 test/test_middle.rb
ptools-1.2.3 test/test_middle.rb