/* * Copyright 2002-2006 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.aop.aspectj.annotation; import org.springframework.beans.ITestBean; import org.springframework.beans.TestBean; /** * @author Rod Johnson * @since 2.0 */ public class RepresentativePointcutTests extends AbstractAnnotationPointcutTests { // Will be replaced by a proxy private TestAspect testAspect; public void testPointcutWithoutArguments() { testAspect.returnsVoid(); ITestBean itb = (ITestBean) getMatchingProxy(new TestBean());//, "execution(* *et*(..))"); itb.setAge(0); //itb.getAge(); } public void testNoArgumentsBeforeAdvice() throws Throwable { // Just to identify it. Survives refactoring. testAspect.etMethods(); ITestBean itb = (ITestBean) getMatchingProxy(new TestBean());//, "execution(* *et*(..))"); itb.getAge(); itb.setName(""); //itb.exceptional(null); } public void testAfterReturningAdviceWithReturnValue() throws Throwable { // Just to identify it. Survives refactoring. testAspect.intGetters(0); ITestBean itb = (ITestBean) getMatchingProxy(new TestBean());//, "execution(* *et*(..))"); assertNotNull(itb); itb.getAge(); //itb.setName(""); //itb.exceptional(null); } public void testBeforeAdviceWithStringArgument() throws Throwable { // Just to identify it. Survives refactoring. testAspect.settersTakingString(null); ITestBean itb = (ITestBean) getMatchingProxy(new TestBean());//, "execution(* *et*(..))"); assertNotNull(itb); //itb.getAge(); itb.setName(""); //itb.exceptional(null); } // TODO assertions: allMethods(class), noMethods(class) // public void testSomethingDoesNotMatch() throws Throwable { // ITestBean itb = (ITestBean) getNonMatchingProxy(new TestBean(), "execution(* *et*(..))"); // assertNotNull(itb); // //itb.getAge(); // //itb.setName(""); // itb.exceptional(null); // } // // //// @PointcutTest(clazz=TestBean.class, //// method="foo") // public void testSomethingDoesMatch() throws Throwable { // // TODO needs to know param names and types. // // Get from annotation and perhaps other strategy also // // ITestBean itb = (ITestBean) getMatchingProxy(new TestBean(), // "execution(* set*(String)) && args(s)"); // assertNotNull(itb); // //itb.getAge(); // itb.setName(""); // //itb.exceptional(null); // } }