📄 xworkconvertertest.java
字号:
context.put(ActionContext.LOCALE, Locale.US); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123.12", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", Integer.class)); assertEquals(new Integer(1234), converter.convertValue(context, null, null, null, "1,234", Integer.class)); // WRONG: locale separator is wrongly placed assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "1,23", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", Integer.class)); context.put(ActionContext.LOCALE, Locale.GERMANY); // WRONG: locale separator is wrongly placed assertEquals(new Integer(12312), converter.convertValue(context, null, null, null, "123.12", Integer.class)); assertEquals(new Integer(1234), converter.convertValue(context, null, null, null, "1.234", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,23", Integer.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", Integer.class)); } public void testStringToPrimitiveDouble() { assertEquals(new Double(123), converter.convertValue(context, null, null, null, "123", double.class)); context.put(ActionContext.LOCALE, Locale.US); assertEquals(new Double(123.12), converter.convertValue(context, null, null, null, "123.12", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,23", double.class)); assertEquals(new Double(1.234), converter.convertValue(context, null, null, null, "1.234", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", double.class)); context.put(ActionContext.LOCALE, Locale.GERMANY); assertEquals(new Double(123.12), converter.convertValue(context, null, null, null, "123.12", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,23", double.class)); assertEquals(new Double(1.234), converter.convertValue(context, null, null, null, "1.234", double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", double.class)); } public void testStringToDouble() { assertEquals(new Double(123), converter.convertValue(context, null, null, null, "123", Double.class)); context.put(ActionContext.LOCALE, Locale.US); assertEquals(new Double(123.12), converter.convertValue(context, null, null, null, "123.12", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", Double.class)); assertEquals(new Double(1234), converter.convertValue(context, null, null, null, "1,234", Double.class)); assertEquals(new Double(1234.12), converter.convertValue(context, null, null, null, "1,234.12", Double.class)); // WRONG: locale separator is wrongly placed assertEquals(new Double(123), converter.convertValue(context, null, null, null, "1,23", Double.class)); assertEquals(new Double(1.234), converter.convertValue(context, null, null, null, "1.234", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1.234,12", Double.class)); context.put(ActionContext.LOCALE, Locale.GERMANY); // WRONG: locale separator is wrongly placed assertEquals(new Double(12312), converter.convertValue(context, null, null, null, "123.12", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "123aa", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "aa123", Double.class)); assertEquals(new Double(1.234), converter.convertValue(context, null, null, null, "1,234", Double.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, null, null, null, "1,234.12", Double.class)); assertEquals(new Double(1.23), converter.convertValue(context, null, null, null, "1,23", Double.class)); assertEquals(new Double(1234), converter.convertValue(context, null, null, null, "1.234", Double.class)); assertEquals(new Double(1234.12), converter.convertValue(context, null, null, null, "1.234,12", Double.class)); } // Testing for null result on non-primitive Number types supplied as empty String or public void testNotPrimitiveDefaultsToNull() { assertEquals(null, converter.convertValue(context, null, null, null, null, Double.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Double.class)); assertEquals(null, converter.convertValue(context, null, null, null, null, Integer.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Integer.class)); assertEquals(null, converter.convertValue(context, null, null, null, null, Float.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Float.class)); assertEquals(null, converter.convertValue(context, null, null, null, null, Character.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Character.class)); assertEquals(null, converter.convertValue(context, null, null, null, null, Long.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Long.class)); assertEquals(null, converter.convertValue(context, null, null, null, null, Short.class)); assertEquals(null, converter.convertValue(context, null, null, null, "", Short.class)); } public void testConvertChar() { assertEquals(new Character('A'), converter.convertValue(context, "A", char.class)); assertEquals(new Character('Z'), converter.convertValue(context, "Z", char.class)); assertEquals(new Character('A'), converter.convertValue(context, "A", Character.class)); assertEquals(new Character('Z'), converter.convertValue(context, "Z", Character.class)); assertEquals(new Character('A'), converter.convertValue(context, new Character('A'), char.class)); assertEquals(new Character('Z'), converter.convertValue(context, new Character('Z'), char.class)); assertEquals(new Character('A'), converter.convertValue(context, new Character('A'), Character.class)); assertEquals(new Character('Z'), converter.convertValue(context, new Character('Z'), Character.class)); assertEquals(new Character('D'), converter.convertValue(context, "DEF", char.class)); assertEquals(new Character('X'), converter.convertValue(context, "XYZ", Character.class)); assertEquals(new Character(' '), converter.convertValue(context, " ", Character.class)); assertEquals(new Character(' '), converter.convertValue(context, " ", char.class)); assertEquals(null, converter.convertValue(context, "", char.class)); } public void testConvertClass() { Class clazz = (Class) converter.convertValue(context, "java.util.Date", Class.class); assertEquals(Date.class.getName(), clazz.getName()); Class clazz2 = (Class) converter.convertValue(context, "com.opensymphony.xwork2.util.Bar", Class.class); assertEquals(Bar.class.getName(), clazz2.getName()); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, "com.opensymphony.xwork2.util.IDoNotExist", Class.class)); assertEquals(OgnlRuntime.NoConversionPossible, converter.convertValue(context, new Bar(), Class.class)); // only supports string values } public void testConvertBoolean() { assertEquals(Boolean.TRUE, converter.convertValue(context, "true", Boolean.class)); assertEquals(Boolean.FALSE, converter.convertValue(context, "false", Boolean.class)); assertEquals(Boolean.TRUE, converter.convertValue(context, Boolean.TRUE, Boolean.class)); assertEquals(Boolean.FALSE, converter.convertValue(context, Boolean.FALSE, Boolean.class)); assertEquals(null, converter.convertValue(context, null, Boolean.class)); assertEquals(Boolean.TRUE, converter.convertValue(context, new Bar(), Boolean.class)); // Ognl converter will default to true } public void testConvertPrimitiveArraysToString() { assertEquals("2, 3, 1", converter.convertValue(context, new int[]{2, 3, 1}, String.class)); assertEquals("100, 200, 300", converter.convertValue(context, new long[]{100, 200, 300}, String.class)); assertEquals("1.5, 2.5, 3.5", converter.convertValue(context, new double[]{1.5, 2.5, 3.5}, String.class)); assertEquals("true, false, true", converter.convertValue(context, new boolean[]{true, false, true}, String.class)); } public void testConvertSameCollectionToCollection() { Collection names = new ArrayList(); names.add("XWork"); names.add("Struts"); Collection col = (Collection) converter.convertValue(context, names, Collection.class); assertSame(names, col); } public void testConvertSqlTimestamp() { assertNotNull(converter.convertValue(context, new Timestamp(new Date().getTime()), String.class)); assertNotNull(converter.convertValue(null, new Timestamp(new Date().getTime()), String.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 testNestedConverters() { OgnlValueStack stack = new OgnlValueStack(); Cat cat = new Cat(); cat.setFoo(new Foo()); stack.push(cat); stack.setValue("foo.number", "123"); assertEquals(321, cat.getFoo().getNumber()); } 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(); ActionContext 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 + -