KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > ConstructionInterceptorTest


1 package com.tirsen.nanning;
2
3 import com.tirsen.nanning.definition.AspectClass;
4 import com.tirsen.nanning.definition.AspectDefinition;
5 import com.tirsen.nanning.definition.InterceptorDefinition;
6 import junit.framework.TestCase;
7
8 public class ConstructionInterceptorTest extends TestCase {
9     public void testConstructionInterceptor() {
10         AspectClass aspectClass = new AspectClass();
11         aspectClass.setInterface(Intf.class);
12         aspectClass.addInterceptor(MockConstructionInterceptor.class);
13         aspectClass.setTarget(IntfImpl.class);
14
15         AspectDefinition aspectDefinition = (AspectDefinition) aspectClass.getAspectDefinitions().iterator().next();
16         InterceptorDefinition interceptorDefinition = (InterceptorDefinition) aspectDefinition.getInterceptorDefinitions().iterator().next();
17         MockConstructionInterceptor mockConstructionInterceptor = (MockConstructionInterceptor) interceptorDefinition.getSingleton();
18
19         IntfImpl newTarget = new IntfImpl();
20         mockConstructionInterceptor.changeTarget(newTarget);
21
22         Intf intf = (Intf) aspectClass.newInstance();
23         ConstructionInvocation constructionInvocation = mockConstructionInterceptor.getInvocation();
24         mockConstructionInterceptor.verify();
25         assertSame("proxy was not correct", intf, constructionInvocation.getProxy());
26         assertSame("target was not correct", Aspects.getTargets(intf)[0], constructionInvocation.getTarget());
27     }
28 }
29
Popular Tags