aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core/src/test/java/org/apache/velocity
diff options
context:
space:
mode:
authorClaude Brisson <cbrisson@apache.org>2018-10-17 15:13:08 +0000
committerClaude Brisson <cbrisson@apache.org>2018-10-17 15:13:08 +0000
commit087f6f6b200664a12e3748eccdae1489d6709787 (patch)
treeb7069e976df61a65a10a01d79dba76840f68aebc /velocity-engine-core/src/test/java/org/apache/velocity
parent4a86b6d5482a2cf20c7f2266172e83edaa743965 (diff)
downloadapache-velocity-engine-087f6f6b200664a12e3748eccdae1489d6709787.tar.gz
[VELOCITY-892] Conversions towards types done
git-svn-id: https://svn.apache.org/repos/asf/velocity/engine/branches/VELOCITY-892@1844123 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'velocity-engine-core/src/test/java/org/apache/velocity')
-rw-r--r--velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/ConversionHandlerTestCase.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/ConversionHandlerTestCase.java b/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/ConversionHandlerTestCase.java
index 21442b92..87ec9995 100644
--- a/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/ConversionHandlerTestCase.java
+++ b/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/ConversionHandlerTestCase.java
@@ -19,6 +19,7 @@
package org.apache.velocity.test.util.introspection;
import junit.framework.TestSuite;
+import org.apache.commons.lang3.reflect.TypeUtils;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
@@ -41,6 +42,8 @@ import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.Writer;
+import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -123,11 +126,33 @@ public class ConversionHandlerTestCase extends BaseTestCase
return 4.5f;
}
});
+ ch.addConverter(TypeUtils.parameterize(List.class, Integer.class), String.class, new Converter<List<Integer>>()
+ {
+ @Override
+ public List<Integer> convert(Object o)
+ {
+ return Arrays.<Integer>asList(1,2,3);
+ }
+ });
+ ch.addConverter(TypeUtils.parameterize(List.class, String.class), String.class, new Converter<List<String>>()
+ {
+ @Override
+ public List<String> convert(Object o)
+ {
+ return Arrays.<String>asList("a", "b", "c");
+ }
+ });
VelocityContext context = new VelocityContext();
context.put("obj", new Obj());
Writer writer = new StringWriter();
ve.evaluate(context, writer, "test", "$obj.integralFloat($obj) / $obj.objectFloat($obj)");
assertEquals("float ok: 4.5 / Float ok: 4.5", writer.toString());
+ writer = new StringWriter();
+ ve.evaluate(context, writer, "test", "$obj.iWantAStringList('anything')");
+ assertEquals("correct", writer.toString());
+ writer = new StringWriter();
+ ve.evaluate(context, writer, "test", "$obj.iWantAnIntegerList('anything')");
+ assertEquals("correct", writer.toString());
}
/**
@@ -291,6 +316,20 @@ public class ConversionHandlerTestCase extends BaseTestCase
public String objectEnum(Color c) { return "Enum ok: " + c; }
public String toString() { return "instance of Obj"; }
+
+ public String iWantAStringList(List<String> list)
+ {
+ if (list != null && list.size() == 3 && list.get(0).equals("a") && list.get(1).equals("b") && list.get(2).equals("c"))
+ return "correct";
+ else return "wrong";
+ }
+
+ public String iWantAnIntegerList(List<Integer> list)
+ {
+ if (list != null && list.size() == 3 && list.get(0).equals(1) && list.get(1).equals(2) && list.get(2).equals(3))
+ return "correct";
+ else return "wrong";
+ }
}
public static class Introspect