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
|