From 4e4566c55fbf4171d35ef2df10ca6a786205aa17 Mon Sep 17 00:00:00 2001 From: ryounes Date: Tue, 19 Apr 2011 18:46:14 +0000 Subject: [PATCH] NIHVIVO-1564 Modify dump data structure so variable name is a map key rather than the value of "name" key: this will work better for dumpAll directive. --- .../ext/dump/BaseDumpDirective.java | 14 +- .../ext/dump/DumpDirectiveTest.java | 334 ++++++++++-------- 2 files changed, 202 insertions(+), 146 deletions(-) diff --git a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java index 73e0dffb3..454d6c79a 100644 --- a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java +++ b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java @@ -54,7 +54,6 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { enum Key { METHODS("methods"), - NAME("name"), PROPERTIES("properties"), TYPE("type"), VALUE("value"), @@ -123,25 +122,26 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { protected Map getTemplateVariableDump(String varName, TemplateModel model) throws TemplateModelException { - Map map = new HashMap(); - map.put(Key.NAME.toString(), varName); + Map value = new HashMap(); // Don't return null if model == null. We still want to send the map to the template. if (model != null) { // TemplateMethodModel and TemplateDirectiveModel objects can only be // included in the data model at the top level. if (model instanceof TemplateMethodModel) { - map.putAll( getTemplateModelDump( ( TemplateMethodModel)model, varName ) ); + value.putAll( getTemplateModelDump( ( TemplateMethodModel)model, varName ) ); } else if (model instanceof TemplateDirectiveModel) { - map.putAll( getTemplateModelDump( ( TemplateDirectiveModel)model, varName ) ); + value.putAll( getTemplateModelDump( ( TemplateDirectiveModel)model, varName ) ); } else { - map.putAll(getDump(model)); + value.putAll(getDump(model)); } } - return map; + Map dump = new HashMap(); + dump.put(varName, value); + return dump; } private Map getDump(TemplateModel model) throws TemplateModelException { diff --git a/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java b/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java index ab1febc1a..1adb4b124 100644 --- a/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java +++ b/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java @@ -79,11 +79,13 @@ public class DumpDirectiveTest { String value = "Rover"; dataModel.put(varName, value); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.STRING); - expectedDump.put(Key.VALUE.toString(), value); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.STRING); + expectedDumpValue.put(Key.VALUE.toString(), value); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -96,11 +98,13 @@ public class DumpDirectiveTest { boolean value = true; dataModel.put(varName, value); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.BOOLEAN); - expectedDump.put(Key.VALUE.toString(), value); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.BOOLEAN); + expectedDumpValue.put(Key.VALUE.toString(), value); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -113,11 +117,13 @@ public class DumpDirectiveTest { int value = 7; dataModel.put(varName, value); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.NUMBER); - expectedDump.put(Key.VALUE.toString(), value); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.NUMBER); + expectedDumpValue.put(Key.VALUE.toString(), value); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -130,12 +136,14 @@ public class DumpDirectiveTest { Date now = new Date(); dataModel.put(varName, now); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DATE); - expectedDump.put(Key.DATE_TYPE.toString(), DateType.UNKNOWN); - expectedDump.put(Key.VALUE.toString(), now); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DATE); + expectedDumpValue.put(Key.DATE_TYPE.toString(), DateType.UNKNOWN); + expectedDumpValue.put(Key.VALUE.toString(), now); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -150,12 +158,14 @@ public class DumpDirectiveTest { Date myDate = c.getTime(); dataModel.put("myDate", myDate); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DATE); - expectedDump.put(Key.DATE_TYPE.toString(), DateType.UNKNOWN); - expectedDump.put(Key.VALUE.toString(), myDate); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DATE); + expectedDumpValue.put(Key.DATE_TYPE.toString(), DateType.UNKNOWN); + expectedDumpValue.put(Key.VALUE.toString(), myDate); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @Test @@ -167,12 +177,14 @@ public class DumpDirectiveTest { Timestamp ts = new Timestamp(1302297332043L); dataModel.put(varName, ts); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DATE); - expectedDump.put(Key.DATE_TYPE.toString(), DateType.DATETIME); - expectedDump.put(Key.VALUE.toString(), ts); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DATE); + expectedDumpValue.put(Key.DATE_TYPE.toString(), DateType.DATETIME); + expectedDumpValue.put(Key.VALUE.toString(), ts); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -185,12 +197,14 @@ public class DumpDirectiveTest { java.sql.Date date = new java.sql.Date(1302297332043L); dataModel.put(varName, date); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DATE); - expectedDump.put(Key.DATE_TYPE.toString(), DateType.DATE); - expectedDump.put(Key.VALUE.toString(), date); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DATE); + expectedDumpValue.put(Key.DATE_TYPE.toString(), DateType.DATE); + expectedDumpValue.put(Key.VALUE.toString(), date); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -203,12 +217,14 @@ public class DumpDirectiveTest { Time time = new Time(1302297332043L); dataModel.put(varName, time); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DATE); - expectedDump.put(Key.DATE_TYPE.toString(), DateType.TIME); - expectedDump.put(Key.VALUE.toString(), time); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DATE); + expectedDumpValue.put(Key.DATE_TYPE.toString(), DateType.TIME); + expectedDumpValue.put(Key.VALUE.toString(), time); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -223,11 +239,13 @@ public class DumpDirectiveTest { TemplateMethodModel methodModel = new HelplessMethod(); dataModel.put(varName, methodModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.METHOD); - expectedDump.put("help", null); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.METHOD); + expectedDumpValue.put("help", null); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -240,11 +258,13 @@ public class DumpDirectiveTest { TemplateMethodModel methodModel = new HelpfulMethod(); dataModel.put(varName, methodModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.METHOD); - expectedDump.put("help", getMethodHelp(varName)); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.METHOD); + expectedDumpValue.put("help", getMethodHelp(varName)); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -257,11 +277,13 @@ public class DumpDirectiveTest { TemplateMethodModel methodModel = new MethodWithBadHelp(); dataModel.put(varName, methodModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.METHOD); - expectedDump.put("help", null); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.METHOD); + expectedDumpValue.put("help", null); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -274,11 +296,13 @@ public class DumpDirectiveTest { TemplateDirectiveModel directiveModel = new HelplessDirective(); dataModel.put(varName, directiveModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DIRECTIVE); - expectedDump.put("help", null); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DIRECTIVE); + expectedDumpValue.put("help", null); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -291,11 +315,13 @@ public class DumpDirectiveTest { TemplateDirectiveModel directiveModel = new HelpfulDirective(); dataModel.put(varName, directiveModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DIRECTIVE); - expectedDump.put("help", getDirectiveHelp(varName)); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DIRECTIVE); + expectedDumpValue.put("help", getDirectiveHelp(varName)); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -308,11 +334,13 @@ public class DumpDirectiveTest { TemplateDirectiveModel directiveModel = new DirectiveWithBadHelp(); dataModel.put(varName, directiveModel); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.DIRECTIVE); - expectedDump.put("help", null); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.DIRECTIVE); + expectedDumpValue.put("help", null); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -328,18 +356,20 @@ public class DumpDirectiveTest { myList.add("oranges"); dataModel.put(varName, myList); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.SEQUENCE); - List> myListExpectedDump = new ArrayList>(myList.size()); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.SEQUENCE); + List> myListexpectedDumpValue = new ArrayList>(myList.size()); for ( String str : myList) { Map itemDump = new HashMap(); itemDump.put(Key.TYPE.toString(), Type.STRING); itemDump.put(Key.VALUE.toString(), str); - myListExpectedDump.add(itemDump); + myListexpectedDumpValue.add(itemDump); } - expectedDump.put(Key.VALUE.toString(), myListExpectedDump); + expectedDumpValue.put(Key.VALUE.toString(), myListexpectedDumpValue); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -352,18 +382,20 @@ public class DumpDirectiveTest { String[] myArray = { "apples", "bananas", "oranges" }; dataModel.put(varName, myArray); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.SEQUENCE); - List> myArrayExpectedDump = new ArrayList>(myArray.length); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.SEQUENCE); + List> myArrayexpectedDumpValue = new ArrayList>(myArray.length); for ( String str : myArray) { Map itemDump = new HashMap(); itemDump.put(Key.TYPE.toString(), Type.STRING); itemDump.put(Key.VALUE.toString(), str); - myArrayExpectedDump.add(itemDump); + myArrayexpectedDumpValue.add(itemDump); } - expectedDump.put(Key.VALUE.toString(), myArrayExpectedDump); + expectedDumpValue.put(Key.VALUE.toString(), myArrayexpectedDumpValue); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -392,41 +424,43 @@ public class DumpDirectiveTest { dataModel.put(varName, mixedList); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.SEQUENCE); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.SEQUENCE); - List> mixedListExpectedDump = new ArrayList>(mixedList.size()); + List> mixedListexpectedDumpValue = new ArrayList>(mixedList.size()); - Map myStringExpectedDump = new HashMap(); - myStringExpectedDump.put(Key.TYPE.toString(), Type.STRING); - myStringExpectedDump.put(Key.VALUE.toString(), myString); - mixedListExpectedDump.add(myStringExpectedDump); + Map myStringexpectedDumpValue = new HashMap(); + myStringexpectedDumpValue.put(Key.TYPE.toString(), Type.STRING); + myStringexpectedDumpValue.put(Key.VALUE.toString(), myString); + mixedListexpectedDumpValue.add(myStringexpectedDumpValue); - Map myIntExpectedDump = new HashMap(); - myIntExpectedDump.put(Key.TYPE.toString(), Type.NUMBER); - myIntExpectedDump.put(Key.VALUE.toString(), myInt); - mixedListExpectedDump.add(myIntExpectedDump); + Map myIntexpectedDumpValue = new HashMap(); + myIntexpectedDumpValue.put(Key.TYPE.toString(), Type.NUMBER); + myIntexpectedDumpValue.put(Key.VALUE.toString(), myInt); + mixedListexpectedDumpValue.add(myIntexpectedDumpValue); - Map myBoolExpectedDump = new HashMap(); - myBoolExpectedDump.put(Key.TYPE.toString(), Type.BOOLEAN); - myBoolExpectedDump.put(Key.VALUE.toString(), myBool); - mixedListExpectedDump.add(myBoolExpectedDump); + Map myBoolexpectedDumpValue = new HashMap(); + myBoolexpectedDumpValue.put(Key.TYPE.toString(), Type.BOOLEAN); + myBoolexpectedDumpValue.put(Key.VALUE.toString(), myBool); + mixedListexpectedDumpValue.add(myBoolexpectedDumpValue); - Map myListExpectedDump = new HashMap(); - myListExpectedDump.put(Key.TYPE.toString(), Type.SEQUENCE); - List> myListItemsExpectedDump = new ArrayList>(myList.size()); + Map myListexpectedDumpValue = new HashMap(); + myListexpectedDumpValue.put(Key.TYPE.toString(), Type.SEQUENCE); + List> myListItemsexpectedDumpValue = new ArrayList>(myList.size()); for ( String animal : myList ) { Map itemDump = new HashMap(); itemDump.put(Key.TYPE.toString(), Type.STRING); itemDump.put(Key.VALUE.toString(), animal); - myListItemsExpectedDump.add(itemDump); + myListItemsexpectedDumpValue.add(itemDump); } - myListExpectedDump.put(Key.VALUE.toString(), myListItemsExpectedDump); - mixedListExpectedDump.add(myListExpectedDump); + myListexpectedDumpValue.put(Key.VALUE.toString(), myListItemsexpectedDumpValue); + mixedListexpectedDumpValue.add(myListexpectedDumpValue); - expectedDump.put(Key.VALUE.toString(), mixedListExpectedDump); + expectedDumpValue.put(Key.VALUE.toString(), mixedListexpectedDumpValue); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -444,18 +478,20 @@ public class DumpDirectiveTest { } dataModel.put(varName, myIntSet); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.SEQUENCE); - List> myIntSetExpectedDump = new ArrayList>(myIntSet.size()); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.SEQUENCE); + List> myIntSetexpectedDumpValue = new ArrayList>(myIntSet.size()); for ( int i : myIntSet ) { Map itemDump = new HashMap(); itemDump.put(Key.TYPE.toString(), Type.NUMBER); itemDump.put(Key.VALUE.toString(), i); - myIntSetExpectedDump.add(itemDump); + myIntSetexpectedDumpValue.add(itemDump); } - expectedDump.put(Key.VALUE.toString(), myIntSetExpectedDump); + expectedDumpValue.put(Key.VALUE.toString(), myIntSetexpectedDumpValue); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -474,18 +510,20 @@ public class DumpDirectiveTest { TemplateCollectionModel myCollection = new SimpleCollection(odds); dataModel.put(varName, myCollection); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.COLLECTION); - List> myCollectionExpectedDump = new ArrayList>(odds.size()); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.COLLECTION); + List> myCollectionexpectedDumpValue = new ArrayList>(odds.size()); for ( int i : odds ) { Map itemDump = new HashMap(); itemDump.put(Key.TYPE.toString(), Type.NUMBER); itemDump.put(Key.VALUE.toString(), i); - myCollectionExpectedDump.add(itemDump); + myCollectionexpectedDumpValue.add(itemDump); } - expectedDump.put(Key.VALUE.toString(), myCollectionExpectedDump); + expectedDumpValue.put(Key.VALUE.toString(), myCollectionexpectedDumpValue); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + test(varName, dataModel, expectedDump); } @@ -508,9 +546,8 @@ public class DumpDirectiveTest { myMap.put("Richmond", "Virginia"); dataModel.put(varName, myMap); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.HASH_EX); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.HASH_EX); SortedMap myMapExpectedDump = new TreeMap(); for ( String key : myMap.keySet() ) { @@ -519,15 +556,20 @@ public class DumpDirectiveTest { itemDump.put(Key.VALUE.toString(), myMap.get(key)); myMapExpectedDump.put(key, itemDump); } - expectedDump.put(Key.VALUE.toString(), (myMapExpectedDump)); + expectedDumpValue.put(Key.VALUE.toString(), (myMapExpectedDump)); + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + Map dump = getDump(varName, dataModel); assertEquals(expectedDump, dump); // Test the sorting of the map List expectedKeys = new ArrayList(myMapExpectedDump.keySet()); @SuppressWarnings("unchecked") - SortedMap myMapActualDump = (SortedMap) dump.get(Key.VALUE.toString()); + Map actualDumpValue = (Map) dump.get(varName); + @SuppressWarnings("unchecked") + SortedMap myMapActualDump = (SortedMap) actualDumpValue.get(Key.VALUE.toString()); List actualKeys = new ArrayList(myMapActualDump.keySet()); assertEquals(expectedKeys, actualKeys); } @@ -567,10 +609,9 @@ public class DumpDirectiveTest { dataModel.put(varName, mixedMap); - Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), Type.HASH_EX); - Map mixedMapExpectedDump = new HashMap(mixedMap.size()); + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), Type.HASH_EX); + SortedMap mixedMapExpectedDump = new TreeMap(); Map myStringExpectedDump = new HashMap(); myStringExpectedDump.put(Key.TYPE.toString(), Type.STRING); @@ -617,21 +658,32 @@ public class DumpDirectiveTest { myMapExpectedDump.put(Key.VALUE.toString(), myMapItemsExpectedDump); mixedMapExpectedDump.put("myMap", myMapExpectedDump); - expectedDump.put(Key.VALUE.toString(), mixedMapExpectedDump); - + expectedDumpValue.put(Key.VALUE.toString(), mixedMapExpectedDump); + + Map expectedDump = new HashMap(); + expectedDump.put(varName, expectedDumpValue); + Map dump = getDump(varName, dataModel); assertEquals(expectedDump, dump); - // Test the sorting of the myMap dump - List expectedKeys = new ArrayList(myMapItemsExpectedDump.keySet()); + // Test the sorting of the outer map + List expectedDumpValueKeys = new ArrayList(mixedMapExpectedDump.keySet()); @SuppressWarnings("unchecked") - Map mixedMapActualDump = (Map) dump.get(Key.VALUE.toString()); + Map actualDumpValue = (Map) dump.get(varName); @SuppressWarnings("unchecked") - Map myMapActualDump = (Map) mixedMapActualDump.get("myMap"); + SortedMap mixedMapActualDump = (SortedMap) actualDumpValue.get(Key.VALUE.toString()); + List actualDumpValueKeys = new ArrayList(mixedMapActualDump.keySet()); + assertEquals(expectedDumpValueKeys, actualDumpValueKeys); + + // Test the sorting of the inner map + List myMapItemsExpectedDumpKeys = new ArrayList(myMapItemsExpectedDump.keySet()); @SuppressWarnings("unchecked") - Map myMapItemsActualDump = (SortedMap) myMapActualDump.get(Key.VALUE.toString()); - List actualKeys = new ArrayList(myMapItemsActualDump.keySet()); - assertEquals(expectedKeys, actualKeys); + Map myMapActualDump = (Map) mixedMapActualDump.get("myMap"); + @SuppressWarnings("unchecked") + SortedMap myMapItemsActualDump = (SortedMap) myMapActualDump.get(Key.VALUE.toString()); + List myMapItemsActualDumpKeys = new ArrayList(myMapItemsActualDump.keySet()); + assertEquals(myMapItemsExpectedDumpKeys, myMapItemsActualDumpKeys); + } @Test @@ -674,10 +726,12 @@ public class DumpDirectiveTest { // logging is suppressed, so what do we do here? } + Map expectedDumpValue = new HashMap(); + expectedDumpValue.put(Key.TYPE.toString(), "freemarker.ext.dump.DumpDirectiveTest$Employee"); + expectedDumpValue.put(Key.VALUE.toString(), getJohnDoeExpectedDump(exposureLevel)); + Map expectedDump = new HashMap(); - expectedDump.put(Key.NAME.toString(), varName); - expectedDump.put(Key.TYPE.toString(), "freemarker.ext.dump.DumpDirectiveTest$Employee"); - expectedDump.put(Key.VALUE.toString(), getJohnDoeExpectedDump(exposureLevel)); + expectedDump.put(varName, expectedDumpValue); testObjectDump(varName, dataModel, expectedDump); } @@ -689,18 +743,22 @@ public class DumpDirectiveTest { // Test the sorting of the properties @SuppressWarnings("unchecked") - Map valueExpectedDump = (Map) expectedDump.get(Key.VALUE.toString()); + Map expectedVarDump = (Map) expectedDump.get(varName); @SuppressWarnings("unchecked") - Map valueActualDump = (Map) dump.get(Key.VALUE.toString()); + Map expectedValueDump = (Map) expectedVarDump.get(Key.VALUE.toString()); + @SuppressWarnings("unchecked") + SortedMap expectedPropertyDump = (SortedMap) expectedValueDump.get(Key.PROPERTIES.toString()); + List expectedPropertyDumpKeys = new ArrayList(expectedPropertyDump.keySet()); @SuppressWarnings("unchecked") - Map propertiesExpectedDump = (Map) valueExpectedDump.get(Key.PROPERTIES.toString()); - List propertyKeysExpected = new ArrayList(propertiesExpectedDump.keySet()); - + Map actualVarDump = (Map) dump.get(varName); @SuppressWarnings("unchecked") - Map propertiesActualDump = (Map) valueActualDump.get(Key.PROPERTIES.toString()); - List propertyKeysActual = new ArrayList(propertiesActualDump.keySet()); - assertEquals(propertyKeysExpected, propertyKeysActual); + Map actualValueDump = (Map) actualVarDump.get(Key.VALUE.toString()); + @SuppressWarnings("unchecked") + SortedMap actualPropertyDump = (SortedMap) actualValueDump.get(Key.PROPERTIES.toString()); + List actualPropertyDumpKeys = new ArrayList(actualPropertyDump.keySet()); + + assertEquals(expectedPropertyDumpKeys, actualPropertyDumpKeys); } @@ -802,8 +860,6 @@ public class DumpDirectiveTest { private Map getMethodHelp(String name) { Map map = new HashMap(); - map.put(Key.NAME.toString(), name); - map.put("returns", "The square of the argument"); Listparams = new ArrayList();