1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jexl3;
18
19 import org.junit.Assert;
20 import org.junit.Test;
21
22
23
24
25
26 @SuppressWarnings({"UnnecessaryBoxing", "AssertEqualsBetweenInconvertibleTypes"})
27 public class WhileTest extends JexlTestCase {
28
29 public WhileTest() {
30 super("WhileTest");
31 }
32
33 @Test
34 public void testSimpleWhileFalse() throws Exception {
35 final JexlScript e = JEXL.createScript("while (false) ;");
36 final JexlContext jc = new MapContext();
37
38 final Object o = e.execute(jc);
39 Assert.assertNull("Result is not null", o);
40 }
41
42 @Test
43 public void testWhileExecutesExpressionWhenLooping() throws Exception {
44 final JexlScript e = JEXL.createScript("while (x < 10) x = x + 1;");
45 final JexlContext jc = new MapContext();
46 jc.set("x", new Integer(1));
47
48 final Object o = e.execute(jc);
49 Assert.assertEquals("Result is wrong", new Integer(10), o);
50 }
51
52 @Test
53 public void testWhileWithBlock() throws Exception {
54 final JexlScript e = JEXL.createScript("while (x < 10) { x = x + 1; y = y * 2; }");
55 final JexlContext jc = new MapContext();
56 jc.set("x", new Integer(1));
57 jc.set("y", new Integer(1));
58
59 final Object o = e.execute(jc);
60 Assert.assertEquals("Result is wrong", new Integer(512), o);
61 Assert.assertEquals("x is wrong", new Integer(10), jc.get("x"));
62 Assert.assertEquals("y is wrong", new Integer(512), jc.get("y"));
63 }
64 }