# frozen_string_literal: true require 'helper' class TestSourceRewriterAction < Minitest::Test def setup @buf = Parser::Source::Buffer.new('(rewriter_action)', source: 'foo bar baz') end def range(from, len) Parser::Source::Range.new(@buf, from, from + len) end def action(range, replacement) Parser::Source::Rewriter::Action.new(range, replacement) end def test_accessors action = action(range(1, 10), 'foo') assert action.frozen? assert_equal range(1, 10), action.range assert_equal 'foo', action.replacement end def test_to_s_replace action = action(range(3, 1), 'foo') assert_equal "replace 1 character(s) with \"foo\"", action.to_s end def test_to_s_insert action = action(range(3, 0), 'foo') assert_equal "insert \"foo\"", action.to_s end def test_to_s_remove action = action(range(3, 2), '') assert_equal 'remove 2 character(s)', action.to_s end def test_to_s_nop action = action(range(3, 0), '') assert_equal 'do nothing', action.to_s end end