Author: niallp
Date: Sun Jul  1 20:31:25 2007
New Revision: 552393

URL: http://svn.apache.org/viewvc?view=rev&rev=552393
Log:
Changes for BEANUTILS43 and BEANUTILS-247 mean that "indexed Maps" and "mapped 
indexed" properties are now supported - adding tests

Modified:
    
jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java

Modified: 
jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java?view=diff&rev=552393&r1=552392&r2=552393
==============================================================================
--- 
jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java
 (original)
+++ 
jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java
 Sun Jul  1 20:31:25 2007
@@ -1052,6 +1052,30 @@
         }
     }
 
+    /**
+     * Test getting a value out of a mapped Map
+     */
+    public void testGetIndexedMap() {
+        Map firstMap  = new HashMap();
+        firstMap.put("FIRST-KEY-1", "FIRST-VALUE-1");
+        firstMap.put("FIRST-KEY-2", "FIRST-VALUE-2");
+        Map secondMap  = new HashMap();
+        secondMap.put("SECOND-KEY-1", "SECOND-VALUE-1");
+        secondMap.put("SECOND-KEY-2", "SECOND-VALUE-2");
+        
+        List mainList   = new ArrayList();
+        mainList.add(firstMap);
+        mainList.add(secondMap);
+        TestBean bean = new TestBean(mainList);
+        try {
+            assertEquals("listIndexed[0](FIRST-KEY-1)",  "FIRST-VALUE-1",   
PropertyUtils.getProperty(bean, "listIndexed[0](FIRST-KEY-1)"));
+            assertEquals("listIndexed[0](FIRST-KEY-2)",  "FIRST-VALUE-2",   
PropertyUtils.getProperty(bean, "listIndexed[0](FIRST-KEY-2)"));
+            assertEquals("listIndexed[1](SECOND-KEY-1)", "SECOND-VALUE-1",  
PropertyUtils.getProperty(bean, "listIndexed[1](SECOND-KEY-1)"));
+            assertEquals("listIndexed[1](SECOND-KEY-2)", "SECOND-VALUE-2",  
PropertyUtils.getProperty(bean, "listIndexed[1](SECOND-KEY-2)"));
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+    }
 
     /**
      * Corner cases on getMappedProperty invalid arguments.
@@ -1120,6 +1144,40 @@
 
     }
 
+    /**
+     * Test getting an indexed value out of a mapped array
+     */
+    public void testGetMappedArray() {
+        TestBean bean = new TestBean();
+        String[] array = new String[] {"abc", "def", "ghi"};
+        bean.getMapProperty().put("mappedArray", array);
+        try {
+            assertEquals("abc", PropertyUtils.getProperty(bean, 
"mapProperty(mappedArray)[0]"));
+            assertEquals("def", PropertyUtils.getProperty(bean, 
"mapProperty(mappedArray)[1]"));
+            assertEquals("ghi", PropertyUtils.getProperty(bean, 
"mapProperty(mappedArray)[2]"));
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+    }
+
+    /**
+     * Test getting an indexed value out of a mapped List
+     */
+    public void testGetMappedList() {
+        TestBean bean = new TestBean();
+        List list = new ArrayList();
+        list.add("klm");
+        list.add("nop");
+        list.add("qrs");
+        bean.getMapProperty().put("mappedList", list);
+        try {
+            assertEquals("klm", PropertyUtils.getProperty(bean, 
"mapProperty(mappedList)[0]"));
+            assertEquals("nop", PropertyUtils.getProperty(bean, 
"mapProperty(mappedList)[1]"));
+            assertEquals("qrs", PropertyUtils.getProperty(bean, 
"mapProperty(mappedList)[2]"));
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+    }
 
     /**
      * Test getting a value out of a mapped Map
@@ -2412,6 +2470,35 @@
     }
 
     /**
+     * Test setting a value out of a mapped Map
+     */
+    public void testSetIndexedMap() {
+        Map firstMap  = new HashMap();
+        firstMap.put("FIRST-KEY-1", "FIRST-VALUE-1");
+        firstMap.put("FIRST-KEY-2", "FIRST-VALUE-2");
+        Map secondMap  = new HashMap();
+        secondMap.put("SECOND-KEY-1", "SECOND-VALUE-1");
+        secondMap.put("SECOND-KEY-2", "SECOND-VALUE-2");
+        
+        List mainList = new ArrayList();
+        mainList.add(firstMap);
+        mainList.add(secondMap);
+        TestBean bean = new TestBean(mainList);
+
+        assertEquals("BEFORE",  null,              
((Map)bean.getListIndexed().get(0)).get("FIRST-NEW-KEY"));
+        assertEquals("BEFORE",  "SECOND-VALUE-1",  
((Map)bean.getListIndexed().get(1)).get("SECOND-KEY-1"));
+        try {
+            PropertyUtils.setProperty(bean, "listIndexed[0](FIRST-NEW-KEY)", 
"FIRST-NEW-VALUE");
+            PropertyUtils.setProperty(bean, "listIndexed[1](SECOND-KEY-1)",  
"SECOND-VALUE-1-UPDATED");
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+        assertEquals("BEFORE", "FIRST-NEW-VALUE",         
((Map)bean.getListIndexed().get(0)).get("FIRST-NEW-KEY"));
+        assertEquals("AFTER",  "SECOND-VALUE-1-UPDATED",  
((Map)bean.getListIndexed().get(1)).get("SECOND-KEY-1"));
+    }
+
+
+    /**
      * Positive and negative tests on setIndexedProperty valid arguments.
      */
     public void testSetIndexedValues() {
@@ -2823,6 +2910,43 @@
 
     }
 
+
+    /**
+     * Test setting an indexed value out of a mapped array
+     */
+    public void testSetMappedArray() {
+        TestBean bean = new TestBean();
+        String[] array = new String[] {"abc", "def", "ghi"};
+        bean.getMapProperty().put("mappedArray", array);
+
+        assertEquals("BEFORE", "def", 
((String[])bean.getMapProperty().get("mappedArray"))[1]);
+        try {
+            PropertyUtils.setProperty(bean, "mapProperty(mappedArray)[1]", 
"DEF-UPDATED");
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+        assertEquals("AFTER", "DEF-UPDATED", 
((String[])bean.getMapProperty().get("mappedArray"))[1]);
+    }
+
+    /**
+     * Test setting an indexed value out of a mapped List
+     */
+    public void testSetMappedList() {
+        TestBean bean = new TestBean();
+        List list = new ArrayList();
+        list.add("klm");
+        list.add("nop");
+        list.add("qrs");
+        bean.getMapProperty().put("mappedList", list);
+
+        assertEquals("BEFORE", "klm", 
((List)bean.getMapProperty().get("mappedList")).get(0));
+        try {
+            PropertyUtils.setProperty(bean, "mapProperty(mappedList)[0]", 
"KLM-UPDATED");
+        } catch (Throwable t) {
+            fail("Threw " + t + "");
+        }
+        assertEquals("AFTER", "KLM-UPDATED", 
((List)bean.getMapProperty().get("mappedList")).get(0));
+    }
 
     /**
      * Test setting a value out of a mapped Map



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to