[jboss-cvs] JBossAS SVN: r100252 - projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Feb 2 08:37:27 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-02-02 08:37:27 -0500 (Tue, 02 Feb 2010)
New Revision: 100252
Added:
projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyUninstallTestCase.java
Modified:
projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerTestSuite.java
projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
Log:
[JBKERNEL-87] Add proper test
Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerTestSuite.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerTestSuite.java 2010-02-02 13:14:24 UTC (rev 100251)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerTestSuite.java 2010-02-02 13:37:27 UTC (rev 100252)
@@ -63,6 +63,7 @@
suite.addTest(ErrorControllerActionTestCase.suite());
suite.addTest(ManualControllerTestCase.suite());
suite.addTest(OnDemandDependencyTestCase.suite());
+ suite.addTest(OnDemandDependencyUninstallTestCase.suite());
suite.addTest(PreconfiguredScopeTestCase.suite());
suite.addTest(RecursiveControllerActionTestCase.suite());
suite.addTest(SelfDependencyTestCase.suite());
Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java 2010-02-02 13:14:24 UTC (rev 100251)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java 2010-02-02 13:37:27 UTC (rev 100252)
@@ -371,28 +371,6 @@
fail("Should have had a failure");
}
-
- public void testNoUglyError() throws Throwable
- {
- //FIXME This simply runs what used to cause the ugly error mentioned in JBKERNEL-87.
- //I am not sure how to actually test that this does not happen since errors on uninstall
- //are not reported back to the user.
- 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());
- }
-
-
/**
* When installing 2 contexts as a result of resolving their dependencies or uninstalling
* 2 contexts as a result of undeploying their dependencies we cannot count on the order the 2 contexts are
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-02-02 13:37:27 UTC (rev 100252)
@@ -0,0 +1,547 @@
+/*
+* 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 java.lang.reflect.Field;
+
+import junit.framework.Test;
+
+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.logging.Logger;
+import org.jboss.logging.LoggerPlugin;
+import org.jboss.test.AbstractTestDelegate;
+import org.jboss.test.dependency.controller.support.TestDelegate;
+
+/**
+ * A OnDemandDependencyTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 100247 $
+ */
+public class OnDemandDependencyUninstallTestCase extends AbstractDependencyTest
+{
+ public static Test suite()
+ {
+ return suite(OnDemandDependencyUninstallTestCase.class);
+ }
+
+ public OnDemandDependencyUninstallTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testNoUglyError() throws Throwable
+ {
+ Field logField = getLoggerField();
+ Logger old = (Logger) logField.get(controller);
+ LoggerDecorator newLogger = new LoggerDecorator(old);
+ try
+ {
+ logField.set(controller, newLogger);
+ 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(newLogger.warnErrorCalled);
+ }
+ finally
+ {
+ logField.set(controller, old);
+ }
+ }
+
+ private Field getLoggerField()
+ {
+ Class<?> clazz = controller.getClass();
+ Field field = null;
+
+ while (field == null && clazz != null)
+ {
+ try
+ {
+ field = clazz.getDeclaredField("log");
+ field.setAccessible(true);
+ break;
+ }
+ catch (Exception e)
+ {
+ }
+ clazz = clazz.getSuperclass();
+ }
+
+ assertNotNull(field);
+ return field;
+ }
+
+ 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;
+ }
+
+ static class LoggerDecorator extends Logger
+ {
+ Logger delegate;
+ boolean warnErrorCalled;
+
+ protected LoggerDecorator(Logger delegate)
+ {
+ // FIXME LoggerDecorator constructor
+ super(delegate.getName());
+ this.delegate = delegate;
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#debug(java.lang.Object, java.lang.Throwable)
+ */
+ public void debug(Object message, Throwable t)
+ {
+ delegate.debug(message, t);
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#debug(java.lang.Object)
+ */
+ public void debug(Object message)
+ {
+ delegate.debug(message);
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#debug(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void debug(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.debug(loggerFqcn, message, t);
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#debugf(java.lang.String, java.lang.Object[])
+ */
+ public void debugf(String format, Object... params)
+ {
+ delegate.debugf(format, params);
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#debugf(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void debugf(Throwable t, String format, Object... params)
+ {
+ delegate.debugf(t, format, params);
+ }
+
+ /**
+ * @param obj
+ * @return
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj)
+ {
+ return delegate.equals(obj);
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#error(java.lang.Object, java.lang.Throwable)
+ */
+ public void error(Object message, Throwable t)
+ {
+ delegate.error(message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#error(java.lang.Object)
+ */
+ public void error(Object message)
+ {
+ delegate.error(message);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#error(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void error(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.error(loggerFqcn, message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#errorf(java.lang.String, java.lang.Object[])
+ */
+ public void errorf(String format, Object... params)
+ {
+ delegate.errorf(format, params);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#errorf(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void errorf(Throwable t, String format, Object... params)
+ {
+ delegate.errorf(t, format, params);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#fatal(java.lang.Object, java.lang.Throwable)
+ */
+ public void fatal(Object message, Throwable t)
+ {
+ delegate.fatal(message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#fatal(java.lang.Object)
+ */
+ public void fatal(Object message)
+ {
+ delegate.fatal(message);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#fatal(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void fatal(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.fatal(loggerFqcn, message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#fatalf(java.lang.String, java.lang.Object[])
+ */
+ public void fatalf(String format, Object... params)
+ {
+ delegate.fatalf(format, params);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#fatalf(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void fatalf(Throwable t, String format, Object... params)
+ {
+ delegate.fatalf(t, format, params);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @return
+ * @see org.jboss.logging.Logger#getLoggerPlugin()
+ */
+ public LoggerPlugin getLoggerPlugin()
+ {
+ return delegate.getLoggerPlugin();
+ }
+
+ /**
+ * @return
+ * @see org.jboss.logging.Logger#getName()
+ */
+ public String getName()
+ {
+ return delegate.getName();
+ }
+
+ /**
+ * @return
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode()
+ {
+ return delegate.hashCode();
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#info(java.lang.Object, java.lang.Throwable)
+ */
+ public void info(Object message, Throwable t)
+ {
+ delegate.info(message, t);
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#info(java.lang.Object)
+ */
+ public void info(Object message)
+ {
+ delegate.info(message);
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#info(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void info(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.info(loggerFqcn, message, t);
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#infof(java.lang.String, java.lang.Object[])
+ */
+ public void infof(String format, Object... params)
+ {
+ delegate.infof(format, params);
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#infof(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void infof(Throwable t, String format, Object... params)
+ {
+ delegate.infof(t, format, params);
+ }
+
+ /**
+ * @return
+ * @deprecated
+ * @see org.jboss.logging.Logger#isDebugEnabled()
+ */
+ public boolean isDebugEnabled()
+ {
+ return delegate.isDebugEnabled();
+ }
+
+ /**
+ * @return
+ * @deprecated
+ * @see org.jboss.logging.Logger#isInfoEnabled()
+ */
+ public boolean isInfoEnabled()
+ {
+ return delegate.isInfoEnabled();
+ }
+
+ /**
+ * @return
+ * @see org.jboss.logging.Logger#isTraceEnabled()
+ */
+ public boolean isTraceEnabled()
+ {
+ return delegate.isTraceEnabled();
+ }
+
+ /**
+ * @return
+ * @see java.lang.Object#toString()
+ */
+ public String toString()
+ {
+ return delegate.toString();
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#trace(java.lang.Object, java.lang.Throwable)
+ */
+ public void trace(Object message, Throwable t)
+ {
+ delegate.trace(message, t);
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#trace(java.lang.Object)
+ */
+ public void trace(Object message)
+ {
+ delegate.trace(message);
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#trace(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void trace(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.trace(loggerFqcn, message, t);
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#tracef(java.lang.String, java.lang.Object[])
+ */
+ public void tracef(String format, Object... params)
+ {
+ delegate.tracef(format, params);
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#tracef(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void tracef(Throwable t, String format, Object... params)
+ {
+ delegate.tracef(t, format, params);
+ }
+
+ /**
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#warn(java.lang.Object, java.lang.Throwable)
+ */
+ public void warn(Object message, Throwable t)
+ {
+ delegate.warn(message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param message
+ * @see org.jboss.logging.Logger#warn(java.lang.Object)
+ */
+ public void warn(Object message)
+ {
+ delegate.warn(message);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param loggerFqcn
+ * @param message
+ * @param t
+ * @see org.jboss.logging.Logger#warn(java.lang.String, java.lang.Object, java.lang.Throwable)
+ */
+ public void warn(String loggerFqcn, Object message, Throwable t)
+ {
+ delegate.warn(loggerFqcn, message, t);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#warnf(java.lang.String, java.lang.Object[])
+ */
+ public void warnf(String format, Object... params)
+ {
+ delegate.warnf(format, params);
+ warnErrorCalled = true;
+ }
+
+ /**
+ * @param t
+ * @param format
+ * @param params
+ * @see org.jboss.logging.Logger#warnf(java.lang.Throwable, java.lang.String, java.lang.Object[])
+ */
+ public void warnf(Throwable t, String format, Object... params)
+ {
+ delegate.warnf(t, format, params);
+ warnErrorCalled = true;
+ }
+
+
+ }
+
+ public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
+ {
+ AbstractTestDelegate delegate = new AbstractTestDelegate(clazz);
+ delegate.enableSecurity = false;
+ return delegate;
+ }
+
+}
More information about the jboss-cvs-commits
mailing list