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
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 }