01: package org.vraptor.converter;
02:
03: import java.util.Arrays;
04:
05: import org.vraptor.AbstractTest;
06: import org.vraptor.LogicRequest;
07: import org.vraptor.annotations.Conversion;
08: import org.vraptor.converter.basic.PrimitiveLongConverter;
09: import org.vraptor.converter.basic.StringConverter;
10:
11: public class ConverterRepositoryTest extends AbstractTest {
12:
13: public static class OverridenStringConverter implements Converter {
14:
15: public Object convert(String value, Class<?> type,
16: LogicRequest context) throws ConversionException {
17: return String.format("{%s}", value);
18: }
19:
20: public Class<?>[] getSupportedTypes() {
21: return new Class[] { String.class };
22: }
23:
24: }
25:
26: @SuppressWarnings("unused")
27: @Conversion(OverridenStringConverter.class)
28: private String overridenTest;
29:
30: private SimpleConverterManager repository = new SimpleConverterManager();
31:
32: public ConverterRepositoryTest() {
33: repository.register(new StringConverter());
34: repository.register(new PrimitiveLongConverter());
35: }
36:
37: public void testOverridenConverter() throws ConversionException,
38: SecurityException, NoSuchFieldException {
39: LogicRequest context = createLogicRequest();
40: assertTrue(repository.convert(new String[] { "test" }, "test",
41: String.class, context, OverridenStringConverter.class)
42: .equals("{test}"));
43: }
44:
45: public void testValidArrayConverter() throws ConversionException {
46: LogicRequest context = createLogicRequest();
47: String[] value = new String[] { "10", "1" };
48: long[] expected = new long[] { 10, 1 };
49: assertTrue(Arrays.equals((long[]) repository.convert(value,
50: "10,1", expected.getClass(), context, null), expected));
51: }
52:
53: public void testTwoValidConverters() throws ConversionException {
54: LogicRequest context = createLogicRequest();
55: assertEquals("oi", repository.convert(new String[] { "oi" },
56: "oi", String.class, context, null));
57: assertEquals(1000L, repository.convert(new String[] { "1000" },
58: "1000", long.class, context, null));
59: }
60:
61: public void testTryUnknownArrayConverter() {
62: LogicRequest context = createLogicRequest();
63: ConverterRepositoryTest[] expected = new ConverterRepositoryTest[] {};
64: try {
65: repository.convert(new String[] { "10", "1" }, "10,1",
66: expected.getClass(), context, null);
67: fail();
68: } catch (ConversionException e) {
69: // ok
70: }
71: }
72:
73: public void testUnknownConverter() {
74: LogicRequest context = createLogicRequest();
75: try {
76: repository.convert(new String[] { "10", "1" }, "10,1",
77: ConverterRepositoryTest.class, context, null);
78: fail();
79: } catch (ConversionException e) {
80: // ok
81: }
82: }
83:
84: }
|