package org.simpleframework.xml.strategy; import java.net.URI; import java.util.HashMap; import junit.framework.TestCase; import org.simpleframework.xml.Element; import org.simpleframework.xml.ElementList; import org.w3c.dom.Node; public class PackageParserTest extends TestCase { private static final int ITERATIONS = 100000; /* * javax.xml.namespace.NamespaceContext.getNamespaceURI(String prefix) * * e.g * * String reference = context.getNamespaceURI("class") * Class type = parser.parse(reference); * * <element xmlns:class='http://util.java/ArrayList'> * <name>name</name> * <value>value</value> * </element> * */ public void testParser() throws Exception { assertEquals("http://util.java/HashMap", parse(HashMap.class)); assertEquals("http://simpleframework.org/xml/Element", parse(Element.class)); assertEquals("http://simpleframework.org/xml/ElementList", parse(ElementList.class)); assertEquals("http://w3c.org/dom/Node", parse(Node.class)); assertEquals("http://simpleframework.org/xml/strategy/PackageParser", parse(PackageParser.class)); assertEquals(HashMap.class, revert("http://util.java/HashMap")); assertEquals(Element.class, revert("http://simpleframework.org/xml/Element")); assertEquals(ElementList.class, revert("http://simpleframework.org/xml/ElementList")); assertEquals(Node.class, revert("http://w3c.org/dom/Node")); assertEquals(PackageParser.class, revert("http://simpleframework.org/xml/strategy/PackageParser")); long start = System.currentTimeMillis(); for(int i = 0; i < ITERATIONS; i++) { fastParse(ElementList.class); } long fast = System.currentTimeMillis() - start; start = System.currentTimeMillis(); for(int i = 0; i < ITERATIONS; i++) { parse(ElementList.class); } long normal = System.currentTimeMillis() - start; System.out.printf("fast=%sms normal=%sms diff=%s%n", fast, normal, normal / fast); } public String fastParse(Class type) throws Exception { return new PackageParser().parse(type); } public String parse(Class type) throws Exception { return new PackageParser().parse(type); } public Class revert(String type) throws Exception { return new PackageParser().revert(type); } }