1   package org.neo.swarm.core.aop.silc.comp;
2   
3   import junit.framework.TestCase;
4   import org.easymock.MockControl;
5   import org.neo.swarm.core.aop.AspectComponent;
6   import org.neo.swarm.core.aop.silc.comp.Perspective;
7   import org.neo.swarm.core.aop.silc.comp.RegexPointCut;
8   
9   /***
10   *  @author damiang
11   */
12  public class PointcutTest extends TestCase {
13  	private MockControl control;
14  	private AspectComponent acMock;
15  	private TestComp t;
16  
17  	protected void setUp() throws Exception {
18  		control = MockControl.createStrictControl(AspectComponent.class);
19  		acMock = (AspectComponent) control.getMock();
20  		t = new TestComp();
21  	}
22  
23  	public void testRegexPointCut() throws Exception {
24  		TestInterceptor ti = new TestInterceptor("ABC");
25  
26  
27  		// record expectation
28  		control.expectAndReturn(acMock.getInterfaceMethods(), TestIntf.class.getMethods());
29  		acMock.addInterceptor(Perspective.DEFAULT, TestIntf.class.getMethod("transTest",null),ti);
30  
31  		control.replay();
32  
33  		
34     		Pointcut p = new RegexPointCut("org.neo.swarm.core.aop.silc.comp.TestIntf.trans(.*)");
35  		p.advise(Perspective.DEFAULT, acMock,ti);
36  
37  		control.verify();
38  	}
39  
40  	public void testOtherRegexPointCut() throws Exception {
41  		TestInterceptor ti = new TestInterceptor("ABCD");
42  
43  		control.expectAndReturn(acMock.getInterfaceMethods(), TestIntf.class.getMethods());
44  		acMock.addInterceptor(Perspective.DEFAULT, TestIntf.class.getMethod("secureTest", null), ti);
45  
46  		control.replay();
47  
48  		Pointcut p = new RegexPointCut("org.neo.swarm.core.aop.silc.comp.TestIntf.secure(.*)");
49  		p.advise(Perspective.DEFAULT, acMock,ti);
50  
51  		control.verify();
52  	}
53  
54  }