⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parentargsparsertest.java

📁 Jamon是一个Java文本模板引擎
💻 JAVA
字号:
package org.jamon.parser;import static org.junit.Assert.*;import java.io.IOException;import org.jamon.ParserErrors;import org.jamon.node.AbstractNode;import org.jamon.node.ArgNameNode;import org.jamon.node.ArgValueNode;import org.jamon.node.Location;import org.jamon.node.ParentArgNode;import org.jamon.node.ParentArgWithDefaultNode;import org.jamon.node.ParentArgsNode;import org.junit.Test;public class ParentArgsParserTest extends AbstractParserTest{    private static String PARENT_ARGS_START = ">";    private static String PARENT_ARGS_END = "</%xargs>";    @Override protected AbstractNode parse(String p_text) throws IOException    {        final PositionalPushbackReader reader = makeReader(p_text);        ParserErrors errors = new ParserErrors();        ParentArgsNode result = new ParentArgsParser(reader, errors, START_LOC).getParentArgsNode();        if (errors.hasErrors())        {            throw errors;        }        else        {            return result;        }    }    private static ParentArgsNode parentArgsNode()    {        return new ParentArgsNode(START_LOC);    }    private static ParentArgNode parentArgNode(int p_line, int p_column, String p_name) {        Location location = location(p_line, p_column);        return new ParentArgNode(location, new ArgNameNode(location, p_name));    }    private static ParentArgNode parentArgWithDefaultNode(        int p_nameLine, int p_nameColumn, String p_name,        int p_valueLine, int p_valueColumn, String p_value) {        Location location = location(p_nameLine, p_nameColumn);        return new ParentArgWithDefaultNode(            location,            new ArgNameNode(location, p_name),            new ArgValueNode(location(p_valueLine, p_valueColumn), p_value));    }    @Test public void testNoXargs() throws Exception {        assertEquals(parentArgsNode(), parse(PARENT_ARGS_START + PARENT_ARGS_END));        assertEquals(parentArgsNode(), parse(PARENT_ARGS_START + " \t\r\n" + PARENT_ARGS_END));    }    @Test public void testSomeXargs() throws Exception {        assertEquals(            parentArgsNode().addArg(parentArgNode(1, 2, "foo")).addArg(parentArgNode(2, 1, "bar")),            parse(PARENT_ARGS_START + "foo;\nbar ; " + PARENT_ARGS_END));    }    @Test public void testOptionalXarg() throws Exception {        assertEquals(            parentArgsNode().addArg(parentArgWithDefaultNode(1, 2, "x", 1, 4, "3")),            parse(PARENT_ARGS_START + "x=3;" + PARENT_ARGS_END));    }    @Test public void testNoSemiAfterXarg() throws Exception {        assertError(            PARENT_ARGS_START + "x" + PARENT_ARGS_END,            1, 3, OptionalValueTagEndDetector.NEED_SEMI_OR_ARROW);    }    @Test public void testNoSemiAfterXargWithDefault() throws Exception {        assertError(            PARENT_ARGS_START + "x=3" + PARENT_ARGS_END,            1, 4, AbstractParser.eofErrorMessage(";"));    }    @Test public void testXargWithSimpleType() throws Exception {        assertError(            PARENT_ARGS_START + "a c;" + PARENT_ARGS_END,            1, 4, OptionalValueTagEndDetector.NEED_SEMI_OR_ARROW);    }    @Test public void testXargWithFullyScopedType() throws Exception {        assertError(            PARENT_ARGS_START + "a.b c;" + PARENT_ARGS_END,            1, 3, OptionalValueTagEndDetector.NEED_SEMI_OR_ARROW);    }    public static junit.framework.Test suite()    {        return new junit.framework.JUnit4TestAdapter(ParentArgsParserTest.class);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -