mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-18 16:17:00 +07:00
62 lines
2.2 KiB
Java
62 lines
2.2 KiB
Java
package com.intellij.codeInsight.template;
|
|
|
|
import com.intellij.codeInsight.template.impl.*;
|
|
import com.intellij.codeInsight.template.macro.VariableOfTypeMacro;
|
|
import com.intellij.testFramework.LightIdeaTestCase;
|
|
|
|
/**
|
|
* @author yole
|
|
*/
|
|
public class MacroParserTest extends LightIdeaTestCase {
|
|
|
|
public void testEmpty() {
|
|
Expression e = MacroParser.parse("");
|
|
assertTrue(e instanceof ConstantNode);
|
|
assertEquals("", e.calculateResult(null).toString());
|
|
}
|
|
|
|
public void testFunction() {
|
|
Expression e = MacroParser.parse(" variableOfType( \"java.util.Collection\" ) ");
|
|
assertTrue(e instanceof MacroCallNode);
|
|
MacroCallNode n = (MacroCallNode) e;
|
|
assertTrue(n.getMacro() instanceof VariableOfTypeMacro);
|
|
Expression[] parameters = n.getParameters();
|
|
assertEquals(1, parameters.length);
|
|
assertTrue(parameters [0] instanceof ConstantNode);
|
|
ConstantNode cn = (ConstantNode) parameters [0];
|
|
assertEquals("java.util.Collection", cn.calculateResult(null).toString());
|
|
}
|
|
|
|
public void testVariable() {
|
|
Expression e = MacroParser.parse("variableOfType(E=\"t\")");
|
|
Expression[] parameters = ((MacroCallNode) e).getParameters();
|
|
assertEquals(1, parameters.length);
|
|
assertTrue(parameters [0] instanceof VariableNode);
|
|
VariableNode vn = (VariableNode) parameters [0];
|
|
assertEquals("E", vn.getName());
|
|
assertTrue(vn.getInitialValue() instanceof ConstantNode);
|
|
}
|
|
|
|
public void testEnd() {
|
|
Expression e = MacroParser.parse("END");
|
|
assertTrue(e instanceof EmptyNode);
|
|
}
|
|
|
|
public void testMultipleParams() {
|
|
Expression e = MacroParser.parse("variableOfType(\"A\", \"B\")");
|
|
assertTrue(e instanceof MacroCallNode);
|
|
MacroCallNode n = (MacroCallNode) e;
|
|
assertTrue(n.getMacro() instanceof VariableOfTypeMacro);
|
|
Expression[] parameters = n.getParameters();
|
|
assertEquals(2, parameters.length);
|
|
assertTrue(parameters [0] instanceof ConstantNode);
|
|
assertTrue(parameters [1] instanceof ConstantNode);
|
|
}
|
|
|
|
public void testSlashEscape() {
|
|
Expression e = MacroParser.parse("\"test\\\\test\\n\\t\\f\\x\"");
|
|
Result result = assertInstanceOf(e, ConstantNode.class).calculateResult(null);
|
|
assertEquals("test\\test\n\t\fx", assertInstanceOf(result, TextResult.class).getText());
|
|
}
|
|
}
|