You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jc...@apache.org on 2013/07/30 06:31:07 UTC

svn commit: r1508300 - in /commons/proper/proxy/branches/version-2.0-work/stub/src: main/java/org/apache/commons/proxy2/stub/ test/java/org/apache/commons/proxy2/stub/

Author: jcarman
Date: Tue Jul 30 04:31:06 2013
New Revision: 1508300

URL: http://svn.apache.org/r1508300
Log:
Adding throw capability for void methods.

Modified:
    commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/Behavior.java
    commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java
    commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterface.java

Modified: commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/Behavior.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/Behavior.java?rev=1508300&r1=1508299&r2=1508300&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/Behavior.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/Behavior.java Tue Jul 30 04:31:06 2013
@@ -59,6 +59,21 @@ public abstract class Behavior<T>
         return ProxyUtils.nullValue(type);
     }
 
+    protected void thenThrow(Exception e)
+    {
+        trainingContext().setInterceptor(InterceptorUtils.throwing(e));
+    }
+
+    protected void thenThrow(ObjectProvider<? extends Exception> provider)
+    {
+        trainingContext().setInterceptor(InterceptorUtils.throwing(provider));
+    }
+
+    private TrainingContext trainingContext()
+    {
+        return TrainingContext.getTrainingContext();
+    }
+
     protected <R> WhenObject<R> when(R expression)
     {
         return new WhenObject<R>();
@@ -134,11 +149,6 @@ public abstract class Behavior<T>
         }
     }
 
-    private TrainingContext trainingContext()
-    {
-        return TrainingContext.getTrainingContext();
-    }
-
     protected class WhenBooleanArray extends BaseWhen<boolean[]>
     {
         protected Behavior<T> thenReturn(boolean... values)

Modified: commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java?rev=1508300&r1=1508299&r2=1508300&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java Tue Jul 30 04:31:06 2013
@@ -51,6 +51,36 @@ public class StubInterceptorBuilderTest
         this.builder = new StubInterceptorBuilder(proxyFactory);
     }
 
+    @Test(expected = IllegalArgumentException.class)
+    public void testThrowExceptionWithException()
+    {
+        StubInterface proxy = createProxy(new Behavior<StubInterface>()
+        {
+            @Override
+            protected void train(StubInterface stub)
+            {
+                stub.voidMethod("Hello");
+                thenThrow(new IllegalArgumentException("Nope!"));
+            }
+        });
+        proxy.voidMethod("Hello");
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testThrowExceptionWithProvidedException()
+    {
+        StubInterface proxy = createProxy(new Behavior<StubInterface>()
+        {
+            @Override
+            protected void train(StubInterface stub)
+            {
+                stub.voidMethod("Hello");
+                thenThrow(ObjectProviderUtils.constant(new IllegalArgumentException("Nope!")));
+            }
+        });
+        proxy.voidMethod("Hello");
+    }
+
     @Test
     public void testWithArrayParameter()
     {

Modified: commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterface.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterface.java?rev=1508300&r1=1508299&r2=1508300&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterface.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterface.java Tue Jul 30 04:31:06 2013
@@ -38,4 +38,6 @@ public interface StubInterface
     public String[] stringArray();
 
     public String arrayParameter(String... strings);
+
+    public void voidMethod(String arg);
 }