Package com.google.common.testing
Class ForwardingWrapperTester
- java.lang.Object
-
- com.google.common.testing.ForwardingWrapperTester
-
@Beta @GwtIncompatible public final class ForwardingWrapperTester extends java.lang.Object
Tester to ensure forwarding wrapper works by delegating calls to the corresponding method with the same parameters forwarded and return value forwarded back or exception propagated as is.For example:
new ForwardingWrapperTester().testForwarding(Foo.class, new Function<Foo, Foo>() { public Foo apply(Foo foo) { return new ForwardingFoo(foo); } });
- Since:
- 14.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ForwardingWrapperTester.InteractionTester<T>
Tests a single interaction against a method.
-
Field Summary
Fields Modifier and Type Field Description private boolean
testsEquals
-
Constructor Summary
Constructors Constructor Description ForwardingWrapperTester()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.reflect.Method[]
getMostConcreteMethods(java.lang.Class<?> type)
Returns the most concrete public methods fromtype
.private static java.lang.Object[]
getParameterValues(java.lang.reflect.Method method)
ForwardingWrapperTester
includingEquals()
Asks forObject.equals(java.lang.Object)
andObject.hashCode()
to be tested.private static <T> void
testEquals(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
private static <T> void
testExceptionPropagation(java.lang.Class<T> interfaceType, java.lang.reflect.Method method, Function<? super T,? extends T> wrapperFunction)
<T> void
testForwarding(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
Tests that the forwarding wrapper returned bywrapperFunction
properly forwards method calls with parameters passed as is, return value returned as is, and exceptions propagated as is.private static <T> void
testSuccessfulForwarding(java.lang.Class<T> interfaceType, java.lang.reflect.Method method, Function<? super T,? extends T> wrapperFunction)
private static <T> void
testToString(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
-
-
-
Method Detail
-
includingEquals
public ForwardingWrapperTester includingEquals()
Asks forObject.equals(java.lang.Object)
andObject.hashCode()
to be tested. That is, forwarding wrappers of equal instances should be equal.
-
testForwarding
public <T> void testForwarding(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
Tests that the forwarding wrapper returned bywrapperFunction
properly forwards method calls with parameters passed as is, return value returned as is, and exceptions propagated as is.
-
getMostConcreteMethods
private static java.lang.reflect.Method[] getMostConcreteMethods(java.lang.Class<?> type)
Returns the most concrete public methods fromtype
.
-
testSuccessfulForwarding
private static <T> void testSuccessfulForwarding(java.lang.Class<T> interfaceType, java.lang.reflect.Method method, Function<? super T,? extends T> wrapperFunction)
-
testExceptionPropagation
private static <T> void testExceptionPropagation(java.lang.Class<T> interfaceType, java.lang.reflect.Method method, Function<? super T,? extends T> wrapperFunction)
-
testEquals
private static <T> void testEquals(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
-
testToString
private static <T> void testToString(java.lang.Class<T> interfaceType, Function<? super T,? extends T> wrapperFunction)
-
getParameterValues
private static java.lang.Object[] getParameterValues(java.lang.reflect.Method method)
-
-