[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