@Test void testInterface() { InvokeProxetta proxetta = initProxetta(); try { proxetta.proxy().setTarget(Inter.class).newInstance(); fail("error"); } catch (ProxettaException ignore) { } }
@Test void testSuper() { InvokeProxetta proxetta = initProxetta(); try { proxetta.proxy().setTarget(OneWithSuper.class).define(); fail("error"); } catch (ProxettaException ignore) { } }
byte[] klazz = proxetta.proxy().setTarget(One.class).create();
@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); }
@Test void testWimp() { Wimp wimp = (Wimp) Proxetta.invokeProxetta().withAspect(new InvokeAspect() { @Override public boolean apply(MethodInfo methodInfo) { return methodInfo.isTopLevelMethod(); } @Override public InvokeReplacer pointcut(InvokeInfo invokeInfo) { return InvokeReplacer.NONE; } }).proxy().setTarget(Wimp.class).newInstance(); int i = wimp.foo(); assertEquals(0, i); String txt = wimp.aaa(3, null, null); assertEquals("int3WelcomeToJodd", txt); txt = wimp.ccc(3, "XXX", 1, null); assertEquals(">4:String:4long:4XXX:ccc:Wimp", txt); }