📄 annotationxworkconvertertest.java
字号:
assertNotNull(floats); assertTrue(Arrays.equals(new Float[]{new Float(123), new Float(456)}, floats)); Boolean[] booleans = (Boolean[]) converter.convertValue(context, null, null, null, new String[]{ "true", "false" }, Boolean[].class); assertNotNull(booleans); assertTrue(Arrays.equals(new Boolean[]{Boolean.TRUE, Boolean.FALSE}, booleans)); } public void testStringArrayToPrimitives() throws OgnlException { long[] longs = (long[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, long[].class); assertNotNull(longs); assertTrue(Arrays.equals(new long[]{123, 456}, longs)); int[] ints = (int[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, int[].class); assertNotNull(ints); assertTrue(Arrays.equals(new int[]{123, 456}, ints)); double[] doubles = (double[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, double[].class); assertNotNull(doubles); assertTrue(Arrays.equals(new double[]{123, 456}, doubles)); float[] floats = (float[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, float[].class); assertNotNull(floats); assertTrue(Arrays.equals(new float[]{123, 456}, floats)); boolean[] booleans = (boolean[]) converter.convertValue(context, null, null, null, new String[]{ "true", "false" }, boolean[].class); assertNotNull(booleans); assertTrue(Arrays.equals(new boolean[]{true, false}, booleans)); } public void testStringArrayToSet() { Set list = new HashSet(); list.add("foo"); list.add("bar"); list.add("baz"); assertEquals(list, converter.convertValue(context, null, null, null, new String[]{ "foo", "bar", "bar", "baz" }, Set.class)); } // TODO: Fixme... This test does not work with GenericsObjectDeterminer! public void testStringToCollectionConversion() { ValueStack stack = ValueStackFactory.getFactory().createValueStack(); Map stackContext = stack.getContext(); stackContext.put(InstantiatingNullHandler.CREATE_NULL_OBJECTS, Boolean.TRUE); stackContext.put(XWorkMethodAccessor.DENY_METHOD_EXECUTION, Boolean.TRUE); stackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); AnnotationUser user = new AnnotationUser(); stack.push(user); stack.setValue("list", "asdf"); assertNotNull(user.getList()); assertEquals(1, user.getList().size()); assertEquals(String.class, user.getList().get(0).getClass()); assertEquals("asdf", user.getList().get(0)); } public void testStringToCustomTypeUsingCustomConverter() { // the converter needs to be registered as the Bar.class converter // it won't be detected from the Foo-conversion.properties // because the Foo-conversion.properties file is only used when converting a property of Foo converter.registerConverter(Bar.class.getName(), new FooBarConverter()); Bar bar = (Bar) converter.convertValue(null, null, null, null, "blah:123", Bar.class); assertNotNull("conversion failed", bar); assertEquals(123, bar.getSomethingElse()); assertEquals("blah", bar.getTitle()); } public void testStringToPrimitiveWrappers() { assertEquals(new Long(123), converter.convertValue(context, null, null, null, "123", Long.class)); assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", Integer.class)); assertEquals(new Double(123.5), converter.convertValue(context, null, null, null, "123.5", Double.class)); assertEquals(new Float(123.5), converter.convertValue(context, null, null, null, "123.5", float.class)); assertEquals(new Boolean(false), converter.convertValue(context, null, null, null, "false", Boolean.class)); assertEquals(new Boolean(true), converter.convertValue(context, null, null, null, "true", Boolean.class)); } public void testStringToPrimitives() { assertEquals(new Long(123), converter.convertValue(context, null, null, null, "123", long.class)); assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", int.class)); assertEquals(new Double(123.5), converter.convertValue(context, null, null, null, "123.5", double.class)); assertEquals(new Float(123.5), converter.convertValue(context, null, null, null, "123.5", float.class)); assertEquals(new Boolean(false), converter.convertValue(context, null, null, null, "false", boolean.class)); assertEquals(new Boolean(true), converter.convertValue(context, null, null, null, "true", boolean.class)); assertEquals(new BigDecimal(123.5), converter.convertValue(context, null, null, null, "123.5", BigDecimal.class)); assertEquals(new BigInteger("123"), converter.convertValue(context, null, null, null, "123", BigInteger.class)); } public void testValueStackWithTypeParameter() { ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.push(new Foo1()); Bar1 bar = (Bar1) stack.findValue("bar", Bar1.class); assertNotNull(bar); } public void testGenericProperties() { GenericsBean gb = new GenericsBean(); ValueStack stack = ac.getValueStack(); stack.push(gb); String[] value = new String[] {"123.12", "123.45"}; stack.setValue("doubles", value); assertEquals(2, gb.getDoubles().size()); assertEquals(Double.class, gb.getDoubles().get(0).getClass()); assertEquals(new Double(123.12), gb.getDoubles().get(0)); assertEquals(new Double(123.45), gb.getDoubles().get(1)); } public void testGenericPropertiesFromField() { GenericsBean gb = new GenericsBean(); ValueStack stack = ac.getValueStack(); stack.push(gb); stack.setValue("genericMap[123.12]", "66"); stack.setValue("genericMap[456.12]", "42"); assertEquals(2, gb.getGenericMap().size()); assertEquals(Integer.class, stack.findValue("genericMap.get(123.12).class")); assertEquals(Integer.class, stack.findValue("genericMap.get(456.12).class")); assertEquals(66, stack.findValue("genericMap.get(123.12)")); assertEquals(42, stack.findValue("genericMap.get(456.12)")); assertEquals(true, stack.findValue("genericMap.containsValue(66)")); assertEquals(true, stack.findValue("genericMap.containsValue(42)")); assertEquals(true, stack.findValue("genericMap.containsKey(123.12)")); assertEquals(true, stack.findValue("genericMap.containsKey(456.12)")); } public void testGenericPropertiesFromSetter() { GenericsBean gb = new GenericsBean(); ValueStack stack = ac.getValueStack(); stack.push(gb); stack.setValue("genericMap[123.12]", "66"); stack.setValue("genericMap[456.12]", "42"); assertEquals(2, gb.getGenericMap().size()); assertEquals(Integer.class, stack.findValue("genericMap.get(123.12).class")); assertEquals(Integer.class, stack.findValue("genericMap.get(456.12).class")); assertEquals(66, stack.findValue("genericMap.get(123.12)")); assertEquals(42, stack.findValue("genericMap.get(456.12)")); assertEquals(true, stack.findValue("genericMap.containsValue(66)")); assertEquals(true, stack.findValue("genericMap.containsValue(42)")); assertEquals(true, stack.findValue("genericMap.containsKey(123.12)")); assertEquals(true, stack.findValue("genericMap.containsKey(456.12)")); } public void testGenericPropertiesFromGetter() { GenericsBean gb = new GenericsBean(); ValueStack stack = ac.getValueStack(); stack.push(gb); assertEquals(1, gb.getGetterList().size()); assertEquals(Double.class, stack.findValue("getterList.get(0).class")); assertEquals(new Double(42.42), stack.findValue("getterList.get(0)")); assertEquals(new Double(42.42), gb.getGetterList().get(0)); } // FIXME: Implement nested Generics such as: List of Generics List, Map of Generic keys/values, etc... public void no_testGenericPropertiesWithNestedGenerics() { GenericsBean gb = new GenericsBean(); ValueStack stack = ac.getValueStack(); stack.push(gb); stack.setValue("extendedMap[123.12]", new String[] {"1", "2", "3", "4"}); stack.setValue("extendedMap[456.12]", new String[] {"5", "6", "7", "8", "9"}); System.out.println("gb.getExtendedMap(): " + gb.getExtendedMap()); assertEquals(2, gb.getExtendedMap().size()); System.out.println(stack.findValue("extendedMap")); assertEquals(4, stack.findValue("extendedMap.get(123.12).size")); assertEquals(5, stack.findValue("extendedMap.get(456.12).size")); assertEquals("1", stack.findValue("extendedMap.get(123.12).get(0)")); assertEquals("5", stack.findValue("extendedMap.get(456.12).get(0)")); assertEquals(Integer.class, stack.findValue("extendedMap.get(123.12).get(0).class")); assertEquals(Integer.class, stack.findValue("extendedMap.get(456.12).get(0).class")); assertEquals(List.class, stack.findValue("extendedMap.get(123.12).class")); assertEquals(List.class, stack.findValue("extendedMap.get(456.12).class")); } public static class Foo1 { public Bar1 getBar() { return new Bar1Impl(); } } public interface Bar1 { } public static class Bar1Impl implements Bar1 { } protected void setUp() throws Exception { ObjectFactory.setObjectFactory(new ObjectFactory()); configurationManager = new ConfigurationManager(); converter = XWorkConverter.getInstance(); configurationManager.destroyConfiguration(); ValueStack stack = ValueStackFactory.getFactory().createValueStack(); ac = new ActionContext(stack.getContext()); ac.setLocale(Locale.US); ActionContext.setContext(ac); context = ac.getContextMap(); } protected void tearDown() throws Exception { XWorkConverter.resetInstance(); ActionContext.setContext(null); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -