Sha256: 25b420bde5c97fbf8e55506456ce8283f7884de83dac82b785b6e907dbf2e658

Contents?: true

Size: 1.93 KB

Versions: 10

Compression:

Stored size: 1.93 KB

Contents

require 'helper'

class TestSourceBuffer < MiniTest::Unit::TestCase
  def setup
    @buffer = Parser::Source::Buffer.new('(string)')
  end

  def test_initialize
    buffer = Parser::Source::Buffer.new('(string)')
    assert_equal '(string)', buffer.name
    assert_equal 1, buffer.first_line

    buffer = Parser::Source::Buffer.new('(string)', 5)
    assert_equal 5, buffer.first_line
  end

  def test_source_setter
    @buffer.source = 'foo'
    assert_equal 'foo', @buffer.source

    assert @buffer.frozen?
    assert @buffer.source.frozen?
  end

  def test_read
    tempfile = Tempfile.new('parser')
    tempfile.write('foobar')
    tempfile.flush

    buffer = Parser::Source::Buffer.new(tempfile.path)
    buffer.read
    assert_equal 'foobar', buffer.source

    assert buffer.frozen?
    assert buffer.source.frozen?
  end

  def test_uninitialized
    assert_raises RuntimeError do
      @buffer.source
    end
  end

  def test_line_begin_positions
    @buffer.source = "1\nfoo\nbar"
    assert_equal [0, 2, 6], @buffer.send(:line_begin_positions)
  end

  def test_decompose_position
    @buffer.source = "1\nfoo\nbar"

    assert_equal [1, 0], @buffer.decompose_position(0)
    assert_equal [1, 1], @buffer.decompose_position(1)
    assert_equal [2, 0], @buffer.decompose_position(2)
    assert_equal [3, 1], @buffer.decompose_position(7)
  end

  def test_decompose_position_mapped
    @buffer = Parser::Source::Buffer.new('(string)', 5)
    @buffer.source = "1\nfoo\nbar"

    assert_equal [5, 0], @buffer.decompose_position(0)
    assert_equal [6, 0], @buffer.decompose_position(2)
  end

  def test_line
    @buffer.source = "1\nfoo\nbar"

    assert_equal "1", @buffer.source_line(1)
    assert_equal "foo", @buffer.source_line(2)
  end

  def test_line_mapped
    @buffer = Parser::Source::Buffer.new('(string)', 5)
    @buffer.source = "1\nfoo\nbar"

    assert_equal "1", @buffer.source_line(5)
    assert_equal "foo", @buffer.source_line(6)
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
parser-1.3.2 test/test_source_buffer.rb
parser-1.3.1 test/test_source_buffer.rb
parser-1.3.0 test/test_source_buffer.rb
parser-1.2.0 test/test_source_buffer.rb
parser-1.1.0 test/test_source_buffer.rb
parser-1.0.1 test/test_source_buffer.rb
parser-1.0.0 test/test_source_buffer.rb
parser-0.9.2 test/test_source_buffer.rb
parser-0.9.1 test/test_source_buffer.rb
parser-0.9.0 test/test_source_buffer.rb