package tests.antlrParsers.functionParser;
import static org.junit.Assert.assertTrue;
import org.antlr.v4.runtime.tree.ParseTree;
import org.junit.Test;
import parsing.FunctionParser;
public class FunctionCallTests extends FunctionParserTestBase
{
@Test
public void testFunctionCall()
{
String input = "foo(x);";
FunctionParser functionParser = createFunctionParser();
ParseTree tree = functionParser.parseString(input);
String output = tree.toStringTree(functionParser.getAntlrParser());
assertTrue(output.contains("function_argument_list"));
}
@Test
public void testTwoParameters()
{
String input = "foo(x,y);";
FunctionParser functionParser = createFunctionParser();
ParseTree tree = functionParser.parseString(input);
String output = tree.toStringTree(functionParser.getAntlrParser());
assertTrue(output.contains(", (function_argument"));
}
@Test
public void testCallViaPtr()
{
String input = "ptr->foo(x);";
FunctionParser functionParser = createFunctionParser();
ParseTree tree = functionParser.parseString(input);
String output = tree.toStringTree(functionParser.getAntlrParser());
assertTrue(output.contains("function_argument_list"));
}
@Test
public void testCallWithExprInArg()
{
String input = "foo(x == 1, x++);";
FunctionParser functionParser = createFunctionParser();
ParseTree tree = functionParser.parseString(input);
String output = tree.toStringTree(functionParser.getAntlrParser());
assertTrue(output.contains("function_argument_list"));
}
}