soml-parser/test/unit/test_arguments.rb
2015-09-18 00:02:52 +03:00

37 lines
1.2 KiB
Ruby

require_relative "../parser_helper"
class TestArguments < MiniTest::Test
# include the magic (setup and parse -> test method translation), see there
include ParserHelper
def test_one_argument
@string_input = '(42)'
@parse_output = {:argument_list => [{:argument => {:integer => '42'}}] }
@transform_output = [s(:int, 42)]
@parser = @parser.argument_list
end
def test_argument_list
@string_input = '(42, foo)'
@parse_output = {:argument_list => [{:argument => {:integer => '42'}},
{:argument => {:name => 'foo'}}]}
@transform_output = [s(:int, 42), s(:name, "foo")]
@parser = @parser.argument_list
end
def test_parameter
@string_input = "ref foo"
@parse_output = {:parameter_list=>[{:parameter=>{:type=>"ref", :name=>"foo"}}]}
@transform_output = [s(:field, :ref, :foo)]
@parser = @parser.parameter_list
end
def test_parameter_list
@string_input = "int foo , ref bar"
@parse_output = {:parameter_list=>[{:parameter=>{:type=>"int", :name=>"foo"}}, {:parameter=>{:type=>"ref", :name=>"bar"}}]}
@transform_output = [s(:field, :int, :foo), s(:field, :ref, :bar)]
@parser = @parser.parameter_list
end
end