@Test public void testIsProxy() throws Exception { ITestBean bean = getTestBean(); assertTrue("Bean is not a proxy", AopUtils.isAopProxy(bean)); // check the advice details Advised advised = (Advised) bean; Advisor[] advisors = advised.getAdvisors(); assertTrue("Advisors should not be empty", advisors.length > 0); }
@Test public void testAdviceInvokedCorrectly() throws Exception { CountingBeforeAdvice getAgeCounter = (CountingBeforeAdvice) this.context.getBean("getAgeCounter"); CountingBeforeAdvice getNameCounter = (CountingBeforeAdvice) this.context.getBean("getNameCounter"); ITestBean bean = getTestBean(); assertEquals("Incorrect initial getAge count", 0, getAgeCounter.getCalls("getAge")); assertEquals("Incorrect initial getName count", 0, getNameCounter.getCalls("getName")); bean.getAge(); assertEquals("Incorrect getAge count on getAge counter", 1, getAgeCounter.getCalls("getAge")); assertEquals("Incorrect getAge count on getName counter", 0, getNameCounter.getCalls("getAge")); bean.getName(); assertEquals("Incorrect getName count on getName counter", 1, getNameCounter.getCalls("getName")); assertEquals("Incorrect getName count on getAge counter", 0, getAgeCounter.getCalls("getName")); }
@Test public void testAspectApplied() throws Exception { ITestBean bean = getTestBean(); CountingAspectJAdvice advice = (CountingAspectJAdvice) this.context.getBean("countingAdvice"); assertEquals("Incorrect before count", 0, advice.getBeforeCount()); assertEquals("Incorrect after count", 0, advice.getAfterCount()); bean.setName("Sally"); assertEquals("Incorrect before count", 1, advice.getBeforeCount()); assertEquals("Incorrect after count", 1, advice.getAfterCount()); bean.getName(); assertEquals("Incorrect before count", 1, advice.getBeforeCount()); assertEquals("Incorrect after count", 1, advice.getAfterCount()); }