From d4dd3386cc02833fa7113a496092b2e09a53c9e4 Mon Sep 17 00:00:00 2001 From: Yasser Zamani Date: Sat, 1 Jun 2019 09:37:19 +0430 Subject: [PATCH] test not throw exception on top missing property (WW-4999) instead continue to next objects in stack Also tests not skip returned null values by user method --- .../xwork2/ognl/OgnlValueStackTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) 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 e7e273cba..54b5ad725 100644 --- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java @@ -954,6 +954,33 @@ public class OgnlValueStackTest extends XWorkTestCase { assertNull(vs.findValue("@com.nothing.here.Nothing@BLAH")); } + /** + * Fails on 2.5.20 and earlier - tested on 2.5 (5/5/2016) and failed + * @since 2.5.21 + */ + public void testNotThrowExceptionOnTopMissingProperty() { + OgnlValueStack vs = createValueStack(); + + Dog dog = new Dog(); + dog.setName("Rover"); + vs.push(dog); + + Cat cat = new Cat(); + vs.push(cat); + + vs.setValue("age", 12, true); + + assertEquals(12, vs.findValue("age", true)); + assertEquals(12, vs.findValue("age", Integer.class, true)); + assertEquals(12, vs.findValue("getAge()", true)); + assertEquals(12, vs.findValue("getAge()", Integer.class, true)); + + assertNull(vs.findValue("name", true)); + assertNull(vs.findValue("name", String.class, true)); + assertNull(vs.findValue("getName()", true)); + assertNull(vs.findValue("getName()", String.class, true)); + } + public void testTop() { OgnlValueStack vs = createValueStack();