1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.proxy2.interceptor.matcher;
19
20 import static org.junit.Assert.assertFalse;
21 import static org.junit.Assert.assertTrue;
22
23 import java.io.Serializable;
24 import java.lang.reflect.Method;
25
26 import org.apache.commons.proxy2.Invocation;
27 import org.apache.commons.proxy2.interceptor.matcher.invocation.ReturnTypeMatcher;
28 import org.apache.commons.proxy2.util.AbstractTestCase;
29 import org.apache.commons.proxy2.util.Echo;
30 import org.apache.commons.proxy2.util.MockInvocation;
31 import org.junit.Test;
32
33 public class ReturnTypeMatcherTest extends AbstractTestCase
34 {
35
36
37
38
39 @Test
40 public void testExactMatchNonMatching() throws Throwable
41 {
42 Method method = Echo.class.getMethod("echoBack", String.class);
43 Invocation invocation = new MockInvocation(method, "foo");
44 InvocationMatcher matcher = new ReturnTypeMatcher(Serializable.class, true);
45 assertFalse(matcher.matches(invocation));
46 }
47
48 @Test
49 public void testMatchVoid() throws Throwable
50 {
51 Method method = Echo.class.getMethod("echo");
52 Invocation invocation = new MockInvocation(method, null);
53 InvocationMatcher matcher = new ReturnTypeMatcher(Void.TYPE);
54 assertTrue(matcher.matches(invocation));
55 }
56
57 @Test
58 public void testWithSupertypeMatch() throws Throwable
59 {
60 Method method = Echo.class.getMethod("echoBack", String.class);
61 Invocation invocation = new MockInvocation(method, "foo");
62 InvocationMatcher matcher = new ReturnTypeMatcher(Serializable.class);
63 assertTrue(matcher.matches(invocation));
64 }
65 }