mirror of
https://github.com/apache/struts.git
synced 2026-08-14 11:06:58 +00:00
WW-4789 WW-3788 Marks CONVERSION_ERRORS as deprecated on behalf using helper methods
This commit is contained in:
@@ -63,7 +63,7 @@ public class ActionContext implements Serializable {
|
||||
/**
|
||||
* Constant for the name of the action being executed.
|
||||
*
|
||||
* @deprecated used helper methods instead
|
||||
* @deprecated use helper methods instead
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String ACTION_NAME = "com.opensymphony.xwork2.ActionContext.name";
|
||||
@@ -100,16 +100,17 @@ public class ActionContext implements Serializable {
|
||||
|
||||
/**
|
||||
* Constant for the map of type conversion errors.
|
||||
* @deprecated use helper method instead
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String CONVERSION_ERRORS = "com.opensymphony.xwork2.ActionContext.conversionErrors";
|
||||
|
||||
|
||||
/**
|
||||
* Constant for the container
|
||||
*/
|
||||
public static final String CONTAINER = "com.opensymphony.xwork2.ActionContext.container";
|
||||
|
||||
private Map<String, Object> context;
|
||||
private final Map<String, Object> context;
|
||||
|
||||
/**
|
||||
* Creates a new ActionContext initialized with another context.
|
||||
@@ -128,6 +129,9 @@ public class ActionContext implements Serializable {
|
||||
* @return new ActionContext
|
||||
*/
|
||||
public static ActionContext of(Map<String, Object> context) {
|
||||
if (context == null) {
|
||||
throw new IllegalArgumentException("Context cannot be null!");
|
||||
}
|
||||
return new ActionContext(context);
|
||||
}
|
||||
|
||||
@@ -223,6 +227,7 @@ public class ActionContext implements Serializable {
|
||||
*
|
||||
* @return a Map of ServletContext or generic application level Map
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Map<String, Object> getApplication() {
|
||||
return (Map<String, Object>) get(APPLICATION);
|
||||
}
|
||||
@@ -258,8 +263,9 @@ public class ActionContext implements Serializable {
|
||||
* @return the map of conversion errors which occurred when executing the action or an empty map if
|
||||
* there were no errors.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Map<String, ConversionData> getConversionErrors() {
|
||||
Map<String, ConversionData> errors = (Map) get(CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> errors = (Map<String, ConversionData>) get(CONVERSION_ERRORS);
|
||||
|
||||
if (errors == null) {
|
||||
errors = withConversionErrors(new HashMap<>()).getConversionErrors();
|
||||
@@ -374,6 +380,7 @@ public class ActionContext implements Serializable {
|
||||
*
|
||||
* @return the Map of HttpSession values when in a servlet environment or a generic session map otherwise.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Map<String, Object> getSession() {
|
||||
return (Map<String, Object>) get(SESSION);
|
||||
}
|
||||
|
||||
@@ -442,11 +442,12 @@ public class XWorkConverter extends DefaultTypeConverter {
|
||||
realProperty = fullName;
|
||||
}
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) context.get(ActionContext.CONVERSION_ERRORS);
|
||||
ActionContext actionContext = ActionContext.of(context);
|
||||
Map<String, ConversionData> conversionErrors = actionContext.getConversionErrors();
|
||||
|
||||
if (conversionErrors == null) {
|
||||
conversionErrors = new HashMap<>();
|
||||
context.put(ActionContext.CONVERSION_ERRORS, conversionErrors);
|
||||
actionContext.withConversionErrors(conversionErrors);
|
||||
}
|
||||
|
||||
conversionErrors.put(realProperty, new ConversionData(value, toClass));
|
||||
|
||||
@@ -193,8 +193,9 @@ public class AliasInterceptor extends AbstractInterceptor {
|
||||
}
|
||||
}
|
||||
|
||||
if (clearableStack && (stack.getContext() != null) && (newStack.getContext() != null))
|
||||
stack.getContext().put(ActionContext.CONVERSION_ERRORS, newStack.getContext().get(ActionContext.CONVERSION_ERRORS));
|
||||
if (clearableStack) {
|
||||
stack.getActionContext().withConversionErrors(newStack.getActionContext().getConversionErrors());
|
||||
}
|
||||
} else {
|
||||
LOG.debug("invalid alias expression: {}", aliasesKey);
|
||||
}
|
||||
|
||||
@@ -216,8 +216,9 @@ public class ParametersInterceptor extends MethodFilterInterceptor {
|
||||
}
|
||||
}
|
||||
|
||||
if (clearableStack && (stack.getContext() != null) && (newStack.getContext() != null))
|
||||
stack.getContext().put(ActionContext.CONVERSION_ERRORS, newStack.getContext().get(ActionContext.CONVERSION_ERRORS));
|
||||
if (clearableStack) {
|
||||
stack.getActionContext().withConversionErrors(newStack.getActionContext().getConversionErrors());
|
||||
}
|
||||
|
||||
addParametersToContext(ActionContext.getContext(), acceptableParameters);
|
||||
}
|
||||
|
||||
+3
-2
@@ -188,8 +188,9 @@ public class StaticParametersInterceptor extends AbstractInterceptor {
|
||||
}
|
||||
}
|
||||
|
||||
if (clearableStack && (stack.getContext() != null) && (newStack.getContext() != null))
|
||||
stack.getContext().put(ActionContext.CONVERSION_ERRORS, newStack.getContext().get(ActionContext.CONVERSION_ERRORS));
|
||||
if (clearableStack) {
|
||||
stack.getActionContext().withConversionErrors(newStack.getActionContext().getConversionErrors());
|
||||
}
|
||||
|
||||
if (merge)
|
||||
addParametersToContext(ac, parameters);
|
||||
|
||||
+37
-37
@@ -24,8 +24,6 @@ import com.opensymphony.xwork2.test.ModelDrivenAnnotationAction2;
|
||||
import com.opensymphony.xwork2.util.Bar;
|
||||
import com.opensymphony.xwork2.util.ValueStack;
|
||||
import com.opensymphony.xwork2.util.reflection.ReflectionContextState;
|
||||
import ognl.Ognl;
|
||||
import ognl.OgnlException;
|
||||
import ognl.OgnlRuntime;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -35,6 +33,8 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
|
||||
|
||||
/**
|
||||
* @author $Author$
|
||||
@@ -76,11 +76,11 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
|
||||
public void testArrayToNumberConversion() {
|
||||
String[] value = new String[]{"12345"};
|
||||
assertEquals(new Integer(12345), converter.convertValue(context, null, null, null, value, Integer.class));
|
||||
assertEquals(new Long(12345), converter.convertValue(context, null, null, null, value, Long.class));
|
||||
assertEquals(12345, converter.convertValue(context, null, null, null, value, Integer.class));
|
||||
assertEquals(12345L, converter.convertValue(context, null, null, null, value, Long.class));
|
||||
value[0] = "123.45";
|
||||
assertEquals(new Float(123.45), converter.convertValue(context, null, null, null, value, Float.class));
|
||||
assertEquals(new Double(123.45), converter.convertValue(context, null, null, null, value, Double.class));
|
||||
assertEquals(123.45f, converter.convertValue(context, null, null, null, value, Float.class));
|
||||
assertEquals(123.45, converter.convertValue(context, null, null, null, value, Double.class));
|
||||
value[0] = "1234567890123456789012345678901234567890";
|
||||
assertEquals(new BigInteger(value[0]), converter.convertValue(context, null, null, null, value, BigInteger.class));
|
||||
value[0] = "1234567890123456789.012345678901234567890";
|
||||
@@ -91,7 +91,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
|
||||
assertEquals(sqlDate, converter.convertValue(context, null, null, null, sqlDate, Date.class));
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss");
|
||||
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
|
||||
Date date = format.parse("01/10/2001 00:00:00");
|
||||
String dateStr = (String) converter.convertValue(context, null, null, null, date, String.class);
|
||||
Date date2 = (Date) converter.convertValue(context, null, null, null, dateStr, Date.class);
|
||||
@@ -113,9 +113,9 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals("Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action.getBean(), null, "birth", value, Date.class));
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertTrue(conversionErrors.size() == 1);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertEquals(value, conversionErrors.get("bean.birth").getValue());
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals("Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action, null, "date", value, Date.class));
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) ognlStackContext.get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = ActionContext.of(ognlStackContext).getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertNotNull(conversionErrors.get("date"));
|
||||
@@ -154,7 +154,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
stack.pop();
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) ognlStackContext.get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = ActionContext.of(ognlStackContext).getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertNotNull(conversionErrors.get("birth"));
|
||||
@@ -204,7 +204,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals(value2, b2.getTitle() + ":" + b2.getSomethingElse());
|
||||
}
|
||||
|
||||
public void testLocalizedDateConversion() throws Exception {
|
||||
public void testLocalizedDateConversion() {
|
||||
Date date = new Date(System.currentTimeMillis());
|
||||
Locale locale = Locale.GERMANY;
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
|
||||
@@ -224,7 +224,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
}
|
||||
|
||||
public void testStringArrayToList() {
|
||||
List<String> list = new ArrayList<String>();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("foo");
|
||||
list.add("bar");
|
||||
list.add("baz");
|
||||
@@ -238,63 +238,63 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
"123", "456"
|
||||
}, Long[].class);
|
||||
assertNotNull(longs);
|
||||
assertTrue(Arrays.equals(new Long[]{123L, 456L}, longs));
|
||||
assertArrayEquals(new Long[]{123L, 456L}, longs);
|
||||
|
||||
Integer[] ints = (Integer[]) converter.convertValue(context, null, null, null, new String[]{
|
||||
"123", "456"
|
||||
}, Integer[].class);
|
||||
assertNotNull(ints);
|
||||
assertTrue(Arrays.equals(new Integer[]{123, 456}, ints));
|
||||
assertArrayEquals(new Integer[]{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[]{123D, 456D}, doubles));
|
||||
assertArrayEquals(new Double[]{123D, 456D}, doubles);
|
||||
|
||||
Float[] floats = (Float[]) converter.convertValue(context, null, null, null, new String[]{
|
||||
"123", "456"
|
||||
}, Float[].class);
|
||||
assertNotNull(floats);
|
||||
assertTrue(Arrays.equals(new Float[]{123F, 456F}, floats));
|
||||
assertArrayEquals(new Float[]{123F, 456F}, 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));
|
||||
assertArrayEquals(new Boolean[]{Boolean.TRUE, Boolean.FALSE}, booleans);
|
||||
}
|
||||
|
||||
public void testStringArrayToPrimitives() throws OgnlException {
|
||||
public void testStringArrayToPrimitives() {
|
||||
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));
|
||||
assertArrayEquals(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));
|
||||
assertArrayEquals(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));
|
||||
assertArrayEquals(new double[]{123, 456}, doubles, 0.0);
|
||||
|
||||
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));
|
||||
assertArrayEquals(new float[]{123, 456}, floats, 0.0f);
|
||||
|
||||
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));
|
||||
assertArrayEquals(new boolean[]{true, false}, booleans);
|
||||
}
|
||||
|
||||
public void testStringArrayToSet() {
|
||||
@@ -338,22 +338,22 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
}
|
||||
|
||||
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(123L, converter.convertValue(context, null, null, null, "123", Long.class));
|
||||
assertEquals(123, converter.convertValue(context, null, null, null, "123", Integer.class));
|
||||
assertEquals(123.5, converter.convertValue(context, null, null, null, "123.5", Double.class));
|
||||
assertEquals(123.5f, converter.convertValue(context, null, null, null, "123.5", float.class));
|
||||
assertEquals(false, converter.convertValue(context, null, null, null, "false", Boolean.class));
|
||||
assertEquals(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(123L, converter.convertValue(context, null, null, null, "123", long.class));
|
||||
assertEquals(123, converter.convertValue(context, null, null, null, "123", int.class));
|
||||
assertEquals(123.5, converter.convertValue(context, null, null, null, "123.5", double.class));
|
||||
assertEquals(123.5f, converter.convertValue(context, null, null, null, "123.5", float.class));
|
||||
assertEquals(false, converter.convertValue(context, null, null, null, "false", boolean.class));
|
||||
assertEquals(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 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));
|
||||
}
|
||||
|
||||
@@ -373,8 +373,8 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
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));
|
||||
assertEquals(123.12, gb.getDoubles().get(0));
|
||||
assertEquals(123.45, gb.getDoubles().get(1));
|
||||
}
|
||||
|
||||
public void testGenericPropertiesFromField() {
|
||||
@@ -422,8 +422,8 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
|
||||
|
||||
assertEquals(1, gb.getGetterList().size());
|
||||
assertEquals("42.42", stack.findValue("getterList.get(0).toString()"));
|
||||
assertEquals(new Double(42.42), stack.findValue("getterList.get(0)"));
|
||||
assertEquals(new Double(42.42), gb.getGetterList().get(0));
|
||||
assertEquals(42.42, stack.findValue("getterList.get(0)"));
|
||||
assertEquals(42.42, gb.getGetterList().get(0));
|
||||
|
||||
}
|
||||
|
||||
|
||||
+78
-77
@@ -27,7 +27,6 @@ import com.opensymphony.xwork2.util.Cat;
|
||||
import com.opensymphony.xwork2.util.Foo;
|
||||
import com.opensymphony.xwork2.util.FurColor;
|
||||
import com.opensymphony.xwork2.util.reflection.ReflectionContextState;
|
||||
import ognl.OgnlException;
|
||||
import ognl.OgnlRuntime;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -40,6 +39,8 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
|
||||
|
||||
/**
|
||||
* @author $Author$
|
||||
@@ -80,11 +81,11 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
|
||||
public void testArrayToNumberConversion() {
|
||||
String[] value = new String[]{"12345"};
|
||||
assertEquals(new Integer(12345), converter.convertValue(context, null, null, null, value, Integer.class));
|
||||
assertEquals(new Long(12345), converter.convertValue(context, null, null, null, value, Long.class));
|
||||
assertEquals(12345, converter.convertValue(context, null, null, null, value, Integer.class));
|
||||
assertEquals(12345L, converter.convertValue(context, null, null, null, value, Long.class));
|
||||
value[0] = "123.45";
|
||||
assertEquals(new Float(123.45), converter.convertValue(context, null, null, null, value, Float.class));
|
||||
assertEquals(new Double(123.45), converter.convertValue(context, null, null, null, value, Double.class));
|
||||
assertEquals(123.45f, converter.convertValue(context, null, null, null, value, Float.class));
|
||||
assertEquals(123.45, converter.convertValue(context, null, null, null, value, Double.class));
|
||||
value[0] = "1234567890123456789012345678901234567890";
|
||||
assertEquals(new BigInteger(value[0]), converter.convertValue(context, null, null, null, value, BigInteger.class));
|
||||
value[0] = "1234567890123456789.012345678901234567890";
|
||||
@@ -135,9 +136,9 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals("Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action.getBean(), null, "birth", value, Date.class));
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertTrue(conversionErrors.size() == 1);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertEquals(value, conversionErrors.get("bean.birth").getValue());
|
||||
}
|
||||
|
||||
@@ -154,7 +155,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals("Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action, null, "date", value, Date.class));
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) ognlStackContext.get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = ActionContext.of(ognlStackContext).getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertNotNull(conversionErrors.get("date"));
|
||||
@@ -174,7 +175,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
stack.pop();
|
||||
stack.pop();
|
||||
|
||||
Map<String, ConversionData> conversionErrors = (Map<String, ConversionData>) ognlStackContext.get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = ActionContext.of(ognlStackContext).getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
assertNotNull(conversionErrors.get("birth"));
|
||||
@@ -311,7 +312,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals("Custom error message for java.util.Date.", message);
|
||||
}
|
||||
|
||||
public void testLocalizedDateConversion() throws Exception {
|
||||
public void testLocalizedDateConversion() {
|
||||
Date date = new Date(System.currentTimeMillis());
|
||||
Locale locale = Locale.GERMANY;
|
||||
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
|
||||
@@ -332,9 +333,9 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
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);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertNotNull(conversionErrors);
|
||||
assertTrue(conversionErrors.size() == 1);
|
||||
assertEquals(1, conversionErrors.size());
|
||||
}
|
||||
|
||||
public void testStringArrayToCollection() {
|
||||
@@ -362,63 +363,63 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
"123", "456"
|
||||
}, Long[].class);
|
||||
assertNotNull(longs);
|
||||
assertTrue(Arrays.equals(new Long[]{123L, 456L}, longs));
|
||||
assertArrayEquals(new Long[]{123L, 456L}, longs);
|
||||
|
||||
Integer[] ints = (Integer[]) converter.convertValue(context, null, null, null, new String[]{
|
||||
"123", "456"
|
||||
}, Integer[].class);
|
||||
assertNotNull(ints);
|
||||
assertTrue(Arrays.equals(new Integer[]{123, 456}, ints));
|
||||
assertArrayEquals(new Integer[]{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[]{123D, 456D}, doubles));
|
||||
assertArrayEquals(new Double[]{123D, 456D}, doubles);
|
||||
|
||||
Float[] floats = (Float[]) converter.convertValue(context, null, null, null, new String[]{
|
||||
"123", "456"
|
||||
}, Float[].class);
|
||||
assertNotNull(floats);
|
||||
assertTrue(Arrays.equals(new Float[]{123F, 456F}, floats));
|
||||
assertArrayEquals(new Float[]{123F, 456F}, 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));
|
||||
assertArrayEquals(new Boolean[]{Boolean.TRUE, Boolean.FALSE}, booleans);
|
||||
}
|
||||
|
||||
public void testStringArrayToPrimitives() throws OgnlException {
|
||||
public void testStringArrayToPrimitives() {
|
||||
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));
|
||||
assertArrayEquals(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));
|
||||
assertArrayEquals(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));
|
||||
assertArrayEquals(new double[]{123, 456}, doubles, 0.0);
|
||||
|
||||
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));
|
||||
assertArrayEquals(new float[]{123, 456}, floats, 0.0f);
|
||||
|
||||
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));
|
||||
assertArrayEquals(new boolean[]{true, false}, booleans);
|
||||
}
|
||||
|
||||
public void testStringArrayToSet() {
|
||||
@@ -500,21 +501,21 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
}
|
||||
|
||||
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(123L, converter.convertValue(context, null, null, null, "123", Long.class));
|
||||
assertEquals(123, converter.convertValue(context, null, null, null, "123", Integer.class));
|
||||
assertEquals(123.5, converter.convertValue(context, null, null, null, "123.5", Double.class));
|
||||
assertEquals(123.5f, converter.convertValue(context, null, null, null, "123.5", float.class));
|
||||
assertEquals(false, converter.convertValue(context, null, null, null, "false", Boolean.class));
|
||||
assertEquals(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(123L, converter.convertValue(context, null, null, null, "123", long.class));
|
||||
assertEquals(123.5, converter.convertValue(context, null, null, null, "123.5", double.class));
|
||||
assertEquals(123.5f, converter.convertValue(context, null, null, null, "123.5", float.class));
|
||||
assertEquals(false, converter.convertValue(context, null, null, null, "false", boolean.class));
|
||||
assertEquals(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 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));
|
||||
}
|
||||
|
||||
@@ -551,7 +552,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
}
|
||||
|
||||
public void testStringToInt() {
|
||||
assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", int.class));
|
||||
assertEquals(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));
|
||||
@@ -574,22 +575,22 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
|
||||
|
||||
public void testStringToInteger() {
|
||||
assertEquals(new Integer(123), converter.convertValue(context, null, null, null, "123", Integer.class));
|
||||
assertEquals(123, converter.convertValue(context, null, null, null, "123", Integer.class));
|
||||
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));
|
||||
assertEquals(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(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(12312, converter.convertValue(context, null, null, null, "123.12", Integer.class));
|
||||
assertEquals(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));
|
||||
@@ -624,26 +625,26 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
public void testStringToDouble() {
|
||||
assertEquals(123d, 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(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));
|
||||
assertEquals(1234d, converter.convertValue(context, null, null, null, "1,234", Double.class));
|
||||
assertEquals(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(123d, converter.convertValue(context, null, null, null, "1,23", Double.class));
|
||||
assertEquals(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(12312d, 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(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));
|
||||
assertEquals(1.23, converter.convertValue(context, null, null, null, "1,23", Double.class));
|
||||
assertEquals(1234d, converter.convertValue(context, null, null, null, "1.234", Double.class));
|
||||
assertEquals(1234.12, converter.convertValue(context, null, null, null, "1.234,12", Double.class));
|
||||
|
||||
}
|
||||
|
||||
@@ -655,50 +656,50 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
|
||||
// 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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Double.class));
|
||||
assertNull(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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Integer.class));
|
||||
assertNull(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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Float.class));
|
||||
assertNull(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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Character.class));
|
||||
assertNull(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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Long.class));
|
||||
assertNull(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));
|
||||
assertNull(converter.convertValue(context, null, null, null, null, Short.class));
|
||||
assertNull(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('A', converter.convertValue(context, "A", char.class));
|
||||
assertEquals('Z', converter.convertValue(context, "Z", char.class));
|
||||
assertEquals('A', converter.convertValue(context, "A", Character.class));
|
||||
assertEquals('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('A', converter.convertValue(context, 'A', char.class));
|
||||
assertEquals('Z', converter.convertValue(context, 'Z', char.class));
|
||||
assertEquals('A', converter.convertValue(context, 'A', Character.class));
|
||||
assertEquals('Z', converter.convertValue(context, '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('D', converter.convertValue(context, "DEF", char.class));
|
||||
assertEquals('X', converter.convertValue(context, "XYZ", Character.class));
|
||||
assertEquals(' ', converter.convertValue(context, " ", Character.class));
|
||||
assertEquals(' ', converter.convertValue(context, " ", char.class));
|
||||
|
||||
assertEquals(null, converter.convertValue(context, "", char.class));
|
||||
assertNull(converter.convertValue(context, "", char.class));
|
||||
}
|
||||
|
||||
public void testConvertClass() {
|
||||
Class clazz = (Class) converter.convertValue(context, "java.util.Date", Class.class);
|
||||
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);
|
||||
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));
|
||||
@@ -713,7 +714,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
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));
|
||||
assertNull(converter.convertValue(context, null, Boolean.class));
|
||||
assertEquals(Boolean.TRUE, converter.convertValue(context, new Bar(), Boolean.class)); // Ognl converter will default to true
|
||||
}
|
||||
|
||||
@@ -729,7 +730,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
names.add("XWork");
|
||||
names.add("Struts");
|
||||
|
||||
Collection col = (Collection) converter.convertValue(context, names, Collection.class);
|
||||
Collection<String> col = (Collection<String>) converter.convertValue(context, names, Collection.class);
|
||||
assertSame(names, col);
|
||||
}
|
||||
|
||||
@@ -752,7 +753,7 @@ public class XWorkConverterTest extends XWorkTestCase {
|
||||
assertEquals(321, cat.getFoo().getNumber());
|
||||
}
|
||||
|
||||
public void testCollectionConversion() throws Exception {
|
||||
public void testCollectionConversion() {
|
||||
// given
|
||||
String[] col1 = new String[]{"1", "2", "ble", "3"};
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package com.opensymphony.xwork2.ognl;
|
||||
|
||||
import com.opensymphony.xwork2.*;
|
||||
import com.opensymphony.xwork2.config.ConfigurationException;
|
||||
import com.opensymphony.xwork2.conversion.impl.ConversionData;
|
||||
import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
|
||||
import com.opensymphony.xwork2.inject.ContainerBuilder;
|
||||
import com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor;
|
||||
@@ -849,11 +850,11 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertTrue(conversionErrors.containsKey("bar"));
|
||||
}
|
||||
|
||||
public void testPrimitiveSettingWithInvalidValueAddsFieldErrorInNonDevMode() throws Exception {
|
||||
public void testPrimitiveSettingWithInvalidValueAddsFieldErrorInNonDevMode() {
|
||||
SimpleAction action = new SimpleAction();
|
||||
OgnlValueStack stack = createValueStack();
|
||||
stack.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
|
||||
@@ -861,7 +862,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
stack.push(action);
|
||||
stack.setValue("bar", "3x");
|
||||
|
||||
Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertTrue(conversionErrors.containsKey("bar"));
|
||||
}
|
||||
|
||||
@@ -879,7 +880,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
// expected
|
||||
}
|
||||
|
||||
Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertTrue(conversionErrors.containsKey("bean"));
|
||||
assertNotNull(action.getBean());
|
||||
}
|
||||
@@ -978,8 +979,8 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
vs.setValue("animalMap[6].name", "Cat Six by interface");
|
||||
assertNotNull(foo.getAnimalMap());
|
||||
assertEquals(2, foo.getAnimalMap().size());
|
||||
assertEquals("Cat Three by interface", foo.getAnimalMap().get(new Long(3)).getName());
|
||||
assertEquals("Cat Six by interface", foo.getAnimalMap().get(new Long(6)).getName());
|
||||
assertEquals("Cat Three by interface", foo.getAnimalMap().get(3L).getName());
|
||||
assertEquals("Cat Six by interface", foo.getAnimalMap().get(6L).getName());
|
||||
|
||||
vs.setValue("annotatedCats[0].name", "Cat One By Annotation");
|
||||
vs.setValue("annotatedCats[1].name", "Cat Two By Annotation");
|
||||
@@ -1057,7 +1058,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
|
||||
vs.setValue("male", "false");
|
||||
|
||||
assertEquals(false, dog.isMale());
|
||||
assertFalse(dog.isMale());
|
||||
}
|
||||
|
||||
public void testStatics() {
|
||||
@@ -1074,7 +1075,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
assertEquals("Canine", vs.findValue("@vs@SCIENTIFIC_NAME"));
|
||||
assertEquals("Canine", vs.findValue("@vs1@SCIENTIFIC_NAME"));
|
||||
assertEquals("Feline", vs.findValue("@vs2@SCIENTIFIC_NAME"));
|
||||
assertEquals(new Integer(BigDecimal.ROUND_HALF_DOWN), vs.findValue("@java.math.BigDecimal@ROUND_HALF_DOWN"));
|
||||
assertEquals(BigDecimal.ROUND_HALF_DOWN, vs.findValue("@java.math.BigDecimal@ROUND_HALF_DOWN"));
|
||||
assertNull(vs.findValue("@vs3@BLAH"));
|
||||
assertNull(vs.findValue("@com.nothing.here.Nothing@BLAH"));
|
||||
}
|
||||
@@ -1177,7 +1178,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
// expected
|
||||
}
|
||||
|
||||
Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS);
|
||||
Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
|
||||
assertTrue(conversionErrors.containsKey("count"));
|
||||
}
|
||||
|
||||
@@ -1202,11 +1203,11 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
stack.push("Hello World");
|
||||
|
||||
assertEquals("Hello World", stack.findValue("top"));
|
||||
assertEquals(null, stack.findValue(null));
|
||||
assertNull(stack.findValue(null));
|
||||
|
||||
stack.setDefaultType(Integer.class);
|
||||
stack.push(new Integer(123));
|
||||
assertEquals(new Integer(123), stack.findValue("top"));
|
||||
stack.push(123);
|
||||
assertEquals(123, stack.findValue("top"));
|
||||
}
|
||||
|
||||
public void testFindString() {
|
||||
@@ -1215,11 +1216,11 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
stack.push("Hello World");
|
||||
|
||||
assertEquals("Hello World", stack.findString("top"));
|
||||
assertEquals(null, stack.findString(null));
|
||||
assertNull(stack.findString(null));
|
||||
}
|
||||
|
||||
public void testExpOverrides() {
|
||||
Map overrides = new HashMap();
|
||||
Map<Object, Object> overrides = new HashMap<>();
|
||||
overrides.put("claus", "top");
|
||||
|
||||
OgnlValueStack stack = createValueStack();
|
||||
@@ -1236,7 +1237,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
|
||||
stack.getContext().put("santa", "Hello Santa");
|
||||
assertEquals("Hello Santa", stack.findValue("santa", String.class));
|
||||
assertEquals(null, stack.findValue("unknown", String.class));
|
||||
assertNull(stack.findValue("unknown", String.class));
|
||||
}
|
||||
|
||||
public void testWarnAboutInvalidProperties() {
|
||||
@@ -1247,16 +1248,16 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
|
||||
// how to test the warning was logged?
|
||||
assertEquals("Don", stack.findValue("name", String.class));
|
||||
assertEquals(null, stack.findValue("address", String.class));
|
||||
assertNull(stack.findValue("address", String.class));
|
||||
// should log warning
|
||||
assertEquals(null, stack.findValue("address.invalidProperty", String.class));
|
||||
assertNull(stack.findValue("address.invalidProperty", String.class));
|
||||
|
||||
// if country is null, OGNL throws an exception
|
||||
/*action.setAddress(new Address());
|
||||
stack.push(action);*/
|
||||
// should log warning
|
||||
assertEquals(null, stack.findValue("address.country.id", String.class));
|
||||
assertEquals(null, stack.findValue("address.country.name", String.class));
|
||||
assertNull(stack.findValue("address.country.id", String.class));
|
||||
assertNull(stack.findValue("address.country.name", String.class));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1498,7 +1499,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
ognlUtil = container.getInstance(OgnlUtil.class);
|
||||
}
|
||||
|
||||
class BadJavaBean {
|
||||
static class BadJavaBean {
|
||||
private int count;
|
||||
private int count2;
|
||||
|
||||
@@ -1519,7 +1520,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
class MyAction {
|
||||
static class MyAction {
|
||||
private Long id;
|
||||
private String name;
|
||||
private Address address;
|
||||
@@ -1549,7 +1550,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
class Address {
|
||||
static class Address {
|
||||
private String address;
|
||||
private Country country;
|
||||
private String city;
|
||||
@@ -1579,7 +1580,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
class Country {
|
||||
static class Country {
|
||||
private String iso;
|
||||
private String name;
|
||||
private String displayName;
|
||||
@@ -1609,7 +1610,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
class TestAppender extends AbstractAppender {
|
||||
static class TestAppender extends AbstractAppender {
|
||||
List<LogEvent> logEvents = new ArrayList<>();
|
||||
|
||||
TestAppender() {
|
||||
@@ -1625,4 +1626,4 @@ public class OgnlValueStackTest extends XWorkTestCase {
|
||||
|
||||
enum MyNumbers {
|
||||
ONE, TWO, THREE
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user