You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/07/15 22:06:35 UTC

svn commit: r422287 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/enhance/InjectObjectWorker.java test/org/apache/tapestry/enhance/TestInjectObjectWorker.java

Author: jkuhnert
Date: Sat Jul 15 13:06:34 2006
New Revision: 422287

URL: http://svn.apache.org/viewvc?rev=422287&view=rev
Log:
Created new test case to try and fix bug, unfortunately it's a hivemind issue so there's nothing we can do.

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectObjectWorker.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectObjectWorker.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectObjectWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectObjectWorker.java?rev=422287&r1=422286&r2=422287&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectObjectWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/InjectObjectWorker.java Sat Jul 15 13:06:34 2006
@@ -58,19 +58,19 @@
         op.claimReadonlyProperty(propertyName);
 
         Object injectedValue = _provider.obtainValue(objectReference, location);
-
+        
         if (injectedValue == null)
             throw new ApplicationRuntimeException(EnhanceMessages
                     .locatedValueIsNull(objectReference), location, null);
-
+        
         if (!propertyType.isAssignableFrom(injectedValue.getClass()))
             throw new ApplicationRuntimeException(EnhanceMessages
                     .incompatibleInjectType(objectReference, injectedValue,
                             propertyType), location, null);
-
+        
         String fieldName = op.addInjectedField("_$" + propertyName,
                 propertyType, injectedValue);
-
+        
         String methodName = EnhanceUtils.createAccessorMethodName(propertyName);
 
         op.addMethod(Modifier.PUBLIC, new MethodSignature(propertyType,

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectObjectWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectObjectWorker.java?rev=422287&r1=422286&r2=422287&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectObjectWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectObjectWorker.java Sat Jul 15 13:06:34 2006
@@ -19,6 +19,8 @@
 import static org.testng.AssertJUnit.assertSame;
 
 import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Location;
@@ -199,4 +201,36 @@
 
         verify();
     }
-}
\ No newline at end of file
+    
+    public void testInjectMap()
+    {
+        Location l = newLocation();
+        Map injectedValue = new HashMap();
+        
+        InjectSpecification spec = newSpec("fred", "service:barney", l);
+        
+        EnhancementOperation op = newMock(EnhancementOperation.class);
+        
+        InjectedValueProvider p = newMock(InjectedValueProvider.class);
+        
+        expect(op.getPropertyType("fred")).andReturn(Map.class);
+        
+        op.claimReadonlyProperty("fred");
+        
+        expect(p.obtainValue("service:barney", l)).andReturn(new HashMap());
+        
+        expect(op.addInjectedField("_$fred", Map.class, injectedValue)).andReturn("_$fred");
+        
+        op.addMethod(Modifier.PUBLIC, new MethodSignature(Map.class, "getFred", null,
+                null), "return _$fred;", l);
+        
+        replay();
+        
+        InjectObjectWorker w = new InjectObjectWorker();
+        w.setProvider(p);
+        
+        w.performEnhancement(op, spec);
+
+        verify();
+    }
+}