Package org.jboss.test.messaging.util

Source Code of org.jboss.test.messaging.util.MBeanConfigurationElementTest

/*
* 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.messaging.util;

import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.jms.util.XMLUtil;
import org.jboss.test.messaging.tools.jboss.MBeanConfigurationElement;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import javax.management.ObjectName;
import java.util.Set;

/**
* @author <a href="mailto:ovidiu@jboss.org">Ovidiu Feodorov</a>
* @version <tt>$Revision: 776 $</tt>
*
* $Id: MBeanConfigurationElementTest.java 776 2006-03-24 05:33:59Z ovidiu $
*/
public class MBeanConfigurationElementTest extends MessagingTestCase
{
   // Constructors --------------------------------------------------

   public MBeanConfigurationElementTest(String name)
   {
      super(name);
   }

   // Public --------------------------------------------------------

   public void setUp() throws Exception
   {
      super.setUp();
   }

   public void tearDown() throws Exception
   {
      super.tearDown();
   }

   public void testMBeanConfiguration_1() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <attribute name=\"SomeName\" value=\"SomeValue\"/>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());
      assertTrue(mbeanConfig.dependencyOptionalAttributeNames().isEmpty());

      Set attributeNames = mbeanConfig.attributeNames();
      assertEquals(1, attributeNames.size());

      assertTrue(attributeNames.contains("SomeName"));

      assertEquals("SomeValue", mbeanConfig.getAttributeValue("SomeName"));
   }

   public void testMBeanConfiguration_2() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <attribute name=\"SomeName\">SomeValue</attribute>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());
      assertTrue(mbeanConfig.dependencyOptionalAttributeNames().isEmpty());

      Set attributeNames = mbeanConfig.attributeNames();
      assertEquals(1, attributeNames.size());

      assertTrue(attributeNames.contains("SomeName"));

      assertEquals("SomeValue", mbeanConfig.getAttributeValue("SomeName"));
   }

   public void testMBeanConfiguration_3() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <attribute name=\"SomeName\" value=\"SomeValue\">SomeOtherValue</attribute>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());
      assertTrue(mbeanConfig.dependencyOptionalAttributeNames().isEmpty());

      Set attributeNames = mbeanConfig.attributeNames();
      assertEquals(1, attributeNames.size());

      assertTrue(attributeNames.contains("SomeName"));

      assertEquals("SomeValue", mbeanConfig.getAttributeValue("SomeName"));
   }


   public void testMBeanConfiguration_4() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <depends>somedomain:somekey=somevalue</depends>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());
      assertTrue(mbeanConfig.dependencyOptionalAttributeNames().isEmpty());
      assertTrue(mbeanConfig.attributeNames().isEmpty());
   }

   public void testMBeanConfiguration_5() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <depends optional-attribute-name=\"SomeName\">somedomain:somekey=somevalue</depends>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());
      assertTrue(mbeanConfig.attributeNames().isEmpty());

      Set optionalAttributeNames = mbeanConfig.dependencyOptionalAttributeNames();
      assertEquals(1, optionalAttributeNames.size());
      assertTrue(optionalAttributeNames.contains("SomeName"));
      assertEquals("somedomain:somekey=somevalue",
                   mbeanConfig.getDependencyOptionalAttributeValue("SomeName"));
   }

   public void testXMLAttribute() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <attribute name=\"xmlattribute\"> " +
         "             <something>" +
         "                 <somethingelse/> " +
         "             </something>" +
         "       </attribute>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      Set optionalAttributeNames = mbeanConfig.attributeNames();
      assertEquals(1, optionalAttributeNames.size());
      assertTrue(optionalAttributeNames.contains("xmlattribute"));

      String attributeValue = mbeanConfig.getAttributeValue("xmlattribute");

      Node n = XMLUtil.stringToElement(attributeValue);
      assertEquals("something", n.getNodeName());

      NodeList nl = n.getChildNodes();
      boolean sonethingelseFound = false;

      for(int i = 0; i < nl.getLength(); i++)
      {
         Node c = nl.item(i);
         if ("somethingelse".equals(c.getNodeName()))
         {
            sonethingelseFound = true;
            break;
         }
      }

      assertTrue(sonethingelseFound);
   }

   public void testConstructor() throws Exception
   {
      String s =
         "<mbean name=\"somedomain:service=SomeService\"" +
         "       code=\"org.example.SomeClass\"" +
         "       xmbean-dd=\"xmdesc/somefile.xml\">" +
         "       <attribute name=\"xmlattribute\">somevalue</attribute>" +
         "       <depends optional-attribute-name=\"SomeDependency\">somedomain:somekey=somevalue</depends>" +
         "       <constructor>\n" +
         "           <arg type=\"java.lang.String\" value=\"blah\" />\n" +
         "           <arg type=\"java.lang.Integer\" value=\"55\" />\n" +
         "           <arg type=\"int\" value=\"77\" />\n" +
         "       </constructor>" +
         "</mbean>";

      Element e = XMLUtil.stringToElement(s);
      MBeanConfigurationElement mbeanConfig = new MBeanConfigurationElement(e);

      assertEquals(new ObjectName("somedomain:service=SomeService"), mbeanConfig.getObjectName());
      assertEquals("org.example.SomeClass", mbeanConfig.getMBeanClassName());


      assertEquals(String.class,  mbeanConfig.getConstructorArgumentType(0, 0));
      assertEquals("blah", mbeanConfig.getConstructorArgumentValue(0, 0));

      assertEquals(Integer.class,  mbeanConfig.getConstructorArgumentType(0, 1));
      assertEquals("55", mbeanConfig.getConstructorArgumentValue(0, 1));

      assertEquals(Integer.TYPE,  mbeanConfig.getConstructorArgumentType(0, 2));
      assertEquals("77", mbeanConfig.getConstructorArgumentValue(0, 2));

      // test constructor argument value change

      mbeanConfig.setConstructorArgumentValue(0, 0, "xerxex");
      assertEquals("xerxex", mbeanConfig.getConstructorArgumentValue(0, 0));

   }
}
TOP

Related Classes of org.jboss.test.messaging.util.MBeanConfigurationElementTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.