You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/06/01 20:40:36 UTC

(commons-jexl) branch master updated (e937696a -> 97747173)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git


    from e937696a Normalize format
     new e8cfc918 Normalize formatting
     new d1ea8269 Let JUnit handle exception
     new b47f99a1 Let JUnit handle exception
     new 97747173 Use assertThrows()

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/commons/jexl3/Issues400Test.java    | 752 +++++++++++----------
 1 file changed, 379 insertions(+), 373 deletions(-)


(commons-jexl) 03/04: Let JUnit handle exception

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git

commit b47f99a1bfa0d1ae9caaab3f12bde22a1e0d6b6f
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jun 1 16:13:29 2024 -0400

    Let JUnit handle exception
---
 src/test/java/org/apache/commons/jexl3/Issues400Test.java | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/test/java/org/apache/commons/jexl3/Issues400Test.java b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
index 6a88ac48..c4ba37d9 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues400Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
@@ -282,15 +282,11 @@ public class Issues400Test {
             final String fnsrc = fnsrc0 + map0;
             final JexlContext jc = new MapContext();
             final JexlEngine jexl = new JexlBuilder().create();
-            try {
-                final JexlScript e = jexl.createScript(fnsrc);
-                final Object o = e.execute(jc);
-                assertTrue(o instanceof Map);
-                final Map<?, ?> map = (Map<?, ?>) o;
-                assertEquals(map, ctl);
-            } catch (final JexlException xother) {
-                fail(fnsrc + " : " + xother.getMessage());
-            }
+            final JexlScript e = jexl.createScript(fnsrc);
+            final Object o = e.execute(jc);
+            assertTrue(o instanceof Map);
+            final Map<?, ?> map = (Map<?, ?>) o;
+            assertEquals(map, ctl);
         }
     }
 


(commons-jexl) 02/04: Let JUnit handle exception

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git

commit d1ea826917ac1053b661be301d2fccc68bd9a9d2
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jun 1 16:13:04 2024 -0400

    Let JUnit handle exception
---
 src/test/java/org/apache/commons/jexl3/Issues400Test.java | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/test/java/org/apache/commons/jexl3/Issues400Test.java b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
index b6cff99f..6a88ac48 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues400Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
@@ -90,16 +90,12 @@ public class Issues400Test {
     }
 
     private static void run404(final JexlEngine jexl, final String src, final Object... a) {
-        try {
-            final JexlScript script = jexl.createScript(src, "a", "b");
-            if (!src.endsWith(";")) {
-                assertEquals(script.getSourceText(), script.getParsedText());
-            }
-            final Object result = script.execute(null, a);
-            assertEquals(42, result);
-        } catch (final JexlException.Parsing xparse) {
-            fail(src);
+        final JexlScript script = jexl.createScript(src, "a", "b");
+        if (!src.endsWith(";")) {
+            assertEquals(script.getSourceText(), script.getParsedText());
         }
+        final Object result = script.execute(null, a);
+        assertEquals(42, result);
     }
 
     @Test


(commons-jexl) 01/04: Normalize formatting

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git

commit e8cfc9181d7ae2512b2046f5316035086e2dd1cf
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jun 1 16:12:37 2024 -0400

    Normalize formatting
---
 .../org/apache/commons/jexl3/Issues400Test.java    | 763 +++++++++++----------
 1 file changed, 390 insertions(+), 373 deletions(-)

diff --git a/src/test/java/org/apache/commons/jexl3/Issues400Test.java b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
index 688c6c08..b6cff99f 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues400Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
@@ -31,6 +31,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.atomic.AtomicLong;
@@ -43,407 +44,423 @@ import org.junit.jupiter.api.Test;
  */
 public class Issues400Test {
 
-  public static class VinzCaller {
-    private final JexlContext context;
-    VinzCaller(final JexlContext context) {
-      this.context = context;
-    }
-    public Object execute(final JexlScript script) {
-      return script.execute(context);
-    }
-  }
-
-  public static class VinzContext extends MapContext {
-    public String member(final String m, final String u) {
-      return m + '.' + u;
-    }
-  }
+    public static class VinzCaller {
+        private final JexlContext context;
 
-  /**
-   * Any function in a context can be used as a method of its first parameter.
-   * Overloads are respected.
-   */
-  public static class XuContext extends MapContext {
+        VinzCaller(final JexlContext context) {
+            this.context = context;
+        }
 
-    public String join(final int[] list, final String str) {
-      return join(Arrays.stream(list).iterator(), str);
+        public Object execute(final JexlScript script) {
+            return script.execute(context);
+        }
     }
 
-    public String join(final Iterable<?> list, final String str) {
-      return join(list.iterator(), str);
+    public static class VinzContext extends MapContext {
+        public String member(final String m, final String u) {
+            return m + '.' + u;
+        }
     }
 
-    public String join(final Iterator<?> iterator, final String str) {
-      if (!iterator.hasNext()) {
-        return "";
-      }
-      final StringBuilder strb = new StringBuilder(256);
-      strb.append(iterator.next().toString());
-      while(iterator.hasNext()) {
-        strb.append(str);
-        strb.append(Objects.toString(iterator.next(), "?"));
-      }
-      return strb.toString();
+    /**
+     * Any function in a context can be used as a method of its first parameter. Overloads are respected.
+     */
+    public static class XuContext extends MapContext {
+
+        public String join(final int[] list, final String str) {
+            return join(Arrays.stream(list).iterator(), str);
+        }
+
+        public String join(final Iterable<?> list, final String str) {
+            return join(list.iterator(), str);
+        }
+
+        public String join(final Iterator<?> iterator, final String str) {
+            if (!iterator.hasNext()) {
+                return "";
+            }
+            final StringBuilder strb = new StringBuilder(256);
+            strb.append(iterator.next().toString());
+            while (iterator.hasNext()) {
+                strb.append(str);
+                strb.append(Objects.toString(iterator.next(), "?"));
+            }
+            return strb.toString();
+        }
     }
-  }
 
-  private static void run404(final JexlEngine jexl, final String src, final Object...a) {
-    try {
-      final JexlScript script = jexl.createScript(src, "a", "b");
-      if (!src.endsWith(";")) {
-        assertEquals(script.getSourceText(), script.getParsedText());
-      }
-      final Object result = script.execute(null, a);
-      assertEquals(42, result);
-    } catch(final JexlException.Parsing xparse) {
-      fail(src);
+    private static void run404(final JexlEngine jexl, final String src, final Object... a) {
+        try {
+            final JexlScript script = jexl.createScript(src, "a", "b");
+            if (!src.endsWith(";")) {
+                assertEquals(script.getSourceText(), script.getParsedText());
+            }
+            final Object result = script.execute(null, a);
+            assertEquals(42, result);
+        } catch (final JexlException.Parsing xparse) {
+            fail(src);
+        }
     }
-  }
 
-  @Test
-  public void test402() {
-    final JexlContext jc = new MapContext();
-    final String[] sources = {
+    @Test
+    public void test402() {
+        final JexlContext jc = new MapContext();
+      // @formatter:off
+      final String[] sources = {
         "if (true) { return }",
         "if (true) { 3; return }",
         "(x->{ 3; return })()"
-    };
-    final JexlEngine jexl = new JexlBuilder().create();
-    for (final String source : sources) {
-      final JexlScript e = jexl.createScript(source);
-      final Object o = e.execute(jc);
-      assertNull(o);
+      };
+      // @formatter:on
+        final JexlEngine jexl = new JexlBuilder().create();
+        for (final String source : sources) {
+            final JexlScript e = jexl.createScript(source);
+            final Object o = e.execute(jc);
+            assertNull(o);
+        }
     }
-  }
-
-  @Test
-  public void test403() {
-    for(final String setmap : new String[]{
-        "  map1.`${item.a}` = 1;\n",
-        "  map1[`${item.a}`] = 1;\n",
-        "  map1[item.a] = 1;\n"
-    }) {
-      final String src = "var a = {'a': 1};\n" +
-          "var list = [a, a];\n" +
-          "let map1 = {:};\n" +
-          "for (var item : list) {\n" +
-          setmap +
-          "}\n " +
-          "map1";
-      final JexlEngine jexl = new JexlBuilder().cache(64).create();
-      final JexlScript script = jexl.createScript(src);
-      for (int i = 0; i < 2; ++i) {
-        final Object result = script.execute(null);
-        assertTrue(result instanceof Map);
-        final Map<?, ?> map = (Map<?, ?>) result;
-        assertEquals(1, map.size());
-        assertTrue(map.containsKey(1));
-        assertTrue(map.containsValue(1));
-      }
+
+    @Test
+    public void test403() {
+        // @formatter:off
+        final String[] strings = new String[]{
+            "  map1.`${item.a}` = 1;\n",
+            "  map1[`${item.a}`] = 1;\n",
+            "  map1[item.a] = 1;\n"
+         };
+        // @formatter:on
+        for (final String setmap : strings) {
+            // @formatter:off
+            final String src = "var a = {'a': 1};\n" +
+                "var list = [a, a];\n" +
+                "let map1 = {:};\n" +
+                "for (var item : list) {\n" +
+                setmap +
+                "}\n " +
+                "map1";
+            // @formatter:on
+            final JexlEngine jexl = new JexlBuilder().cache(64).create();
+            final JexlScript script = jexl.createScript(src);
+            for (int i = 0; i < 2; ++i) {
+                final Object result = script.execute(null);
+                assertTrue(result instanceof Map);
+                final Map<?, ?> map = (Map<?, ?>) result;
+                assertEquals(1, map.size());
+                assertTrue(map.containsKey(1));
+                assertTrue(map.containsValue(1));
+            }
+        }
     }
-  }
-
-  @Test
-  public void test404a() {
-    final JexlEngine jexl = new JexlBuilder()
-        .cache(64)
-        .strict(true)
-        .safe(false)
-        .create();
-    Map<String,Object> a = Collections.singletonMap("b", 42);
-    // access is constant
-    for(final String src : new String[]{ "a.b", "a?.b", "a['b']", "a?['b']", "a?.`b`"}) {
-      run404(jexl, src, a);
-      run404(jexl, src + ";", a);
+
+    @Test
+    public void test404a() {
+        final JexlEngine jexl = new JexlBuilder().cache(64).strict(true).safe(false).create();
+        Map<String, Object> a = Collections.singletonMap("b", 42);
+        // access is constant
+        for (final String src : new String[] { "a.b", "a?.b", "a['b']", "a?['b']", "a?.`b`" }) {
+            run404(jexl, src, a);
+            run404(jexl, src + ";", a);
+        }
+        // access is variable
+        for (final String src : new String[] { "a[b]", "a?[b]", "a?.`${b}`" }) {
+            run404(jexl, src, a, "b");
+            run404(jexl, src + ";", a, "b");
+        }
+        // add a 3rd access
+        final Map<String, Object> b = Collections.singletonMap("c", 42);
+        a = Collections.singletonMap("b", b);
+        for (final String src : new String[] { "a[b].c", "a?[b]?['c']", "a?.`${b}`.c" }) {
+            run404(jexl, src, a, "b");
+        }
     }
-    // access is variable
-    for(final String src : new String[]{ "a[b]", "a?[b]", "a?.`${b}`"}) {
-      run404(jexl, src, a, "b");
-      run404(jexl, src + ";", a, "b");
+
+    @Test
+    public void test404b() {
+      // @formatter:off
+      final JexlEngine jexl = new JexlBuilder()
+          .cache(64)
+          .strict(true)
+          .safe(false)
+          .create();
+      // @formatter:on
+        final Map<String, Object> b = Collections.singletonMap("c", 42);
+        final Map<String, Object> a = Collections.singletonMap("b", b);
+        JexlScript script;
+        Object result = -42;
+        script = jexl.createScript("a?['B']?['C']", "a");
+        result = script.execute(null, a);
+        assertEquals(script.getSourceText(), script.getParsedText());
+        assertNull(result);
+        script = jexl.createScript("a?['b']?['C']", "a");
+        assertEquals(script.getSourceText(), script.getParsedText());
+        result = script.execute(null, a);
+        assertNull(result);
+        script = jexl.createScript("a?['b']?['c']", "a");
+        assertEquals(script.getSourceText(), script.getParsedText());
+        result = script.execute(null, a);
+        assertEquals(42, result);
+        script = jexl.createScript("a?['B']?['C']?: 1042", "a");
+        assertEquals(script.getSourceText(), script.getParsedText());
+        result = script.execute(null, a);
+        assertEquals(1042, result);
+        // can still do ternary, note the space between ? and [
+        script = jexl.createScript("a? ['B']:['C']", "a");
+        result = script.execute(null, a);
+        assertArrayEquals(new String[] { "B" }, (String[]) result);
+        script = jexl.createScript("a?['b'] ?: ['C']", "a");
+        result = script.execute(null, a);
+        assertEquals(b, result);
+        script = jexl.createScript("a?['B'] ?: ['C']", "a");
+        result = script.execute(null, a);
+        assertArrayEquals(new String[] { "C" }, (String[]) result);
     }
-    // add a 3rd access
-    final Map<String,Object> b = Collections.singletonMap("c", 42);
-    a = Collections.singletonMap("b", b);
-    for(final String src : new String[]{ "a[b].c", "a?[b]?['c']", "a?.`${b}`.c"}) {
-      run404(jexl, src, a, "b");
+
+    @Test
+    public void test406a() {
+        // @formatter:off
+        final JexlEngine jexl = new JexlBuilder()
+            .cache(64)
+            .strict(true)
+            .safe(false)
+            .create();
+        // @formatter:on
+
+        final JexlContext context = new XuContext();
+        // @formatter:off
+        final List<String> list = Arrays.asList(
+            "[1, 2, 3, 4, ...].join('-')", // List<Integer>
+            "[1, 2, 3, 4,].join('-')", // int[]
+            "(1 .. 4).join('-')", // iterable<Integer>
+            "join([1, 2, 3, 4, ...], '-')",
+            "join([1, 2, 3, 4], '-')",
+            "join((1 .. 4), '-')");
+        // @formatter:on
+        for (final String src : list) {
+            final JexlScript script = jexl.createScript(src);
+            final Object result = script.execute(context);
+            assertEquals("1-2-3-4", result, src);
+        }
+
+        final String src0 = "x.join('*')";
+        final JexlScript script0 = jexl.createScript(src0, "x");
+        final String src1 = "join(x, '*')";
+        final JexlScript script1 = jexl.createScript(src1, "x");
+        for (final Object x : Arrays.asList(Arrays.asList(1, 2, 3, 4), new int[] { 1, 2, 3, 4 })) {
+            Object result = script0.execute(context, x);
+            assertEquals("1*2*3*4", result, src0);
+            result = script1.execute(context, x);
+            assertEquals("1*2*3*4", result, src1);
+        }
     }
-  }
-
-  @Test
-  public void test404b() {
-    final JexlEngine jexl = new JexlBuilder()
-        .cache(64)
-        .strict(true)
-        .safe(false)
-        .create();
-    final Map<String, Object> b = Collections.singletonMap("c", 42);
-    final Map<String, Object> a = Collections.singletonMap("b", b);
-    JexlScript script;
-    Object result = -42;
-    script = jexl.createScript("a?['B']?['C']", "a");
-    result = script.execute(null, a);
-    assertEquals(script.getSourceText(), script.getParsedText());
-    assertNull(result);
-    script = jexl.createScript("a?['b']?['C']", "a");
-    assertEquals(script.getSourceText(), script.getParsedText());
-    result = script.execute(null, a);
-    assertNull(result);
-    script = jexl.createScript("a?['b']?['c']", "a");
-    assertEquals(script.getSourceText(), script.getParsedText());
-    result = script.execute(null, a);
-    assertEquals(42, result);
-    script = jexl.createScript("a?['B']?['C']?: 1042", "a");
-    assertEquals(script.getSourceText(), script.getParsedText());
-    result = script.execute(null, a);
-    assertEquals(1042, result);
-    // can still do ternary, note the space between ? and [
-    script = jexl.createScript("a? ['B']:['C']", "a");
-    result = script.execute(null, a);
-    assertArrayEquals(new String[]{"B"}, (String[]) result);
-    script = jexl.createScript("a?['b'] ?: ['C']", "a");
-    result = script.execute(null, a);
-    assertEquals(b, result);
-    script = jexl.createScript("a?['B'] ?: ['C']", "a");
-    result = script.execute(null, a);
-    assertArrayEquals(new String[]{"C"}, (String[]) result);
-  }
-
-  @Test
-  public void test406a() {
-    final JexlEngine jexl = new JexlBuilder()
-        .cache(64)
-        .strict(true)
-        .safe(false)
-        .create();
-
-    final JexlContext context = new XuContext();
-    for(final String src : Arrays.asList(
-        "[1, 2, 3, 4, ...].join('-')", // List<Integer>
-        "[1, 2, 3, 4,].join('-')", // int[]
-        "(1 .. 4).join('-')", // iterable<Integer>
-        "join([1, 2, 3, 4, ...], '-')",
-        "join([1, 2, 3, 4], '-')",
-        "join((1 .. 4), '-')")) {
-      final JexlScript script = jexl.createScript(src);
-      final Object result = script.execute(context);
-      assertEquals("1-2-3-4", result, src);
+
+    @Test
+    public void test407() {
+        // Java version
+        final double r = 99.0d + 7.82d - 99.0d - 7.82d;
+        assertEquals(0d, r, 8.e-15); // Not zero, IEEE 754
+        // jexl
+        final JexlEngine jexl = new JexlBuilder().create();
+        final JexlScript script = jexl.createScript("a + b - a - b", "a", "b");
+        // using doubles, same as Java
+        Number result = (Number) script.execute(null, 99.0d, 7.82d);
+        assertEquals(0d, result.doubleValue(), 8.e-15);
+        // using BigdDecimal, more precise, still not zero
+        result = (Number) script.execute(null, new BigDecimal(99.0d), new BigDecimal(7.82d));
+        assertEquals(0d, result.doubleValue(), 3.e-32);
     }
 
-    final String src0 = "x.join('*')";
-    final JexlScript script0 = jexl.createScript(src0, "x");
-    final String src1 = "join(x, '*')";
-    final JexlScript script1 = jexl.createScript(src1, "x");
-    for(final Object x : Arrays.asList(
-        Arrays.asList(1, 2, 3, 4),
-        new int[]{1, 2, 3, 4})) {
-      Object result = script0.execute(context, x);
-      assertEquals("1*2*3*4", result, src0);
-      result = script1.execute(context, x);
-      assertEquals("1*2*3*4", result, src1);
+    @Test
+    public void test412() {
+        final Map<Object, Object> ctl = new HashMap<>();
+        ctl.put("one", 1);
+        ctl.put("two", 2);
+        final String fnsrc0 = "function f(x) { x }\n" + "let one = 'one', two = 'two';\n";
+        // @formatter:off
+        final List<String> list = Arrays.asList(
+            "{ one : f(1), two:f(2) }",
+            "{ one: f(1), two: f(2) }",
+            "{ one: f(1), two:f(2) }",
+            "{ one :f(1), two:f(2) }");
+        // @formatter:on
+        for (final String map0 : list) {
+            final String fnsrc = fnsrc0 + map0;
+            final JexlContext jc = new MapContext();
+            final JexlEngine jexl = new JexlBuilder().create();
+            try {
+                final JexlScript e = jexl.createScript(fnsrc);
+                final Object o = e.execute(jc);
+                assertTrue(o instanceof Map);
+                final Map<?, ?> map = (Map<?, ?>) o;
+                assertEquals(map, ctl);
+            } catch (final JexlException xother) {
+                fail(fnsrc + " : " + xother.getMessage());
+            }
+        }
     }
-  }
-
-  @Test
-  public void test407() {
-    // Java version
-    final double r = 99.0d + 7.82d -99.0d -7.82d;
-    assertEquals(0d, r, 8.e-15); // Not zero, IEEE 754
-    // jexl
-    final JexlEngine jexl = new JexlBuilder().create();
-    final JexlScript script = jexl.createScript("a + b - a - b", "a", "b");
-    // using doubles, same as Java
-    Number result = (Number) script.execute(null, 99.0d, 7.82d);
-    assertEquals(0d, result.doubleValue(), 8.e-15);
-    // using BigdDecimal, more precise, still not zero
-    result = (Number) script.execute(null, new BigDecimal(99.0d), new BigDecimal(7.82d));
-    assertEquals(0d, result.doubleValue(), 3.e-32);
-  }
-
-  @Test
-  public void test412() {
-    final Map<Object, Object> ctl = new HashMap<>();
-    ctl.put("one", 1);
-    ctl.put("two", 2);
-    final String fnsrc0 = "function f(x) { x }\n" +
-        "let one = 'one', two = 'two';\n";
-    for(final String map0 : Arrays.asList(
-        "{ one : f(1), two:f(2) }",
-        "{ one: f(1), two: f(2) }",
-        "{ one: f(1), two:f(2) }",
-        "{ one :f(1), two:f(2) }")) {
-      final String fnsrc = fnsrc0 + map0;
-      final JexlContext jc = new MapContext();
-      final JexlEngine jexl = new JexlBuilder().create();
-      try {
-        final JexlScript e = jexl.createScript(fnsrc);
-        final Object o = e.execute(jc);
-        assertTrue(o instanceof Map);
-        final Map<?, ?> map = (Map<?, ?>) o;
-        assertEquals(map, ctl);
-      } catch (final JexlException xother) {
-        fail(fnsrc + " : " + xother.getMessage());
-      }
+
+    @Test
+    public void test413a() {
+        final JexlBuilder builder = new JexlBuilder();
+        final JexlEngine jexl = builder.create();
+        final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
+        final Number result = (Number) script.execute(null, 12);
+        assertEquals(54, result);
     }
-  }
-
-  @Test
-  public void test413a() {
-    final JexlBuilder builder = new JexlBuilder();
-    final JexlEngine jexl = builder.create();
-    final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
-    final Number result = (Number) script.execute(null, 12);
-    assertEquals(54, result);
-  }
-
-  @Test
-  public void test413b() {
-    final JexlBuilder builder = new JexlBuilder();
-    final JexlOptions options = builder.options();
-    options.setConstCapture(true);
-    options.setLexical(true);
-    final JexlEngine jexl = builder.create();
-    final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
-    try {
-      final Number result = (Number) script.execute(null, 12);
-      fail("c should be const");
-    } catch(final JexlException.Variable xvar) {
-      assertEquals("c", xvar.getVariable());
+
+    @Test
+    public void test413b() {
+        final JexlBuilder builder = new JexlBuilder();
+        final JexlOptions options = builder.options();
+        options.setConstCapture(true);
+        options.setLexical(true);
+        final JexlEngine jexl = builder.create();
+        final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
+        try {
+            final Number result = (Number) script.execute(null, 12);
+            fail("c should be const");
+        } catch (final JexlException.Variable xvar) {
+            assertEquals("c", xvar.getVariable());
+        }
     }
-  }
-
-  @Test
-  public void test413c() {
-    final JexlBuilder builder = new JexlBuilder();
-    final JexlEngine jexl = builder.create();
-    final JexlScript script = jexl.createScript("#pragma jexl.options '+constCapture'\nvar c = 42; var f = y -> c += y; f(z)", "z");
-    try {
-      final Number result = (Number) script.execute(null, 12);
-      fail("c should be const");
-    } catch(final JexlException.Variable xvar) {
-      assertEquals("c", xvar.getVariable());
+
+    @Test
+    public void test413c() {
+        final JexlBuilder builder = new JexlBuilder();
+        final JexlEngine jexl = builder.create();
+        final JexlScript script = jexl.createScript("#pragma jexl.options '+constCapture'\nvar c = 42; var f = y -> c += y; f(z)", "z");
+        try {
+            final Number result = (Number) script.execute(null, 12);
+            fail("c should be const");
+        } catch (final JexlException.Variable xvar) {
+            assertEquals("c", xvar.getVariable());
+        }
     }
-  }
-
-  @Test
-  public void test413d() {
-    final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
-    final JexlEngine jexl = builder.create();
-    try {
-      final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
-      fail("c should be const");
-    } catch(final JexlException.Parsing xvar) {
-      assertTrue(xvar.getMessage().contains("const"));
+
+    @Test
+    public void test413d() {
+        final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
+        final JexlEngine jexl = builder.create();
+        try {
+            final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
+            fail("c should be const");
+        } catch (final JexlException.Parsing xvar) {
+            assertTrue(xvar.getMessage().contains("const"));
+        }
     }
-  }
-
-  @Test
-  public void test415() {
-    final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
-    final JexlEngine jexl = builder.create();
-    JexlScript script;
-    Object result;
-    script = jexl.createScript("`#${c}`", "c");
-    result = script.execute(null, 42);
-    assertEquals("#42",result.toString() );
-    script = jexl.createScript("`$${c}`", "c");
-    result = script.execute(null, 42);
-    assertEquals("$42",result.toString() );
-    script = jexl.createScript("`$#{c}`", "c");
-    result = script.execute(null, 42);
-    assertEquals("$42",result.toString() );
-    script = jexl.createScript("`##{c}`", "c");
-    result = script.execute(null, 42);
-    assertEquals("#42",result.toString() );
-    script = jexl.createScript("`--##{c}`", "c");
-    result = script.execute(null, 42);
-    assertEquals("--#42",result.toString() );
-  }
-
-  @Test
-  public void test419() throws NoSuchMethodException {
-    // check RESTRICTED permissions denies call to System::currentTimeMillis()
-    final Method currentTimeMillis = System.class.getMethod("currentTimeMillis");
-    assertFalse(RESTRICTED.allow(currentTimeMillis));
-    // compose using a positive class permission to allow just System::currentTimeMillis()
-    final JexlPermissions permissions = RESTRICTED.compose("java.lang { +System { currentTimeMillis(); } }");
-    // check no side effect on compose
-    assertTrue(permissions.allow(currentTimeMillis));
-    assertFalse(RESTRICTED.allow(currentTimeMillis));
-
-    // An engine with the System class as namespace and the positive permissions
-    final JexlEngine jexl = new JexlBuilder()
-        .namespaces(Collections.singletonMap("sns", System.class))
-        .permissions(permissions)
-        .create();
-
-    final AtomicLong result = new AtomicLong();
-    assertEquals(0, result.get());
-    final long now = System.currentTimeMillis();
-    // calling System::currentTimeMillis() is allowed and behaves as expected
-    jexl.createScript("result.set(sns:currentTimeMillis())", "result").execute(null, result);
-    assertTrue(result.get() >= now);
-
-    // we still cant call anything else
-    try {
-      jexl.createScript("sns:gc()").execute(null);
-    } catch(final JexlException.Method method) {
-      assertEquals("gc", method.getMethod());
+
+    @Test
+    public void test415() {
+        final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
+        final JexlEngine jexl = builder.create();
+        JexlScript script;
+        Object result;
+        script = jexl.createScript("`#${c}`", "c");
+        result = script.execute(null, 42);
+        assertEquals("#42", result.toString());
+        script = jexl.createScript("`$${c}`", "c");
+        result = script.execute(null, 42);
+        assertEquals("$42", result.toString());
+        script = jexl.createScript("`$#{c}`", "c");
+        result = script.execute(null, 42);
+        assertEquals("$42", result.toString());
+        script = jexl.createScript("`##{c}`", "c");
+        result = script.execute(null, 42);
+        assertEquals("#42", result.toString());
+        script = jexl.createScript("`--##{c}`", "c");
+        result = script.execute(null, 42);
+        assertEquals("--#42", result.toString());
+    }
+
+    @Test
+    public void test419() throws NoSuchMethodException {
+        // check RESTRICTED permissions denies call to System::currentTimeMillis()
+        final Method currentTimeMillis = System.class.getMethod("currentTimeMillis");
+        assertFalse(RESTRICTED.allow(currentTimeMillis));
+        // compose using a positive class permission to allow just System::currentTimeMillis()
+        final JexlPermissions permissions = RESTRICTED.compose("java.lang { +System { currentTimeMillis(); } }");
+        // check no side effect on compose
+        assertTrue(permissions.allow(currentTimeMillis));
+        assertFalse(RESTRICTED.allow(currentTimeMillis));
+
+        // An engine with the System class as namespace and the positive permissions
+        final JexlEngine jexl = new JexlBuilder().namespaces(Collections.singletonMap("sns", System.class)).permissions(permissions).create();
+
+        final AtomicLong result = new AtomicLong();
+        assertEquals(0, result.get());
+        final long now = System.currentTimeMillis();
+        // calling System::currentTimeMillis() is allowed and behaves as expected
+        jexl.createScript("result.set(sns:currentTimeMillis())", "result").execute(null, result);
+        assertTrue(result.get() >= now);
+
+        // we still cant call anything else
+        try {
+            jexl.createScript("sns:gc()").execute(null);
+        } catch (final JexlException.Method method) {
+            assertEquals("gc", method.getMethod());
+        }
     }
-  }
-
-  @Test public void testDocBreakContinue() {
-    final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
-    final JexlEngine jexl = builder.create();
-    JexlScript script;
-    Object result;
-    final String srcContinue = "let text = '';\n" +
-        "for (let i : (4..2)) { if (i == 3) continue; text += i; }\n" +
-        "text;";
-    script = jexl.createScript(srcContinue);
-    result = script.execute(null);
-    assertEquals("42", result);
-
-    final String srcBreak = "let i = 33;\n" +
-        "while (i < 66) { if (i == 42) { break; } i += 1; }\n" +
-        "i;";
-    script = jexl.createScript(srcBreak);
-    result = script.execute(null);
-    assertEquals(42, result);
-  }
-
-  @Test
-  public void testNamespaceVsTernary0() {
-    final VinzContext ctxt = new VinzContext();
-    ctxt.set("Users", "USERS");
-    final JexlEngine jexl = new JexlBuilder().safe(false).strict(true).silent(false).create();
-    JexlScript script = jexl.createScript("() -> {\n"
+
+    @Test
+    public void testDocBreakContinue() {
+        final JexlBuilder builder = new JexlBuilder().features(new JexlFeatures().constCapture(true));
+        final JexlEngine jexl = builder.create();
+        JexlScript script;
+        Object result;
+        // @formatter:off
+        final String srcContinue = "let text = '';\n" +
+            "for (let i : (4..2)) { if (i == 3) continue; text += i; }\n" +
+            "text;";
+        // @formatter:on
+        script = jexl.createScript(srcContinue);
+        result = script.execute(null);
+        assertEquals("42", result);
+        // @formatter:off
+        final String srcBreak = "let i = 33;\n" +
+            "while (i < 66) { if (i == 42) { break; } i += 1; }\n" +
+            "i;";
+        // @formatter:on
+        script = jexl.createScript(srcBreak);
+        result = script.execute(null);
+        assertEquals(42, result);
+    }
+
+    @Test
+    public void testNamespaceVsTernary0() {
+        final VinzContext ctxt = new VinzContext();
+        ctxt.set("Users", "USERS");
+        final JexlEngine jexl = new JexlBuilder().safe(false).strict(true).silent(false).create();
+        // @formatter:off
+        JexlScript script = jexl.createScript("() -> {\n"
             + "  var fn = (user) -> {\n"
             + "     user ? user : member(Users, 'user');\n"
             + "  }\n"
             + "}");
-    Object r = script.execute(ctxt);
-    assertNotNull(r);
-    script = (JexlScript) r;
-    r = script.execute(ctxt);
-    assertEquals("USERS.user", r);
-  }
-
-  @Test
-  public void testNamespaceVsTernary1() {
-    final VinzContext ctxt = new VinzContext();
-    ctxt.set("Users", "USERS");
-    ctxt.set("vinz", new VinzCaller(ctxt));
-    final JexlEngine jexl = new JexlBuilder().safe(false).strict(true).silent(false).create();
-    final JexlScript script = jexl.createScript(
- "vinz.execute(() -> {\n"
-        + "  var test = 42;\n"
-        + "  var user = useTest ? test : member(Users, 'user');\n"
-        + "})\n" , "useTest");
-    Object r = script.execute(ctxt, false);
-    assertNotNull(r);
-    assertEquals("USERS.user", r);
-    r = script.execute(ctxt, true);
-    assertNotNull(r);
-    assertEquals(42, r);
-  }
+        // @formatter:on
+        Object r = script.execute(ctxt);
+        assertNotNull(r);
+        script = (JexlScript) r;
+        r = script.execute(ctxt);
+        assertEquals("USERS.user", r);
+    }
+
+    @Test
+    public void testNamespaceVsTernary1() {
+        final VinzContext ctxt = new VinzContext();
+        ctxt.set("Users", "USERS");
+        ctxt.set("vinz", new VinzCaller(ctxt));
+        final JexlEngine jexl = new JexlBuilder().safe(false).strict(true).silent(false).create();
+        // @formatter:off
+        final JexlScript script = jexl.createScript(
+            "vinz.execute(() -> {\n"
+            + "  var test = 42;\n"
+            + "  var user = useTest ? test : member(Users, 'user');\n"
+            + "})\n" , "useTest");
+        // @formatter:on
+        Object r = script.execute(ctxt, false);
+        assertNotNull(r);
+        assertEquals("USERS.user", r);
+        r = script.execute(ctxt, true);
+        assertNotNull(r);
+        assertEquals(42, r);
+    }
 }


(commons-jexl) 04/04: Use assertThrows()

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git

commit 97747173167b864514b91b6770abff9a0b18d461
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jun 1 16:15:03 2024 -0400

    Use assertThrows()
---
 src/test/java/org/apache/commons/jexl3/Issues400Test.java | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/test/java/org/apache/commons/jexl3/Issues400Test.java b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
index c4ba37d9..ebb95276 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues400Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues400Test.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
@@ -307,12 +308,8 @@ public class Issues400Test {
         options.setLexical(true);
         final JexlEngine jexl = builder.create();
         final JexlScript script = jexl.createScript("var c = 42; var f = y -> c += y; f(z)", "z");
-        try {
-            final Number result = (Number) script.execute(null, 12);
-            fail("c should be const");
-        } catch (final JexlException.Variable xvar) {
-            assertEquals("c", xvar.getVariable());
-        }
+        final JexlException.Variable xvar = assertThrows(JexlException.Variable.class, () -> script.execute(null, 12), "c should be const");
+        assertEquals("c", xvar.getVariable());
     }
 
     @Test