You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ku...@apache.org on 2023/08/30 08:11:17 UTC
[struts] 01/01: WW-5339 Clean up OgnlValueStackTest
This is an automated email from the ASF dual-hosted git repository.
kusal pushed a commit to branch WW-5339-cleanup
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 7bd31cf3159045f3dc285bfde008397a8ebae21f
Author: Kusal Kithul-Godage <gi...@kusal.io>
AuthorDate: Wed Aug 30 13:56:25 2023 +1000
WW-5339 Clean up OgnlValueStackTest
---
.../xwork2/ognl/OgnlValueStackTest.java | 245 +++++++--------------
1 file changed, 75 insertions(+), 170 deletions(-)
diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
index f8e22dbf9..5f0ac5b26 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
@@ -48,13 +48,14 @@ import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.struts2.StrutsConstants;
import org.apache.struts2.StrutsException;
import org.apache.struts2.config.DefaultPropertiesProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -84,14 +85,13 @@ public class OgnlValueStackTest extends XWorkTestCase {
private OgnlUtil ognlUtil;
+ private OgnlValueStack vs;
+
@Override
public void setUp() throws Exception {
super.setUp();
ognlUtil = container.getInstance(OgnlUtil.class);
- }
-
- private OgnlValueStack createValueStack() {
- return createValueStack(true);
+ vs = createValueStack(true);
}
private OgnlValueStack createValueStack(boolean allowStaticFieldAccess) {
@@ -134,7 +134,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
Map expr1 = new LinkedHashMap();
expr1.put("expr1", "'expr1value'");
- OgnlValueStack vs = createValueStack();
vs.setExprOverrides(expr1);
assertEquals(vs.findValue("expr1"), "expr1value");
@@ -150,8 +149,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testArrayAsString() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setAge(12);
dog.setName("Rover");
@@ -167,7 +164,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
private void testValuesFromContextAreConverted(String propertyName) {
- final OgnlValueStack vs = createValueStack();
final String propertyValue = "Rover";
vs.getContext().put(propertyName, new String[]{propertyValue});
@@ -180,7 +176,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
private void testNullValueFromContextGetsConverted(String propertyName) {
- final OgnlValueStack vs = createValueStack();
final String propertyValue = null;
vs.getContext().put(propertyName, propertyValue);
@@ -188,8 +183,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testFailOnException() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
vs.push(dog);
try {
@@ -202,8 +195,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testFailOnErrorOnInheritedProperties() {
//this shuld not fail as the property is defined on a parent class
- OgnlValueStack vs = createValueStack();
-
Foo foo = new Foo();
BarJunior barjr = new BarJunior();
foo.setBarJunior(barjr);
@@ -215,8 +206,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testSuccessFailOnErrorOnInheritedPropertiesWithMethods() {
//this shuld not fail as the property is defined on a parent class
- OgnlValueStack vs = createValueStack();
-
Foo foo = new Foo();
BarJunior barjr = new BarJunior();
foo.setBarJunior(barjr);
@@ -227,8 +216,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testFailFailOnErrorOnInheritedPropertiesWithMethods() {
- OgnlValueStack vs = createValueStack();
-
Foo foo = new Foo();
BarJunior barjr = new BarJunior();
foo.setBarJunior(barjr);
@@ -243,8 +230,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testFailOnMissingProperty() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
vs.push(dog);
try {
@@ -266,7 +251,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
private void testLogMissingProperties(boolean logMissingProperties) {
- OgnlValueStack vs = createValueStack();
vs.setLogMissingProperties("" + logMissingProperties);
Dog dog = new Dog();
@@ -305,7 +289,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
* @since 2.5.21
*/
public void testNotLogUserExceptionsAsMissingProperties() {
- OgnlValueStack vs = createValueStack();
vs.setLogMissingProperties("true");
Dog dog = new Dog();
@@ -347,8 +330,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testFailOnMissingMethod() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
vs.push(dog);
try {
@@ -368,10 +349,9 @@ public class OgnlValueStackTest extends XWorkTestCase {
props.setProperty(StrutsConstants.STRUTS_OGNL_EXPRESSION_MAX_LENGTH, "192");
}
});
- Integer repeat = Integer.parseInt(
+ int repeat = Integer.parseInt(
container.getInstance(String.class, StrutsConstants.STRUTS_OGNL_EXPRESSION_MAX_LENGTH));
- OgnlValueStack vs = createValueStack();
try {
vs.findValue(StringUtils.repeat('.', repeat + 1), true);
fail("Failed to throw exception on too long expression");
@@ -393,7 +373,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
int defaultValue = 256;
- OgnlValueStack vs = createValueStack();
try {
vs.findValue(StringUtils.repeat('.', defaultValue + 1), true);
fail("findValue did not throw any exception (should either fail as invalid expression syntax or security exception) ?");
@@ -412,8 +391,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
int defaultValue = 256;
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
vs.push(dog);
@@ -426,12 +403,11 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testFailsOnMethodThatThrowsException() {
SimpleAction action = new SimpleAction();
- OgnlValueStack stack = createValueStack();
- stack.push(action);
+ vs.push(action);
action.setThrowException(true);
try {
- stack.findValue("exceptionMethod12()", true);
+ vs.findValue("exceptionMethod12()", true);
fail("Failed to throw exception on EL method exception");
} catch (Exception ex) {
//ok
@@ -442,8 +418,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testDoesNotFailOnNonActionObjects() {
//if a value is not found, then it will check for missing properties
//it needs to check in all objects in the stack, not only actions, see WW-3306
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setHates(null);
vs.push(dog);
@@ -452,8 +426,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testFailOnMissingNestedProperty() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setHates(new Cat());
vs.push(dog);
@@ -466,8 +438,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testBasic() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setAge(12);
dog.setName("Rover");
@@ -477,8 +447,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testStatic() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setDeity("fido");
vs.push(dog);
@@ -489,16 +457,12 @@ public class OgnlValueStackTest extends XWorkTestCase {
* Allow access Enums without enabling access to static methods
*/
public void testEnum() throws Exception {
- OgnlValueStack vs = createValueStack();
-
assertEquals("ONE", vs.findValue("@com.opensymphony.xwork2.ognl.MyNumbers@values()[0]", String.class));
assertEquals("TWO", vs.findValue("@com.opensymphony.xwork2.ognl.MyNumbers@values()[1]", String.class));
assertEquals("THREE", vs.findValue("@com.opensymphony.xwork2.ognl.MyNumbers@values()[2]", String.class));
}
public void testStaticMethodDisallow() {
- OgnlValueStack vs = createValueStack(true);
-
Dog dog = new Dog();
dog.setDeity("fido");
vs.push(dog);
@@ -506,8 +470,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testBasicSet() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setAge(12);
dog.setName("Rover");
@@ -517,38 +479,34 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testCallMethodOnNullObject() {
- OgnlValueStack stack = createValueStack();
- assertNull(stack.findValue("foo.size()"));
+ assertNull(vs.findValue("foo.size()"));
}
public void testCallMethodThatThrowsExceptionTwice() {
SimpleAction action = new SimpleAction();
- OgnlValueStack stack = createValueStack();
- stack.push(action);
+ vs.push(action);
action.setThrowException(true);
- assertNull(stack.findValue("exceptionMethod1()"));
+ assertNull(vs.findValue("exceptionMethod1()"));
action.setThrowException(false);
- assertEquals("OK", stack.findValue("exceptionMethod()"));
+ assertEquals("OK", vs.findValue("exceptionMethod()"));
}
public void testCallMethodWithNullArg() {
SimpleAction action = new SimpleAction();
- OgnlValueStack stack = createValueStack();
- stack.push(action);
+ vs.push(action);
- stack.findValue("setName(blah)");
+ vs.findValue("setName(blah)");
assertNull(action.getName());
action.setBlah("blah");
- stack.findValue("setName(blah)");
+ vs.findValue("setName(blah)");
assertEquals("blah", action.getName());
}
public void testConvertStringArrayToList() {
Foo foo = new Foo();
- OgnlValueStack vs = createValueStack();
vs.push(foo);
vs.setValue("strings", new String[]{"one", "two"});
@@ -563,9 +521,8 @@ public class OgnlValueStackTest extends XWorkTestCase {
// register converter
TestBean2 tb2 = new TestBean2();
- OgnlValueStack stack = createValueStack();
- stack.push(tb2);
- Map myContext = stack.getContext();
+ vs.push(tb2);
+ Map myContext = vs.getContext();
Map props = new HashMap();
props.put("cat", "Kitty");
@@ -574,12 +531,12 @@ public class OgnlValueStackTest extends XWorkTestCase {
assertEquals("Kitty", tb2.getCat().getName());
// findValue should be able to access the name
- Object value = stack.findValue("cat.name == 'Kitty'", Boolean.class);
+ Object value = vs.findValue("cat.name == 'Kitty'", Boolean.class);
assertNotNull(value);
assertEquals(Boolean.class, value.getClass());
assertEquals(Boolean.TRUE, value);
- value = stack.findValue("cat == null", Boolean.class);
+ value = vs.findValue("cat == null", Boolean.class);
assertNotNull(value);
assertEquals(Boolean.class, value.getClass());
assertEquals(Boolean.FALSE, value);
@@ -587,8 +544,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testDeepProperties() {
- OgnlValueStack vs = createValueStack();
-
Cat cat = new Cat();
cat.setName("Smokey");
@@ -603,7 +558,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testFooBarAsString() {
- OgnlValueStack vs = createValueStack();
Foo foo = new Foo();
Bar bar = new Bar();
bar.setTitle("blah");
@@ -621,7 +575,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
bar.setSomethingElse(123);
foo.setBar(bar);
- OgnlValueStack vs = createValueStack();
vs.push(foo);
String output = (String) vs.findValue("bar", String.class);
@@ -660,7 +613,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
fooB.setBar(bar);
fooC.setBar(bar);
- OgnlValueStack vs = createValueStack();
vs.push(foo);
vs.getContext().put("foo", foo);
@@ -682,9 +634,8 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testGetNullValue() {
Dog dog = new Dog();
- OgnlValueStack stack = createValueStack();
- stack.push(dog);
- assertNull(stack.findValue("name"));
+ vs.push(dog);
+ assertNull(vs.findValue("name"));
}
public void testMapEntriesAvailableByKey() {
@@ -692,7 +643,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
String title = "a title";
foo.setTitle(title);
- OgnlValueStack vs = createValueStack();
vs.push(foo);
Map map = new HashMap();
@@ -712,8 +662,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testMethodCalls() {
- OgnlValueStack vs = createValueStack();
-
Dog dog1 = new Dog();
dog1.setAge(12);
dog1.setName("Rover");
@@ -744,8 +692,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testMismatchedGettersAndSettersCauseExceptionInSet() {
- OgnlValueStack vs = createValueStack();
-
BadJavaBean bean = new BadJavaBean();
vs.push(bean);
@@ -762,8 +708,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testNoExceptionInSetForDefault() {
- OgnlValueStack vs = createValueStack();
-
BadJavaBean bean = new BadJavaBean();
vs.push(bean);
@@ -780,8 +724,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testNullEntry() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setName("Rover");
@@ -794,10 +736,9 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testNullMethod() {
Dog dog = new Dog();
- OgnlValueStack stack = createValueStack();
- stack.push(dog);
- assertNull(stack.findValue("nullMethod()"));
- assertNull(stack.findValue("@com.opensymphony.xwork2.ognl.OgnlValueStackTest@staticNullMethod()"));
+ vs.push(dog);
+ assertNull(vs.findValue("nullMethod()"));
+ assertNull(vs.findValue("@com.opensymphony.xwork2.ognl.OgnlValueStackTest@staticNullMethod()"));
}
public void testPetSoarBug() {
@@ -809,7 +750,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
bar.setSomethingElse(123);
cat.getFoo().setBar(bar);
- OgnlValueStack vs = createValueStack();
vs.push(cat);
assertEquals("bar:123", vs.findValue("foo.bar", String.class));
@@ -817,31 +757,29 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testPrimitiveSettingWithInvalidValueAddsFieldErrorInDevMode() throws Exception {
SimpleAction action = new SimpleAction();
- OgnlValueStack stack = createValueStack();
- stack.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
- stack.setDevMode("true");
- stack.push(action);
+ vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
+ vs.setDevMode("true");
+ vs.push(action);
try {
- stack.setValue("bar", "3x");
+ vs.setValue("bar", "3x");
fail("Attempt to set 'bar' int property to '3x' should result in RuntimeException");
} catch (RuntimeException re) {
assertTrue(true);
}
- Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
+ Map<String, ConversionData> conversionErrors = vs.getActionContext().getConversionErrors();
assertTrue(conversionErrors.containsKey("bar"));
}
public void testPrimitiveSettingWithInvalidValueAddsFieldErrorInNonDevMode() {
SimpleAction action = new SimpleAction();
- OgnlValueStack stack = createValueStack();
- stack.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
- stack.setDevMode("false");
- stack.push(action);
- stack.setValue("bar", "3x");
+ vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
+ vs.setDevMode("false");
+ vs.push(action);
+ vs.setValue("bar", "3x");
- Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
+ Map<String, ConversionData> conversionErrors = vs.getActionContext().getConversionErrors();
assertTrue(conversionErrors.containsKey("bar"));
}
@@ -849,25 +787,22 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testObjectSettingWithInvalidValueDoesNotCauseSetCalledWithNull() {
SimpleAction action = new SimpleAction();
action.setBean(new TestBean());
- OgnlValueStack stack = createValueStack();
- stack.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
- stack.push(action);
+ vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
+ vs.push(action);
try {
- stack.setValue("bean", "foobar", true);
+ vs.setValue("bean", "foobar", true);
fail("Should have thrown a type conversion exception");
} catch (StrutsException e) {
// expected
}
- Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
+ Map<String, ConversionData> conversionErrors = vs.getActionContext().getConversionErrors();
assertTrue(conversionErrors.containsKey("bean"));
assertNotNull(action.getBean());
}
public void testSerializable() throws IOException, ClassNotFoundException {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setAge(12);
dog.setName("Rover");
@@ -889,8 +824,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testSetAfterPush() {
- OgnlValueStack vs = createValueStack();
-
Dog d = new Dog();
d.setName("Rover");
vs.push(d);
@@ -904,7 +837,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testSetBarAsString() {
Foo foo = new Foo();
- OgnlValueStack vs = createValueStack();
vs.push(foo);
vs.setValue("bar", "bar:123");
@@ -914,8 +846,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testSetBeforePush() {
- OgnlValueStack vs = createValueStack();
-
vs.set("name", "Bill");
Dog d = new Dog();
d.setName("Rover");
@@ -930,7 +860,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
Foo foo2 = new Foo();
foo.setChild(foo2);
- OgnlValueStack vs = createValueStack();
vs.push(foo);
vs.setValue("child.bar", "bar:123");
@@ -941,7 +870,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testSetNullList() {
Foo foo = new Foo();
- OgnlValueStack vs = createValueStack();
vs.getContext().put(ReflectionContextState.CREATE_NULL_OBJECTS, Boolean.TRUE);
vs.push(foo);
@@ -982,7 +910,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testSetMultiple() {
- OgnlValueStack vs = createValueStack();
int origSize = vs.getRoot().size();
vs.set("something", new Object());
vs.set("somethingElse", new Object());
@@ -993,7 +920,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testSetNullMap() {
Foo foo = new Foo();
- OgnlValueStack vs = createValueStack();
vs.getContext().put(ReflectionContextState.CREATE_NULL_OBJECTS, Boolean.TRUE);
vs.push(foo);
@@ -1020,7 +946,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
Foo foo3 = new Foo();
foo2.setChild(foo3);
- OgnlValueStack vs = createValueStack();
vs.push(foo);
vs.setValue("child.child.bar", "bar:123");
@@ -1030,8 +955,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testSettingDogGender() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
vs.push(dog);
@@ -1041,8 +964,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testStatics() {
- OgnlValueStack vs = createValueStack();
-
Cat cat = new Cat();
vs.push(cat);
@@ -1054,7 +975,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(BigDecimal.ROUND_HALF_DOWN, vs.findValue("@java.math.BigDecimal@ROUND_HALF_DOWN"));
+ assertEquals(RoundingMode.HALF_DOWN, vs.findValue("@java.math.RoundingMode@HALF_DOWN"));
assertNull(vs.findValue("@vs3@BLAH"));
assertNull(vs.findValue("@com.nothing.here.Nothing@BLAH"));
}
@@ -1065,8 +986,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
* @since 2.5.21
*/
public void testNotThrowExceptionOnTopMissingProperty() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setName("Rover");
vs.push(dog);
@@ -1088,8 +1007,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
* @since 2.5.21
*/
public void testNotSkipUserReturnedNullValues() {
- OgnlValueStack vs = createValueStack();
-
Dog dog = new Dog();
dog.setName("Rover");
vs.push(dog);
@@ -1105,8 +1022,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testTop() {
- OgnlValueStack vs = createValueStack();
-
Dog dog1 = new Dog();
dog1.setAge(12);
dog1.setName("Rover");
@@ -1122,14 +1037,10 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
public void testTopIsDefaultTextProvider() {
- OgnlValueStack vs = createValueStack();
-
assertEquals(container.getInstance(TextProvider.class, "system"), vs.findValue("top"));
}
public void testTwoDogs() {
- OgnlValueStack vs = createValueStack();
-
Dog dog1 = new Dog();
dog1.setAge(12);
dog1.setName("Rover");
@@ -1149,96 +1060,90 @@ public class OgnlValueStackTest extends XWorkTestCase {
public void testTypeConversionError() {
TestBean bean = new TestBean();
- OgnlValueStack stack = createValueStack();
- stack.push(bean);
- stack.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
+ vs.push(bean);
+ vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE);
try {
- stack.setValue("count", "a", true);
+ vs.setValue("count", "a", true);
fail("Should have thrown a type conversion exception");
} catch (StrutsException e) {
// expected
}
- Map<String, ConversionData> conversionErrors = stack.getActionContext().getConversionErrors();
+ Map<String, ConversionData> conversionErrors = vs.getActionContext().getConversionErrors();
assertTrue(conversionErrors.containsKey("count"));
}
public void testConstructorWithAStack() {
- OgnlValueStack stack = createValueStack();
- stack.push("Hello World");
+ vs.push("Hello World");
- OgnlValueStack stack2 = new OgnlValueStack(stack,
+ OgnlValueStack stack2 = new OgnlValueStack(vs,
container.getInstance(XWorkConverter.class),
(CompoundRootAccessor) container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()), true);
container.inject(stack2);
- assertEquals(stack.getRoot(), stack2.getRoot());
- assertEquals(stack.peek(), stack2.peek());
+ assertEquals(vs.getRoot(), stack2.getRoot());
+ assertEquals(vs.peek(), stack2.peek());
assertEquals("Hello World", stack2.pop());
}
public void testDefaultType() {
- OgnlValueStack stack = createValueStack();
- stack.setDefaultType(String.class);
- stack.push("Hello World");
+ vs.setDefaultType(String.class);
+ vs.push("Hello World");
- assertEquals("Hello World", stack.findValue("top"));
- assertNull(stack.findValue(null));
+ assertEquals("Hello World", vs.findValue("top"));
+ assertNull(vs.findValue(null));
- stack.setDefaultType(Integer.class);
- stack.push(123);
- assertEquals(123, stack.findValue("top"));
+ vs.setDefaultType(Integer.class);
+ vs.push(123);
+ assertEquals(123, vs.findValue("top"));
}
public void testFindString() {
- OgnlValueStack stack = createValueStack();
- stack.setDefaultType(Integer.class);
- stack.push("Hello World");
+ vs.setDefaultType(Integer.class);
+ vs.push("Hello World");
- assertEquals("Hello World", stack.findString("top"));
- assertNull(stack.findString(null));
+ assertEquals("Hello World", vs.findString("top"));
+ assertNull(vs.findString(null));
}
public void testExpOverrides() {
Map<Object, Object> overrides = new HashMap<>();
overrides.put("claus", "top");
- OgnlValueStack stack = createValueStack();
- stack.setExprOverrides(overrides);
- stack.push("Hello World");
+ vs.setExprOverrides(overrides);
+ vs.push("Hello World");
- assertEquals("Hello World", stack.findValue("claus"));
- assertEquals("Hello World", stack.findString("claus"));
- assertEquals("Hello World", stack.findValue("top"));
- assertEquals("Hello World", stack.findString("top"));
+ assertEquals("Hello World", vs.findValue("claus"));
+ assertEquals("Hello World", vs.findString("claus"));
+ assertEquals("Hello World", vs.findValue("top"));
+ assertEquals("Hello World", vs.findString("top"));
- assertEquals("Hello World", stack.findValue("claus", String.class));
- assertEquals("Hello World", stack.findValue("top", String.class));
+ assertEquals("Hello World", vs.findValue("claus", String.class));
+ assertEquals("Hello World", vs.findValue("top", String.class));
- stack.getContext().put("santa", "Hello Santa");
- assertEquals("Hello Santa", stack.findValue("santa", String.class));
- assertNull(stack.findValue("unknown", String.class));
+ vs.getContext().put("santa", "Hello Santa");
+ assertEquals("Hello Santa", vs.findValue("santa", String.class));
+ assertNull(vs.findValue("unknown", String.class));
}
public void testWarnAboutInvalidProperties() {
- OgnlValueStack stack = createValueStack();
MyAction action = new MyAction();
action.setName("Don");
- stack.push(action);
+ vs.push(action);
// how to test the warning was logged?
- assertEquals("Don", stack.findValue("name", String.class));
- assertNull(stack.findValue("address", String.class));
+ assertEquals("Don", vs.findValue("name", String.class));
+ assertNull(vs.findValue("address", String.class));
// should log warning
- assertNull(stack.findValue("address.invalidProperty", String.class));
+ assertNull(vs.findValue("address.invalidProperty", String.class));
// if country is null, OGNL throws an exception
/*action.setAddress(new Address());
stack.push(action);*/
// should log warning
- assertNull(stack.findValue("address.country.id", String.class));
- assertNull(stack.findValue("address.country.name", String.class));
+ assertNull(vs.findValue("address.country.id", String.class));
+ assertNull(vs.findValue("address.country.name", String.class));
}
/**