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]