This is an automated email from the ASF dual-hosted git repository. henrib pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
commit 4c17fb2790a2837ab2e2d49b3860c2700ff5609f Author: henrib <[email protected]> AuthorDate: Thu Sep 13 18:05:37 2018 +0200 JEXL: more tests on do...while loops --- .../java/org/apache/commons/jexl3/DoWhileTest.java | 35 ++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/test/java/org/apache/commons/jexl3/DoWhileTest.java b/src/test/java/org/apache/commons/jexl3/DoWhileTest.java index a01e851..b712821 100644 --- a/src/test/java/org/apache/commons/jexl3/DoWhileTest.java +++ b/src/test/java/org/apache/commons/jexl3/DoWhileTest.java @@ -20,8 +20,8 @@ import org.junit.Assert; import org.junit.Test; /** - * Tests for while statement. - * @since 1.1 + * Tests do while statement. + * @since 3.2 */ @SuppressWarnings({"UnnecessaryBoxing", "AssertEqualsBetweenInconvertibleTypes"}) public class DoWhileTest extends JexlTestCase { @@ -37,16 +37,32 @@ public class DoWhileTest extends JexlTestCase { Object o = e.execute(jc); Assert.assertNull("Result is not null", o); + e = JEXL.createScript("do {} while (false); 23"); + o = e.execute(jc); + Assert.assertEquals(23, o); + } @Test public void testWhileExecutesExpressionWhenLooping() throws Exception { JexlScript e = JEXL.createScript("do x = x + 1 while (x < 10)"); JexlContext jc = new MapContext(); - jc.set("x", new Integer(1)); + jc.set("x", 1); Object o = e.execute(jc); - Assert.assertEquals("Result is wrong", new Integer(10), o); + Assert.assertEquals(10, o); + Assert.assertEquals(10, jc.get("x")); + + e = JEXL.createScript("var x = 0; do x += 1; while (x < 23)"); + o = e.execute(jc); + Assert.assertEquals(23, o); + + + jc.set("x", 1); + e = JEXL.createScript("do x += 1; while (x < 23); return 42;"); + o = e.execute(jc); + Assert.assertEquals(23, jc.get("x")); + Assert.assertEquals(42, o); } @Test @@ -62,15 +78,4 @@ public class DoWhileTest extends JexlTestCase { Assert.assertEquals("y is wrong", new Integer(512), jc.get("y")); } - @Test - public void testWhileRemoveBroken() throws Exception { - try { - JexlScript e = JEXL.createScript("do remove while (x < 10)"); - Assert.fail("remove is out of loop!"); - } catch (JexlException.Parsing xparse) { - String str = xparse.detailedMessage(); - Assert.assertTrue(str.contains("remove")); - } - } - }
