You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@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();
+ }
+}