Sha256: 298b73547235b2e99568ace1b96907c23828c94589d554a989bb9f00a9445384

Contents?: true

Size: 1.34 KB

Versions: 14

Compression:

Stored size: 1.34 KB

Contents

require "test_helper"

class FileSysWriteTest < Test::Unit::TestCase
  def setup
    FakeFS.activate!
    FakeFS::FileSystem.clear
  end

  def teardown
    FakeFS.deactivate!
  end

  def test_returns_one_byte_when_written
    f = File.open "foo", "w"
    result = f.syswrite "a"
    assert_equal 1, result
  end

  def test_returns_two_bytes_when_two_written
    f = File.open "foo", "w"
    result = f.syswrite "ab"
    assert_equal 2, result
  end

  def test_syswrite_writes_file
    f = File.open "foo", "w"
    f.syswrite "abcdef"
    f.close

    assert_equal "abcdef", File.read("foo")
  end

  def test_writes_to_the_actual_position_when_called_after_buffered_io_read
    File.open("foo", "w") do |file|
      file.syswrite("012345678901234567890123456789")
    end

    file = File.open("foo", "r+")
    file.read(5)
    file.syswrite("abcde")

    File.open("foo") do |file|
      assert_equal "01234abcde", file.sysread(10)
    end
  end

  def test_writes_all_of_the_strings_bytes_but_does_not_buffer_them
    File.open("foo", "w") do |file|
      file.syswrite("012345678901234567890123456789")
    end

    file = File.open("foo", "r+")
    written = file.syswrite("abcde")

    File.open("foo") do |file|
      assert_equal "abcde56789", file.sysread(10)
      file.seek(0)
      file.fsync
      assert_equal "abcde56789", file.sysread(10)
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
fakefs-0.5.4 test/fake/file/syswrite_test.rb
fakefs-0.5.3 test/fake/file/syswrite_test.rb
fakefs-0.5.2 test/fake/file/syswrite_test.rb
fakefs-0.5.1 test/fake/file/syswrite_test.rb
fakefs-0.5.0 test/fake/file/syswrite_test.rb
fakefs-0.4.3 test/fake/file/syswrite_test.rb
fakefs-0.4.2 test/fake/file/syswrite_test.rb
fakefs-0.4.1 test/fake/file/syswrite_test.rb
fakefs-0.4.0 test/fake/file/syswrite_test.rb
fakefs-0.3.2 test/fake/file/syswrite_test.rb
mnoble-fakefs-0.3.2 test/fake/file/syswrite_test.rb
mnoble-fakefs-0.3.1 test/fake/file/syswrite_test.rb
fakefs-0.3.1 test/fake/file/syswrite_test.rb
ktheory-fakefs-0.2.1.1 test/fake/file/syswrite_test.rb