You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2018/01/16 10:04:13 UTC

[sling-org-apache-sling-scripting-sightly-compiler] branch master updated: SLING-7380 - Querying maps with Integer keys returns null

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

radu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler.git


The following commit(s) were added to refs/heads/master by this push:
     new 0d962c0  SLING-7380 - Querying maps with Integer keys returns null
0d962c0 is described below

commit 0d962c01515510bd28b996ea15e0178e50f22b42
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Mon Jan 15 14:00:30 2018 +0100

    SLING-7380 - Querying maps with Integer keys returns null
    
    * allow maps with any type of key to be queried directly
    (closes #1)
---
 .../sightly/compiler/util/ObjectModel.java         |  2 +-
 .../scripting/sightly/util/ObjectModelTest.java    | 24 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
index 1e1096f..ea6eb2a 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
@@ -113,7 +113,7 @@ public final class ObjectModel {
             String propertyName = toString(property);
             if (StringUtils.isNotEmpty(propertyName)) {
                 if (target instanceof Map) {
-                    resolved = ((Map) target).get(propertyName);
+                    resolved = ((Map) target).get(property);
                 }
                 if (resolved == null) {
                     resolved = getField(target, propertyName);
diff --git a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
index 711dc07..d3e0924 100644
--- a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
+++ b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
@@ -153,6 +153,12 @@ public class ObjectModelTest {
         assertEquals(1, ObjectModel.resolveProperty(map, "one"));
         assertNull(ObjectModel.resolveProperty(map, null));
         assertNull(ObjectModel.resolveProperty(map, ""));
+        Map<Integer, String> stringMap = new HashMap<Integer, String>(){{
+            put(1, "one");
+            put(2, "two");
+        }};
+        assertEquals("one", ObjectModel.resolveProperty(stringMap, 1));
+        assertEquals("two", ObjectModel.resolveProperty(stringMap, 2));
         Person johnDoe = AdultFactory.createAdult("John", "Doe");
         assertEquals("Expected to be able to access public static final constants.", 1l, ObjectModel.resolveProperty(johnDoe, "CONSTANT"));
         assertNull("Did not expect to be able to access public fields from package protected classes.", ObjectModel.resolveProperty(johnDoe,
@@ -165,6 +171,24 @@ public class ObjectModelTest {
         assertNull("Expected null result for inexistent method.", ObjectModel.resolveProperty(johnDoe, "nomethod"));
     }
 
+    @Test
+    public void testGetIndex() {
+        Integer[] testArray = new Integer[] {1, 2, 3};
+        assertEquals(2, ObjectModel.getIndex(testArray, 1));
+        assertNull(ObjectModel.getIndex(testArray, 3));
+        assertNull(ObjectModel.getIndex(testArray, -1));
+        List<Integer> testList = Arrays.asList(testArray);
+        assertEquals(2, ObjectModel.getIndex(testList, 1));
+        assertNull(ObjectModel.getIndex(testList, 3));
+        assertNull(ObjectModel.getIndex(testList, -1));
+        Map<Integer, String> stringMap = new HashMap<Integer, String>(){{
+            put(1, "one");
+            put(2, "two");
+        }};
+        assertNull(ObjectModel.getIndex(stringMap, 1));
+        assertNull(ObjectModel.getIndex(stringMap, 2));
+    }
+
 
     private class Bag<T> implements Iterable<T> {
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@sling.apache.org" <co...@sling.apache.org>'].