[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