Codebase list ruby-fxruby / master test / TC_FXMemoryStream.rb
master

Tree @master (Download .tar.gz)

TC_FXMemoryStream.rb @masterraw · history · blame

require 'test/unit'
require 'fox16'

class TC_FXMemoryStream < Test::Unit::TestCase
  include Fox


  DEFAULT_BUFFER_SIZE = 16

  private

  def assert_closed(stream)
    stream.open(FXStreamSave, nil) == false
  end

  public

  def test_open_streamload_nil_data
    s = FXMemoryStream.new
    assert(s.open(FXStreamLoad, nil))
    assert_equal(DEFAULT_BUFFER_SIZE, s.space)
    s.close
  end

  def test_open_streamsave_nil_data
    s = FXMemoryStream.new
    assert(s.open(FXStreamSave, nil))
    assert_equal(DEFAULT_BUFFER_SIZE, s.space)
    s.close
  end

  def test_open_streamload_unknown_size
    s = FXMemoryStream.new
    assert(s.open(FXStreamLoad, "foo"))
    s.close
  end

	def test_open_streamsave_unknown_size
		s = FXMemoryStream.new
		assert(s.open(FXStreamSave, "foo"))
		s.close
	end

  def test_open_s_load_nil_buffer
    s = FXMemoryStream.open(FXStreamLoad, nil)
    assert_equal(DEFAULT_BUFFER_SIZE, s.space)
    s.close
  end

  def test_open_s_save_nil_buffer
    s = FXMemoryStream.open(FXStreamSave, nil)
    assert_equal(DEFAULT_BUFFER_SIZE, s.space)
    s.close
  end

  def test_open_s_load_unknown_buffer_size
    s = FXMemoryStream.open(FXStreamLoad, "foo")
    assert_equal(3, s.space)
    s.close
  end

  def test_open_s_save_unknown_buffer_size
    s = FXMemoryStream.open(FXStreamSave, "foo")
    assert_equal(3, s.space)
    s.close
  end

  def test_open_s_with_block
    stream = nil
    FXMemoryStream.open(FXStreamLoad, "foo") do |s|
      stream = s
    end
    assert_closed(stream)
  end

  def test_setSpace
    FXMemoryStream.open(FXStreamSave, nil) do |stream|
      stream.space = 5000
      assert_equal(5000, stream.space)
    end
  end

  def test_takeBuffer_empty
    FXMemoryStream.open(FXStreamSave, nil) do |stream|
      buffer = stream.takeBuffer
      assert_equal("\0" * 16, buffer)
    end
  end

  def test_giveBuffer
    FXMemoryStream.open(FXStreamLoad, nil) do |stream|
      assert_equal(DEFAULT_BUFFER_SIZE, stream.space)
      stream.giveBuffer("foo")
      assert_equal(3, stream.space)
    end
  end
end