KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > aop > dynaop > InvocationAdapterTestCase


1 /*****************************************************************************
2  * Copyright (c) PicoContainer Organization. All rights reserved. *
3  * ------------------------------------------------------------------------- *
4  * The software in this package is published under the terms of the BSD *
5  * style license a copy of which has been included with this distribution in *
6  * the LICENSE.txt file. *
7  * *
8  * Idea by Rachel Davies, Original code by various *
9  *****************************************************************************/

10 package org.nanocontainer.aop.dynaop;
11
12 import dynaop.Invocation;
13 import dynaop.Proxy;
14 import dynaop.ProxyContext;
15 import org.aopalliance.intercept.MethodInvocation;
16 import org.jmock.Mock;
17 import org.jmock.MockObjectTestCase;
18
19 import java.lang.reflect.Method JavaDoc;
20
21 /**
22  * @author Stephen Molitor
23  */

24 public class InvocationAdapterTestCase extends MockObjectTestCase {
25
26     private Mock mockInvocation = mock(Invocation.class);
27     private MethodInvocation invocationAdapter = new InvocationAdapter((Invocation) mockInvocation.proxy());
28     private Mock mockProxy = mock(Proxy.class);
29     private Mock mockProxyContext = mock(ProxyContext.class);
30
31     public void testProceed() throws Throwable JavaDoc {
32         mockInvocation.expects(once()).method("proceed").will(returnValue("result"));
33         Object JavaDoc result = invocationAdapter.proceed();
34         assertEquals("result", result);
35     }
36
37     public void testGetArguments() {
38         Object JavaDoc[] args = {"a", "b", "c"};
39         mockInvocation.expects(once()).method("getArguments").will(returnValue(args));
40         Object JavaDoc[] actualArgs = invocationAdapter.getArguments();
41         assertEquals(args, actualArgs);
42     }
43
44     public void testGetMethod() throws SecurityException JavaDoc, NoSuchMethodException JavaDoc {
45         Method JavaDoc method = String JavaDoc.class.getMethod("length", new Class JavaDoc[]{});
46         mockInvocation.expects(once()).method("getMethod").will(returnValue(method));
47         Method JavaDoc actualMethod = invocationAdapter.getMethod();
48         assertEquals(method, actualMethod);
49     }
50
51     public void testGetStaticPart() throws SecurityException JavaDoc, NoSuchMethodException JavaDoc {
52         Method JavaDoc method = String JavaDoc.class.getMethod("length", new Class JavaDoc[]{});
53         mockInvocation.expects(once()).method("getMethod").will(returnValue(method));
54         Object JavaDoc staticPart = invocationAdapter.getStaticPart();
55         assertEquals(method, staticPart);
56     }
57
58     public void testGetThis() {
59         mockInvocation.expects(once()).method("getProxy").will(returnValue(mockProxy.proxy()));
60         mockProxy.expects(once()).method("getProxyContext").will(returnValue(mockProxyContext.proxy()));
61         mockProxyContext.expects(once()).method("unwrap").will(returnValue("target"));
62         Object JavaDoc target = invocationAdapter.getThis();
63         assertEquals("target", target);
64     }
65
66 }
Popular Tags