[jboss-cvs] JBossAS SVN: r101852 - in projects/kernel/trunk: kernel/src/test/java/org/jboss/test/kernel/dependency/support and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 4 10:45:40 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-03-04 10:45:39 -0500 (Thu, 04 Mar 2010)
New Revision: 101852
Added:
projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyUninstallTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/TestAppender.java
Modified:
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/UninstallNoOptionalContextDependencyTestCase.java
Log:
[JBKERNEL-106] Reinstate tests and simply configure an extra appender
Added: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyUninstallTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyUninstallTestCase.java (rev 0)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyUninstallTestCase.java 2010-03-04 15:45:39 UTC (rev 101852)
@@ -0,0 +1,180 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.dependency.controller.test;
+
+import junit.framework.Test;
+
+import org.apache.log4j.Appender;
+import org.apache.log4j.BasicConfigurator;
+import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.spi.ErrorHandler;
+import org.apache.log4j.spi.Filter;
+import org.apache.log4j.spi.LoggingEvent;
+import org.jboss.dependency.plugins.AbstractDependencyItem;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.test.AbstractTestDelegate;
+import org.jboss.test.dependency.controller.support.TestDelegate;
+
+/**
+ * A OnDemandDependencyUninstallTestCase.
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+public class OnDemandDependencyUninstallTestCase extends AbstractDependencyTest
+{
+ public static Test suite()
+ {
+ return suite(OnDemandDependencyUninstallTestCase.class);
+ }
+
+ public OnDemandDependencyUninstallTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testNoUglyError() throws Throwable
+ {
+ //Configure an extra appender
+ TestAppender appender = new TestAppender();
+ BasicConfigurator.configure(appender);
+ assertFalse(appender.invoked);
+ getLog().debug("Test");
+ assertTrue(appender.invoked);
+
+ TestDelegate delegate1 = getDelegate1();
+ ControllerContext context1 = assertInstall(delegate1, ControllerState.DESCRIBED);
+
+ TestDelegate delegate2 = getDelegate2();
+ ControllerContext context2 = assertInstall(delegate2);
+
+ assertContext(context1);
+
+ assertUninstall(context1);
+
+ assertContext(context2, ControllerState.CONFIGURED);
+ assertNull(context2.getError());
+ assertNull(context1.getError());
+
+ assertFalse(appender.warnOrGreater);
+ }
+
+ protected TestDelegate getDelegate1()
+ {
+ TestDelegate result = new TestDelegate("Name1");
+ result.setMode(ControllerMode.ON_DEMAND);
+ return result;
+ }
+
+ protected TestDelegate getDelegate2()
+ {
+ TestDelegate result = new TestDelegate("Name2");
+ result.addDependency(new AbstractDependencyItem("Name2", "Name1", ControllerState.CREATE, ControllerState.INSTALLED));
+ return result;
+ }
+
+ protected TestDelegate getDelegate3()
+ {
+ TestDelegate result = new TestDelegate("Name3");
+ result.addDependency(new AbstractDependencyItem("Name3", "Name1", ControllerState.CREATE, ControllerState.INSTALLED));
+ return result;
+ }
+
+ private static class TestAppender implements Appender
+ {
+ static PatternLayout layout = new PatternLayout("%r %-5p [%c{1}] %m%n");
+ boolean invoked;
+ boolean warnOrGreater;
+
+ public void addFilter(Filter newFilter)
+ {
+ }
+
+ public void clearFilters()
+ {
+ }
+
+ public void close()
+ {
+ }
+
+ public void doAppend(LoggingEvent event)
+ {
+ System.out.println("a " + this + ":" + invoked);
+ invoked = true;
+ System.out.println("b " + this + ":" + invoked);
+ Level level = event.getLevel();
+ if (level.isGreaterOrEqual(Level.WARN))
+ warnOrGreater = true;
+ }
+
+ public ErrorHandler getErrorHandler()
+ {
+ return null;
+ }
+
+ public Filter getFilter()
+ {
+ return null;
+ }
+
+ public Layout getLayout()
+ {
+ return layout;
+ }
+
+ public String getName()
+ {
+ return null;
+ }
+
+ public boolean requiresLayout()
+ {
+ return true;
+ }
+
+ public void setErrorHandler(ErrorHandler errorHandler)
+ {
+ }
+
+ public void setLayout(Layout layout)
+ {
+ }
+
+ public void setName(String name)
+ {
+ }
+
+ }
+
+ public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
+ {
+ AbstractTestDelegate delegate = new AbstractTestDelegate(clazz);
+ delegate.enableSecurity = false;
+ return delegate;
+ }
+
+}
Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/TestAppender.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/TestAppender.java (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/TestAppender.java 2010-03-04 15:45:39 UTC (rev 101852)
@@ -0,0 +1,97 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, 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.kernel.dependency.support;
+
+import org.apache.log4j.Appender;
+import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.spi.ErrorHandler;
+import org.apache.log4j.spi.Filter;
+import org.apache.log4j.spi.LoggingEvent;
+
+public class TestAppender implements Appender
+{
+ static PatternLayout layout = new PatternLayout("%r %-5p [%c{1}] %m%n");
+ public boolean invoked;
+ public boolean warnOrGreater;
+
+ public void addFilter(Filter newFilter)
+ {
+ }
+
+ public void clearFilters()
+ {
+ }
+
+ public void close()
+ {
+ }
+
+ public void doAppend(LoggingEvent event)
+ {
+ System.out.println("a " + this + ":" + invoked);
+ invoked = true;
+ System.out.println("b " + this + ":" + invoked);
+ Level level = event.getLevel();
+ if (level.isGreaterOrEqual(Level.WARN))
+ warnOrGreater = true;
+ }
+
+ public ErrorHandler getErrorHandler()
+ {
+ return null;
+ }
+
+ public Filter getFilter()
+ {
+ return null;
+ }
+
+ public Layout getLayout()
+ {
+ return layout;
+ }
+
+ public String getName()
+ {
+ return null;
+ }
+
+ public boolean requiresLayout()
+ {
+ return true;
+ }
+
+ public void setErrorHandler(ErrorHandler errorHandler)
+ {
+ }
+
+ public void setLayout(Layout layout)
+ {
+ }
+
+ public void setName(String name)
+ {
+ }
+
+}
\ No newline at end of file
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/UninstallNoOptionalContextDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/UninstallNoOptionalContextDependencyTestCase.java 2010-03-04 15:44:25 UTC (rev 101851)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/test/UninstallNoOptionalContextDependencyTestCase.java 2010-03-04 15:45:39 UTC (rev 101852)
@@ -22,29 +22,25 @@
package org.jboss.test.kernel.dependency.test;
import java.lang.reflect.Field;
-import java.util.Map;
import junit.framework.Test;
+import org.apache.log4j.BasicConfigurator;
import org.jboss.beans.metadata.api.model.InjectOption;
import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.dependency.plugins.action.ControllerContextAction;
import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.kernel.plugins.dependency.ConfigureAction;
-import org.jboss.kernel.plugins.dependency.KernelControllerContextAction;
-import org.jboss.kernel.plugins.dependency.KernelControllerContextActions;
import org.jboss.test.AbstractTestDelegate;
import org.jboss.test.kernel.dependency.support.SimpleBeanImpl;
import org.jboss.test.kernel.dependency.support.SimpleBeanWithDependency;
import org.jboss.test.kernel.dependency.support.SimpleBeanWithDependencyImpl;
+import org.jboss.test.kernel.dependency.support.TestAppender;
/**
* Constructor Dependency Test Case.
*
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 64400 $
*/
public class UninstallNoOptionalContextDependencyTestCase extends OldAbstractKernelDependencyTest
@@ -67,15 +63,13 @@
@SuppressWarnings("unchecked")
public void testUninstallOptionalInjectionNotPresent() throws Throwable
{
- //Get hold of the ConfigureAction instance - UGLY but needed so we can replace its logger :-)
- KernelControllerContextActions actions = KernelControllerContextActions.getInstance();
- Field field = getField(actions.getClass().getSuperclass(), "actions");
- Map<ControllerState, ControllerContextAction> actionsMap = (Map<ControllerState, ControllerContextAction>)field.get(actions);
- ConfigureAction action = (ConfigureAction)actionsMap.get(ControllerState.CONFIGURED);
- Class<?> clazz = action.getClass();
- while (clazz != null && clazz != KernelControllerContextAction.class)
- clazz = clazz.getSuperclass();
- assertNotNull(clazz);
+ //Configure an extra appender
+ TestAppender appender = new TestAppender();
+ BasicConfigurator.configure(appender);
+ assertFalse(appender.invoked);
+ getLog().debug("Test");
+ assertTrue(appender.invoked);
+
uninstallOptionalInjectionNotPresent();
ControllerContext context1 = assertInstall(0, "Name1");
@@ -84,6 +78,8 @@
assertNull(bean1.getSimpleBean());
uninstall("Name1");
+
+ assertFalse(appender.warnOrGreater);
}
public void uninstallOptionalInjectionNotPresent() throws Throwable
More information about the jboss-cvs-commits
mailing list