📄 xworkconvertertest.java
字号:
Bar b = (Bar) o; assertEquals(value, b.getTitle() + ":" + b.getSomethingElse()); } public void testLocalizedDateConversion() throws Exception { Date date = new Date(System.currentTimeMillis()); Locale locale = Locale.GERMANY; DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); String dateString = df.format(date); context.put(ActionContext.LOCALE, locale); assertEquals(dateString, converter.convertValue(context, null, null, null, date, String.class)); } public void testStringToIntConversions() { SimpleAction action = new SimpleAction(); action.setBean(new TestBean()); ValueStack stack = ValueStackFactory.getFactory().createValueStack(); stack.push(action); Map ognlStackContext = stack.getContext(); ognlStackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); assertEquals("Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action.getBean(), null, "count", "111.1", int.class)); stack.pop(); Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS); assertNotNull(conversionErrors); assertTrue(conversionErrors.size() == 1); } public void testStringArrayToCollection() { List list = new ArrayList(); list.add("foo"); list.add("bar"); list.add("baz"); assertEquals(list, converter.convertValue(context, null, null, null, new String[]{ "foo", "bar", "baz" }, Collection.class)); } public void testStringArrayToList() { List list = new ArrayList(); list.add("foo"); list.add("bar"); list.add("baz"); assertEquals(list, converter.convertValue(context, null, null, null, new String[]{ "foo", "bar", "baz" }, List.class)); } public void testStringArrayToPrimitiveWrappers() { Long[] longs = (Long[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, Long[].class); assertNotNull(longs); assertTrue(Arrays.equals(new Long[]{new Long(123), new Long(456)}, longs)); Integer[] ints = (Integer[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, Integer[].class); assertNotNull(ints); assertTrue(Arrays.equals(new Integer[]{ new Integer(123), new Integer(456) }, ints)); Double[] doubles = (Double[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, Double[].class); assertNotNull(doubles); assertTrue(Arrays.equals(new Double[]{new Double(123), new Double(456)}, doubles)); Float[] floats = (Float[]) converter.convertValue(context, null, null, null, new String[]{ "123", "456" }, Float[].class); 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)); } 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); User user = new User(); 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 testRegisterCustomConverter() { converter.registerConverter(Boolean.class.getName(), new MyBooleanConverter()); Boolean value = (Boolean) converter.convertValue(null, null, null, null, "Y", Boolean.class); assertNotNull("conversion failed", value); assertEquals(Boolean.TRUE, value); } 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 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 testStringToInt() { assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", int.class)); context.put(ActionContext.LOCALE, Locale.US); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123.12", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,23", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", int.class)); context.put(ActionContext.LOCALE, Locale.GERMANY); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123.12", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,23", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234", int.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", int.class)); } public void testStringToInteger() { assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", Integer.class));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -