Author: jcarman
Date: Sat Aug 27 21:04:57 2005
New Revision: 263814

URL: http://svn.apache.org/viewcvs?rev=263814&view=rev
Log:
Added test case to verify that if a MethodInterceptor changes a parameter, the 
change is propogated.

Modified:
    
jakarta/commons/sandbox/proxy/trunk/src/test/org/apache/commons/proxy/factory/AbstractProxyFactoryTestCase.java

Modified: 
jakarta/commons/sandbox/proxy/trunk/src/test/org/apache/commons/proxy/factory/AbstractProxyFactoryTestCase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/proxy/trunk/src/test/org/apache/commons/proxy/factory/AbstractProxyFactoryTestCase.java?rev=263814&r1=263813&r2=263814&view=diff
==============================================================================
--- 
jakarta/commons/sandbox/proxy/trunk/src/test/org/apache/commons/proxy/factory/AbstractProxyFactoryTestCase.java
 (original)
+++ 
jakarta/commons/sandbox/proxy/trunk/src/test/org/apache/commons/proxy/factory/AbstractProxyFactoryTestCase.java
 Sat Aug 27 21:04:57 2005
@@ -18,17 +18,15 @@
 import org.aopalliance.intercept.MethodInterceptor;
 import org.aopalliance.intercept.MethodInvocation;
 import org.apache.commons.proxy.ProxyFactory;
-import org.apache.commons.proxy.provider.ConstantProvider;
-import static org.apache.commons.proxy.provider.ProviderUtils.beanProvider;
-import static 
org.apache.commons.proxy.provider.ProviderUtils.singletonProvider;
+import static org.apache.commons.proxy.provider.ProviderUtils.*;
 import org.apache.commons.proxy.util.AbstractTestCase;
 import org.apache.commons.proxy.util.Echo;
 import org.apache.commons.proxy.util.EchoImpl;
 import org.apache.commons.proxy.util.SuffixMethodInterceptor;
 
+import java.io.IOException;
 import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Method;
-import java.io.IOException;
 
 /**
  * @author James Carman
@@ -84,7 +82,7 @@
 
     public void testProxyWithCheckedException() throws Exception
     {
-        final Echo proxy = ( Echo ) factory.createProxy( new ConstantProvider( 
new EchoImpl() ), Echo.class );
+        final Echo proxy = ( Echo ) factory.createProxy( constantProvider( new 
EchoImpl() ), Echo.class );
         try
         {
             proxy.ioException();
@@ -97,7 +95,7 @@
 
     public void testProxyWithUncheckedException() throws Exception
     {
-        final Echo proxy = ( Echo ) factory.createProxy( new ConstantProvider( 
new EchoImpl() ), Echo.class );
+        final Echo proxy = ( Echo ) factory.createProxy( constantProvider( new 
EchoImpl() ), Echo.class );
         try
         {
             proxy.illegalArgument();
@@ -141,8 +139,23 @@
 
     }
 
+    public void testChangingArguments()
+    {
+        final Echo proxy = ( Echo ) factory.createInterceptorProxy( new 
EchoImpl(), new ChangeArgumentInterceptor(), Echo.class );
+        assertEquals( "something different", proxy.echoBack( "whatever" ) );
+    }
+
     private static class PrivateEcho extends EchoImpl
     {
+    }
+
+    private static class ChangeArgumentInterceptor implements MethodInterceptor
+    {
+        public Object invoke( MethodInvocation methodInvocation ) throws 
Throwable
+        {
+            methodInvocation.getArguments()[0] = "something different";
+            return methodInvocation.proceed();
+        }
     }
 
     private static class NoOpMethodInterceptor implements MethodInterceptor



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to