templatedescribertest.java
来自「Jamon是一个Java文本模板引擎」· Java 代码 · 共 134 行
JAVA
134 行
/* * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Jamon code, released February, 2003. * * The Initial Developer of the Original Code is Ian Robertson. Portions * created by Ian Robertson are Copyright (C) 2003 Ian Robertson. All Rights * Reserved. * * Contributor(s): Jay Sachs */package org.jamon.integration;import java.io.File;import java.util.Iterator;import java.util.List;import java.util.Map;import junit.framework.TestCase;import org.jamon.FileTemplateSource;import org.jamon.codegen.FragmentArgument;import org.jamon.codegen.MethodUnit;import org.jamon.codegen.TemplateDescriber;import org.jamon.codegen.TemplateDescription;public class TemplateDescriberTest extends TestCase{ private TemplateDescriber m_describer; @Override public void setUp() throws Exception { File nonexistent = File.createTempFile("jamontest",null); nonexistent.deleteOnExit(); m_describer = new TemplateDescriber(new FileTemplateSource(nonexistent), getClass().getClassLoader()); } public void testJamonContext() throws Exception { TemplateDescription desc = m_describer.getTemplateDescription("/test/jamon/context/ContextCallee", null, null); assertEquals("org.jamon.integration.TestJamonContext", desc.getJamonContextType()); } public void testNoJamonContext() throws Exception { TemplateDescription desc = m_describer.getTemplateDescription("/test/jamon/ClassOnly", null, null); assertNull("", desc.getJamonContextType()); } public void testArgumentIntrospection() throws Exception { TemplateDescription desc = m_describer.getTemplateDescription("/test/jamon/ClassOnly", null, null); NameType.checkArgs( desc.getRequiredArgs().iterator(), new NameType("i", "int"), new NameType("j", "Integer")); NameType.checkArgs(desc.getOptionalArgs().iterator(), new NameType("foo", "String")); } public void testFragmentUnitIntrospection() throws Exception { List<FragmentArgument> fragmentUnitIntfs = m_describer.getTemplateDescription( "/test/jamon/ClassOnly", null, null) .getFragmentInterfaces(); assertEquals(2, fragmentUnitIntfs.size()); FragmentArgument f2 = fragmentUnitIntfs.get(0); FragmentArgument f1 = fragmentUnitIntfs.get(1); assertEquals("f1", f1.getName()); assertEquals("f2", f2.getName()); NameType[] p_nameTypes = { new NameType("k", "int"), new NameType("m", "Boolean[]"), new NameType("a1", "String"), new NameType("a4", "String"), new NameType("a2", "String"), new NameType("a3", "String"), new NameType("a5", "String") }; NameType.checkArgs(f1.getFragmentUnit().getRequiredArgs(), p_nameTypes); NameType[] p_nameTypes1 = {}; NameType.checkArgs(f2.getFragmentUnit().getRequiredArgs(), p_nameTypes1); } public void testMethodUnitIntrospection() throws Exception { Map<String, MethodUnit> methods = m_describer .getTemplateDescription("/test/jamon/ClassOnly", null, null) .getMethodUnits(); assertEquals(1, methods.size()); MethodUnit method = methods.get("m"); assertNotNull(method); assertEquals("m", method.getName()); NameType.checkArgs(method.getSignatureRequiredArgs(), new NameType("mi", "int")); NameType.checkArgs(method.getSignatureOptionalArgs(), new NameType("mj", "int")); Iterator<FragmentArgument> fragments = method.getFragmentArgs(); assertTrue(fragments.hasNext()); FragmentArgument frag = fragments.next(); assertTrue(! fragments.hasNext()); assertEquals("mf", frag.getName()); NameType[] p_nameTypes = { new NameType("mk", "int") }; NameType.checkArgs(frag.getFragmentUnit().getRequiredArgs(), p_nameTypes); } public void checkGenericIntrospection() throws Exception { assertEquals( 3, m_describer.getTemplateDescription( "test/jamon/ClassOnly", null, null).getGenericParamsCount()); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?