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);
}