Author: tchemit Date: 2010-04-26 18:06:36 +0200 (Mon, 26 Apr 2010) New Revision: 1854 Log: add tests for multiJXPath with parentheses Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java =================================================================== --- trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java 2010-04-23 08:15:07 UTC (rev 1853) +++ trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java 2010-04-26 16:06:36 UTC (rev 1854) @@ -110,6 +110,16 @@ } @Test + public void testDecoratorEspcapeCharacters() throws Exception { + + decorator = DecoratorUtils.newJXPathDecorator(JXPathDecorator.class, "(${expression}$s) - ${nbToken}$d"); + assertEquals("(%1$s) - %2$d", decorator.getExpression()); + String s = decorator.toString(decorator); + System.out.println("s="+s); + assertDecoratorInternal(); + + } + @Test public void testSort() throws Exception { List<Data> datas = Data.generate(10); Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java =================================================================== --- trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java 2010-04-23 08:15:07 UTC (rev 1853) +++ trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java 2010-04-26 16:06:36 UTC (rev 1854) @@ -25,7 +25,6 @@ package jaxx.runtime.decorator; import org.junit.After; -import static org.junit.Assert.assertEquals; import org.junit.Test; import java.util.ArrayList; @@ -33,14 +32,18 @@ import java.util.Comparator; import java.util.List; -/** +import static org.junit.Assert.assertEquals; + +/** * @author tchemit <chemit@codelutin.com> * @since 1.7.2 (was previously {@code jaxx.runtime.MultiJXPathDecoratorTest}). */ public class MultiJXPathDecoratorTest { protected MultiJXPathDecorator<?> decorator; + protected String expected; + protected String result; @After @@ -130,7 +133,49 @@ assertEquals(expected, result); } + @Test + public void testDecoratorEspcapeCharacters() throws Exception { + + decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "(${expression}$s)#${nbToken}$d", "#", " - "); + assertEquals("(%1$s) - %2$d", decorator.getExpression()); + assertTokens("expression", "nbToken"); + assertEquals(2, decorator.contexts.length); + expected = String.format(decorator.getExpression(), decorator.getExpression(), decorator.getNbToken()); + result = decorator.toString(decorator); + System.out.println("s=" + result); + assertEquals(expected, result); + + decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "${nbToken}$d#(${expression}$s)", "#", " - "); + assertEquals("%1$d - (%2$s)", decorator.getExpression()); + assertTokens("nbToken", "expression"); + assertEquals(2, decorator.contexts.length); + expected = String.format(decorator.getExpression(), decorator.getNbToken(), decorator.getExpression()); + result = decorator.toString(decorator); + System.out.println("s=" + result); + assertEquals(expected, result); + + DecoratorProvider provider = new DecoratorProvider() { + + @Override + protected void loadDecorators() { + } + + }; + provider.registerMultiJXPathDecorator(MultiJXPathDecorator.class, "(${expression}$s)#${nbToken}$d", "#", " - "); + decorator = (MultiJXPathDecorator<?>) provider.getDecorator(MultiJXPathDecorator.class); + + assertEquals("(%1$s) - %2$d", decorator.getExpression()); + assertTokens("expression", "nbToken"); + assertEquals(2, decorator.contexts.length); + expected = String.format(decorator.getExpression(), decorator.getExpression(), decorator.getNbToken()); + result = decorator.toString(decorator); + System.out.println("s=" + result); + assertEquals(expected, result); + + } + + @Test public void testMultiDecoratorWithMultiRef() throws Exception { decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "${expression}$s#${nbToken}$d#${separator}$s %3$s", "#", " - ");