protected InvokeProxetta initProxetta() { return Proxetta.invokeProxetta().withAspects( invokeInfo -> { if (invokeInfo.getMethodName().equals("invvirtual")) {
@Test void testCurrentTimeMillis() { TimeClass timeClass = (TimeClass) Proxetta.invokeProxetta().withAspects(new InvokeAspect() { @Override public boolean apply(MethodInfo methodInfo) { return methodInfo.isTopLevelMethod(); } @Override public InvokeReplacer pointcut(InvokeInfo invokeInfo) { if ( invokeInfo.getClassName().equals("java.lang.System") && invokeInfo.getMethodName().equals("currentTimeMillis") ) { return InvokeReplacer.with(MySystem.class, "currentTimeMillis"); } return null; } }).proxy().setTarget(TimeClass.class).newInstance(); long time = timeClass.time(); assertEquals(10823, time); }