Author: hlship
Date: Wed May 30 08:14:51 2007
New Revision: 542839

URL: http://svn.apache.org/viewvc?view=rev&rev=542839
Log:
TAPESTRY-1504: When a Map is converted to a SelectModel, the keys are converted 
unnecessarily to strings

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java?view=diff&rev=542839&r1=542838&r2=542839
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
 Wed May 30 08:14:51 2007
@@ -15,6 +15,7 @@
 package org.apache.tapestry.internal;
 
 import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newList;
+import static org.apache.tapestry.ioc.internal.util.Defense.notNull;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -183,12 +184,11 @@
      */
     public static OptionModel toOptionModel(Map.Entry input)
     {
-        Defense.notNull(input, "input");
+        notNull(input, "input");
 
-        String value = (input.getKey() != null ? 
String.valueOf(input.getKey()) : "");
-        String label = (input.getValue() != null ? 
String.valueOf(input.getValue()) : "");
+        String label = input.getValue() != null ? 
String.valueOf(input.getValue()) : "";
 
-        return new OptionModelImpl(label, false, value);
+        return new OptionModelImpl(label, false, input.getKey());
     }
 
     /**

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java?view=diff&rev=542839&r1=542838&r2=542839
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java
 Wed May 30 08:14:51 2007
@@ -19,6 +19,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -183,13 +184,28 @@
         assertEquals(options.size(), 3);
 
         assertEquals(options.get(0).getLabel(), "A");
-        assertEquals(options.get(0).getValue(), "1");
+        assertEquals(options.get(0).getValue(), 1);
 
         assertEquals(options.get(1).getLabel(), "");
-        assertEquals(options.get(1).getValue(), "2");
+        assertEquals(options.get(1).getValue(), 2);
 
         assertEquals(options.get(2).getLabel(), "C");
-        assertEquals(options.get(2).getValue(), "3");
+        assertEquals(options.get(2).getValue(), 3);
+    }
+
+    @Test
+    public void null_map_key_is_null_option_value()
+    {
+
+        Map<Integer, String> map = new HashMap<Integer, String>();
+        map.put(null, "Label");
+
+        List<OptionModel> options = TapestryInternalUtils.toOptionModels(map);
+
+        assertEquals(options.size(), 1);
+
+        assertEquals(options.get(0).getLabel(), "Label");
+        assertEquals(options.get(0).getValue(), null);
     }
 
     @Test


Reply via email to