@@ -0,0 +1,1755 @@
+package org.x2a.cutter;%0A%0Aimport org.junit.Assert;%0Aimport org.junit.Test;%0Aimport org.x2a.cutter.annotation.Cut;%0Aimport org.x2a.cutter.cut.JoinPoint;%0Aimport org.x2a.cutter.cut.Parameter;%0Aimport org.x2a.cutter.pointcut.AbstractPointCut;%0A%0Aimport java.lang.reflect.Method;%0A%0Apublic class TestAnonClass %7B%0A%0A    static class TestPC extends AbstractPointCut%3CString%3E %7B%0A        public TestPC(JoinPoint joinPoint, Parameter%5B%5D parameters) %7B%0A            super(joinPoint, parameters);%0A        %7D%0A%0A        @Override%0A        public boolean before() %7B%0A            return true;%0A        %7D%0A%0A        @Override%0A        public String after(String aBoolean) %7B%0A            return ((Foo) getParameter(%22f%22).getOriginalValue()).doFoo();%0A        %7D%0A%0A        @Override%0A        public String onSkip() %7B%0A            return %22skipped%22;%0A        %7D%0A    %7D%0A%0A    interface Foo %7B%0A        String doFoo();%0A    %7D%0A%0A    @Cut(TestPC.class)%0A    private String methodToCut(Foo f) %7B%0A        return %22real method return%22;%0A    %7D%0A%0A%0A    @Test%0A    public void testCutAnonClassSyntax() %7B%0A        Assert.assertEquals(%22the cut should've returned true%22, %22this is an internal foo!%22, methodToCut(new Foo() %7B%0A            @Override%0A            public String doFoo() %7B%0A                return %22this is an internal foo!%22;%0A            %7D%0A        %7D));%0A    %7D%0A%0A    @Test%0A    public void testCutLamdaSyntax() %7B%0A        Assert.assertEquals(%22the cut should've returned true%22, %22this is an internal foo!%22,%0A                methodToCut(() -%3E %22this is an internal foo!%22));%0A    %7D%0A%0A    @Test%0A    public void testWrappedMethodExists() throws Exception %7B%0A        Method method = getClass().getDeclaredMethod(%22__wrapped__methodToCut%22, Foo.class);%0A        Assert.assertNotNull(method);%0A        Assert.assertFalse(method.isAccessible());%0A    %7D%0A%7D%0A

add more unit tests