spec/parser/function_definitions_spec.rb in gobstones-0.0.1.1 vs spec/parser/function_definitions_spec.rb in gobstones-0.0.2

- old
+ new

@@ -1,50 +1,45 @@ describe Gobstones::Parser, "function definitions" do - it "should parse a function without args and a single return" do - args = VarTuple.new [] + it "parses a function without args and a single return" do func_return = ReturnFromFunction.new [42.to_gbs_num] - func_def = Function.new 'just42', args, CmdBlock.new([]), func_return + func_def = Function.new 'just42', no_arguments, empty_body, func_return expect('function just42() { return (42) }'). to be_parsed_as(:definition).and_return(func_def) end - it "should parse a function with some args" do - first_arg = VarName.new 'firstArg' - second_arg = VarName.new 'secondArg' - third_arg = VarName.new 'thirdArg' - args = VarTuple.new [first_arg, second_arg, third_arg] - body = - return_st = ReturnFromFunction.new [Verde.new, PuedeMover.new(Norte.new)] - func_def = Function.new 'myCoolFunction', args, CmdBlock.new([]), return_st + it "parses a function with some args" do + args = VarTuple.new ['firstArg'.to_var_name, 'secondArg'.to_var_name, 'thirdArg'.to_var_name] + return_st = ReturnFromFunction.new [verde, PuedeMover.new(norte)] + func_def = Function.new 'myCoolFunction', args, empty_body, return_st expect('function myCoolFunction (firstArg, secondArg, thirdArg) { return (Verde, puedeMover(Norte)) }').to be_parsed_as(:definition).and_return(func_def) end - it "should parse a function with some statements" do - args = VarTuple.new [VarName.new('arg')] - body = CmdBlock.new [Poner.new(Verde.new)] - return_st = ReturnFromFunction.new [True.new] + it "parses a function with some statements" do + args = VarTuple.new ['arg'.to_var_name] + body = CommandBlock.new [Poner.new(verde)] + return_st = ReturnFromFunction.new [true_value] func_def = Function.new 'myFunc', args, body, return_st expect('function myFunc(arg) { Poner(Verde) return (True) }').to be_parsed_as(:definition).and_return(func_def) end - it "should not parse a function without a valid identifier" do + it "does not parse a function without a valid identifier" do expect('function MyWrongFunc() { return(True) }'). to be_parsed_as(:definition).and_fail end - it "should not parse a function without a return statement" do + it "does not parse a function without a return statement" do expect('function myFuncWithoutReturn() { }'). to be_parsed_as(:definition).and_fail end -end \ No newline at end of file +end