/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.test.aop.scopedextender;
import org.jboss.aop.Advised;
/**
*
* @author <a href="kabir.khan@jboss.com">Kabir Khan</a>
* @version $Revision: 85945 $
*/
public class BaseLoadedTester implements BaseLoadedTesterMBean
{
public void testLoaders() throws Exception
{
System.out.println("=============== BaseLoadedTester - LOADERS ================");
ClassLoader mine = this.getClass().getClassLoader();
ClassLoader base = Base_Base.class.getClassLoader();
if (mine != base)
{
throw new RuntimeException("ClassLoaders for me and Base_Base should be the same. Mine=" + mine + "; Base_Base=" + base);
}
}
public void testMethod() throws Exception
{
TestUtil testUtil = new TestUtil();
try
{
System.out.println("=============== BaseLoadedTester - METHOD ================");
Base_Base base = new Base_Base();
clear();
base.base();
String m = "Base_Base.base";
testUtil.compare(m, "BaseAspect", new String[]{"base"}, BaseAspect.invoked);
clear();
base.overridden();
m = "Base_Base.overridden";
testUtil.compare(m, "BaseAspect", new String[] {"overridden"}, BaseAspect.invoked);
Base_A1 a1 = new Base_A1();
clear();
a1.a1();
m = "Base_A1.a1";
testUtil.compare(m, "BaseAspect", new String[]{"a1", "base"}, BaseAspect.invoked);
clear();
a1.overridden();
m = "Base_A1.overridden";
testUtil.compare(m, "BaseAspect", new String[] {"overridden"}, BaseAspect.invoked);
}
catch (RuntimeException e)
{
// AutoGenerated
throw new RuntimeException(e);
}
if (testUtil.getErrors() != null)
{
throw new RuntimeException(testUtil.getErrors());
}
if(Advised.class.isAssignableFrom(BaseNotBaseWoven.class))
{
throw new RuntimeException("BaseNotBaseWoven should not be woven");
}
}
public void testConstructor() throws Exception
{
TestUtil testUtil = new TestUtil();
try
{
System.out.println("=============== BaseLoadedTester - CTOR ================");
clear();
Base_Base base = new Base_Base();
testUtil.compare(base.getClass().getName(), "BaseAspect", new String[]{base.getClass().getName()}, BaseAspect.invoked);
clear();
Base_A1 a1 = new Base_A1();
testUtil.compare(a1.getClass().getName(), "BaseAspect", new String[]{a1.getClass().getName()}, BaseAspect.invoked);
}
catch (RuntimeException e)
{
// AutoGenerated
throw new RuntimeException(e);
}
if (testUtil.getErrors() != null)
{
throw new RuntimeException(testUtil.getErrors());
}
if(Advised.class.isAssignableFrom(BaseNotBaseWoven.class))
{
throw new RuntimeException("BaseNotBaseWoven should not be woven");
}
}
public void testField() throws Exception
{
TestUtil testUtil = new TestUtil();
try
{
System.out.println("=============== BaseLoadedTester - FIELD ================");
Base_Base base = new Base_Base();
clear();
base.base = 5;
String m = "Base_Base.base";
testUtil.compare(m, "BaseAspect", new String[]{"base"}, BaseAspect.invoked);
clear();
testUtil.compare(5, base.base);
testUtil.compare(m, "BaseAspect", new String[]{"base"}, BaseAspect.invoked);
Base_A1 a1 = new Base_A1();
clear();
a1.a1 = 10;
m = "Base_A1.a1";
testUtil.compare(m, "BaseAspect", new String[]{"a1"}, BaseAspect.invoked);
clear();
testUtil.compare(10, a1.a1);
testUtil.compare(m, "BaseAspect", new String[]{"a1"}, BaseAspect.invoked);
}
catch (RuntimeException e)
{
// AutoGenerated
throw new RuntimeException(e);
}
if (testUtil.getErrors() != null)
{
throw new RuntimeException(testUtil.getErrors());
}
if(Advised.class.isAssignableFrom(BaseNotBaseWoven.class))
{
throw new RuntimeException("BaseNotBaseWoven should not be woven");
}
}
public void testOverriddenInterceptors() throws Exception
{
//Not really a test per se, the real test is in the ScopedChildNoParentDelegationTester, when deployed along with this base loaded sar
System.out.println("=============== BaseLoadedTester - TEST OVERRIDDEN INTERCEPTORS ================");
TestUtil testUtil = new TestUtil();
Base_Base base = new Base_Base();
clear();
base.differentScopes();
String m = "differentScopes";
testUtil.compare(m, "BaseAspect", new String[]{"differentScopes"}, BaseAspect.invoked);
testUtil.invoked(BasePerClassInterceptor.class);
testUtil.invoked(BasePerInstanceInterceptor.class);
testUtil.invoked(BasePerJoinPointInterceptor.class);
testUtil.invoked(BasePerClassJoinPointInterceptor.class);
if (testUtil.getErrors() != null)
{
throw new RuntimeException(testUtil.getErrors());
}
}
public String readName()
{
return "BaseLoadedTester";
}
private void clear()
{
BaseAspect.invoked.clear();
BasePerClassInterceptor.invoked = false;
BasePerInstanceInterceptor.invoked = false;
BasePerJoinPointInterceptor.invoked = false;
BasePerClassJoinPointInterceptor.invoked = false;
}
}