User: ejort   
  Date: 02/02/22 08:44:33

  Added:       src/main/test/compliance/query BasicQueryExpTestCase.java
                        QueryMBeansObjectNameOnlyTestCase.java
                        QuerySUITE.java
  Log:
  Default Domain, Querying, Various Other Fixes
  
  Revision  Changes    Path
  1.1                  jmx/src/main/test/compliance/query/BasicQueryExpTestCase.java
  
  Index: BasicQueryExpTestCase.java
  ===================================================================
  /*
   * JBoss, the OpenSource J2EE webOS
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  
  package test.compliance.query;
  
  import junit.framework.TestCase;
  
  import test.compliance.query.support.NumberTest;
  import test.compliance.query.support.StringTest;
  import test.compliance.query.support.Trivial;
  
  import java.util.Iterator;
  import java.util.Set;
  import java.util.HashSet;
  
  import javax.management.MBeanServer;
  import javax.management.MBeanServerFactory;
  import javax.management.ObjectInstance;
  import javax.management.ObjectName;
  import javax.management.Query;
  import javax.management.QueryExp;
  
  /**
   * Some basic tests, to be replaced with proper tests
   *
   * @author  <a href="mailto:[EMAIL PROTECTED]";>Adrian Brock</a>.
   */
  public class BasicQueryExpTestCase
    extends TestCase
  {
     // Attributes ----------------------------------------------------------------
  
     // Constructor ---------------------------------------------------------------
  
     /**
      * Construct the test
      */
     public BasicQueryExpTestCase(String s)
     {
        super(s);
     }
  
     // Tests ---------------------------------------------------------------------
  
     /**
      * Test a number equals.
      */
     public void testNumberEquals1()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new NumberTest(10), 
                         new ObjectName("Domain1:type=instance1")));
           exp = Query.eq(Query.attr("Number"), Query.value(10));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test a number equals.
      */
     public void testNumberEquals2()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new NumberTest(9), 
                         new ObjectName("Domain1:type=instance1"));
           exp = Query.eq(Query.attr("Number"), Query.value(10));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test a number equals.
      */
     public void testNumberEquals3()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new NumberTest(10), 
                         new ObjectName("Domain1:type=instance1")));
           server.registerMBean(new NumberTest(9), 
                         new ObjectName("Domain1:type=instance2"));
           exp = Query.eq(Query.attr("Number"), Query.value(10));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test starts with.
      */
     public void testStartsWith1()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new StringTest("HelloWorld"), 
                         new ObjectName("Domain1:type=instance1")));
           exp = Query.initialSubString(Query.attr("String"), Query.value("Hello"));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test starts with.
      */
     public void testStartsWith2()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new StringTest("HelloWorld"), 
                         new ObjectName("Domain1:type=instance1"));
           exp = Query.initialSubString(Query.attr("String"), Query.value("Hi"));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test And.
      */
     public void testAnd1()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(10), 
                         new ObjectName("Domain1:type=instance1")));
           exp = Query.and(Query.eq(Query.attr("String"),Query.value("trivial")),
                           Query.eq(Query.attr("Number"),Query.value(10)));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test And.
      */
     public void testAnd2()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new Trivial(9), 
                         new ObjectName("Domain1:type=instance1"));
           exp = Query.and(Query.eq(Query.attr("String"),Query.value("trivial")),
                           Query.eq(Query.attr("Number"),Query.value(10)));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test And.
      */
     public void testAnd3()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new Trivial(10), 
                         new ObjectName("Domain1:type=instance1"));
           exp = Query.and(Query.eq(Query.attr("String"),Query.value("simple")),
                           Query.eq(Query.attr("Number"),Query.value(10)));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Plus.
      */
     public void testPlus1()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new NumberTest(10), 
                         new ObjectName("Domain1:type=instance1")));
           exp = Query.eq(Query.plus(Query.attr("Number"),Query.value(20d)),
                          Query.value(30l));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Plus.
      */
     public void testPlus2()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new NumberTest(10), 
                         new ObjectName("Domain1:type=instance1"));
           exp = Query.eq(Query.plus(Query.attr("Number"),Query.value(20d)),
                          Query.value(0));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Class Attribute.
      */
     public void testClassAttr()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        QueryExp exp = null;
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new NumberTest(10), 
                         new ObjectName("Domain1:type=instance1")));
           server.registerMBean(new StringTest(), 
                         new ObjectName("Domain1:type=instance2"));
           exp = Query.eq(Query.classattr(),Query.value(NumberTest.class.getName()));
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        // Run the Query
        resultMBeans = server.queryMBeans(null, exp);
        resultNames = server.queryNames(null, exp);
  
        // Check the result
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     // Support ----------------------------------------------------------------
  
     /**
      * Check the Query
      */
     private void checkit(Set resultMBeans, Set resultNames, HashSet expected)
     {
        // Quick tests
        assertEquals(expected.size(), resultMBeans.size());
        assertEquals(expected.size(), resultNames.size());
  
        // Get the expected ObjectNames
        HashSet expectedNames = new HashSet();
        Iterator iterator = expected.iterator();
        while (iterator.hasNext())
        {
           expectedNames.add(((ObjectInstance) iterator.next()).getObjectName());
        }
  
        // Check resultMBeans
        iterator = resultMBeans.iterator();
        while (iterator.hasNext())
        {
           ObjectInstance instance = (ObjectInstance) iterator.next();
           Iterator iterator2 = expected.iterator();
           boolean found = false;
           while (iterator2.hasNext())
           {
              if (iterator2.next().equals(instance))
              {
                 iterator2.remove();
                 found = true;
                 break;
              }
           }
          if (found == false)
             fail("Unexpected instance " + instance.getObjectName());
        }
  
        // Check resultNames
        iterator = resultNames.iterator();
        while (iterator.hasNext())
        {
           ObjectName name = (ObjectName) iterator.next();
           Iterator iterator2 = expectedNames.iterator();
           boolean found = false;
           while (iterator2.hasNext())
           {
              if (iterator2.next().equals(name))
              {
                 iterator2.remove();
                 found = true;
                 break;
              }
           }
          if (found == false)
             fail("Unexpected name " + name);
        }
     }
  }
  
  
  
  1.1                  
jmx/src/main/test/compliance/query/QueryMBeansObjectNameOnlyTestCase.java
  
  Index: QueryMBeansObjectNameOnlyTestCase.java
  ===================================================================
  /*
   * JBoss, the OpenSource J2EE webOS
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  
  package test.compliance.query;
  
  import junit.framework.TestCase;
  
  import test.compliance.query.support.Trivial;
  
  import java.util.Iterator;
  import java.util.Set;
  import java.util.HashSet;
  
  import javax.management.MBeanServer;
  import javax.management.MBeanServerFactory;
  import javax.management.ObjectInstance;
  import javax.management.ObjectName;
  
  /**
   * Object Name Query tests.<p>
   *
   * TODO: More tests, more systematic?
   *
   * @author  <a href="mailto:[EMAIL PROTECTED]";>Adrian Brock</a>.
   */
  public class QueryMBeansObjectNameOnlyTestCase
    extends TestCase
  {
     // Attributes ----------------------------------------------------------------
  
     static final String JMI = "JMImplementation:type=MBeanServerDelegate";
  
     // Constructor ---------------------------------------------------------------
  
     /**
      * Construct the test
      */
     public QueryMBeansObjectNameOnlyTestCase(String s)
     {
        super(s);
     }
  
     // Tests ---------------------------------------------------------------------
  
     /**
      * Test single bean found.
      */
     public void testExactFound()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName("Domain1:type=instance1"), 
null);
           resultNames = server.queryNames(new ObjectName("Domain1:type=instance1"), 
null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test single bean not found.
      */
     public void testExactNotFound()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName("Domain2:type=instance2"), 
null);
           resultNames = server.queryNames(new ObjectName("Domain2:type=instance2"), 
null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Get All.
      */
     public void testGetAllMBeans()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.getObjectInstance(new ObjectName(JMI)));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1")));
           resultMBeans = server.queryMBeans(new ObjectName("*:*"), null);
           resultNames = server.queryNames(new ObjectName("*:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Get All.
      */
     public void testGetAllMBeans2()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.getObjectInstance(new ObjectName(JMI)));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1")));
           resultMBeans = server.queryMBeans(new ObjectName(""), null);
           resultNames = server.queryNames(new ObjectName(""), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test Get All.
      */
     public void testGetAllMBeans3()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.getObjectInstance(new ObjectName(JMI)));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1")));
           resultMBeans = server.queryMBeans(null, null);
           resultNames = server.queryNames(null, null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test one domain.
      */
     public void testGetOneDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName("Domain1:*"), null);
           resultNames = server.queryNames(new ObjectName("Domain1:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test default domain.
      */
     public void testGetDefaultDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("Domain1");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName(":*"), null);
           resultNames = server.queryNames(new ObjectName(":*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test one property.
      */
     public void testGetOneProperty()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance1")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain1:type=instance2"));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain2:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("Domain3:type=instance1")));
           resultMBeans = server.queryMBeans(new ObjectName("*:type=instance1"), null);
           resultNames = server.queryNames(new ObjectName("*:type=instance1"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecAll()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.getObjectInstance(new ObjectName(JMI)));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=ink")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1")));
           resultMBeans = server.queryMBeans(new ObjectName("*:*"), null);
           resultNames = server.queryNames(new ObjectName("*:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecDefault()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser"));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=ink")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2"));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1")));
           resultMBeans = server.queryMBeans(new ObjectName(":*"), null);
           resultNames = server.queryNames(new ObjectName(":*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecMyDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993"));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Printer,type=ink"));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1"));
           resultMBeans = server.queryMBeans(new ObjectName("MyDomain:*"), null);
           resultNames = server.queryNames(new ObjectName("MyDomain:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecAnyAnyDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993"));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Printer,type=ink"));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1"));
           resultMBeans = server.queryMBeans(new ObjectName("??Domain:*"), null);
           resultNames = server.queryNames(new ObjectName("??Domain:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testAsteriskDomAsterisk()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
           server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=ink")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1")));
           resultMBeans = server.queryMBeans(new ObjectName("*Dom*:*"), null);
           resultNames = server.queryNames(new ObjectName("*Dom*:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecLaserPrinters()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Printer,type=ink"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=1"));
           resultMBeans = server.queryMBeans(new 
ObjectName("*:description=Printer,type=laser,*"), null);
           resultNames = server.queryNames(new 
ObjectName("*:description=Printer,type=laser,*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * This one is from the spec.
      */
     public void testSpecPrinters()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer();
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Printer,type=laser")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
           instances.add(server.registerMBean(new Trivial(), 
                         new 
ObjectName("DefaultDomain:description=Printer,type=ink")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("MyDomain:description=Disk,capacity=2"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("DefaultDomain:description=Disk,capacity=2"));
           resultMBeans = server.queryMBeans(new 
ObjectName("*:description=Printer,*"), null);
           resultNames = server.queryNames(new ObjectName("*:description=Printer,*"), 
null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test suffix asterisk on domain.
      */
     public void testSuffixMatchManyDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DomainA123:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DomainA321:type=instance2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DomainA2224:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DomainA3:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("DomainA:type=instance1")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Dom:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName("DomainA*:*"), null);
           resultNames = server.queryNames(new ObjectName("DomainA*:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     /**
      * Test prefix asterisk on domain.
      */
     public void testPrefixMatchManyDomain()
     {
        MBeanServer server = null;
        HashSet instances = new HashSet();
        Set resultMBeans = null;
        Set resultNames = null;
        try
        {
           server = MBeanServerFactory.createMBeanServer("QueryMBeans");
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("123ADomain:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("321ADomain:type=instance2")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("2224ADomain:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("3ADomain:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("3ADomai123ADomain:type=instance1")));
           instances.add(server.registerMBean(new Trivial(), 
                         new ObjectName("ADomain:type=instance1")));
           server.registerMBean(new Trivial(), 
                         new ObjectName("Domain:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("ADomai:type=instance1"));
           server.registerMBean(new Trivial(), 
                         new ObjectName("main:type=instance1"));
           resultMBeans = server.queryMBeans(new ObjectName("*ADomain:*"), null);
           resultNames = server.queryNames(new ObjectName("*ADomain:*"), null);
        }
        catch (Exception e)
        {
           fail(e.toString());
        }
  
        checkit(resultMBeans, resultNames, instances);
  
        if (server != null)
           MBeanServerFactory.releaseMBeanServer(server);
     }
  
     // Support ----------------------------------------------------------------
  
     /**
      * Check the resultMBeans
      */
     private void checkit(Set resultMBeans, Set resultNames, HashSet expected)
     {
        // Quick tests
        assertEquals(expected.size(), resultMBeans.size());
        assertEquals(expected.size(), resultNames.size());
  
        // Get the expected ObjectNames
        HashSet expectedNames = new HashSet();
        Iterator iterator = expected.iterator();
        while (iterator.hasNext())
        {
           expectedNames.add(((ObjectInstance) iterator.next()).getObjectName());
        }
  
        // Check resultMBeans
        iterator = resultMBeans.iterator();
        while (iterator.hasNext())
        {
           ObjectInstance instance = (ObjectInstance) iterator.next();
           Iterator iterator2 = expected.iterator();
           boolean found = false;
           while (iterator2.hasNext())
           {
              if (iterator2.next().equals(instance))
              {
                 iterator2.remove();
                 found = true;
                 break;
              }
           }
          if (found == false)
             fail("Unexpected instance " + instance.getObjectName());
        }
  
        // Check resultNames
        iterator = resultNames.iterator();
        while (iterator.hasNext())
        {
           ObjectName name = (ObjectName) iterator.next();
           Iterator iterator2 = expectedNames.iterator();
           boolean found = false;
           while (iterator2.hasNext())
           {
              if (iterator2.next().equals(name))
              {
                 iterator2.remove();
                 found = true;
                 break;
              }
           }
          if (found == false)
             fail("Unexpected name " + name);
        }
     }
  }
  
  
  
  1.1                  jmx/src/main/test/compliance/query/QuerySUITE.java
  
  Index: QuerySUITE.java
  ===================================================================
  /*
   * JBoss, the OpenSource J2EE webOS
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  
  package test.compliance.query;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  /**
   * Query tests.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Adrian Brock</a>.
   */
  public class QuerySUITE
    extends TestSuite
  {
    /**
     * Run the tests
     * 
     * @param args the arguments for the test
     */
    public static void main(String[] args)
    {
      junit.textui.TestRunner.run(suite());
    }
  
    /**
     * Get a list of tests.
     *
     * @return the tests
     */
    public static Test suite()
    {
      TestSuite suite = new TestSuite("Query tests");
  
      suite.addTest(new TestSuite(QueryMBeansObjectNameOnlyTestCase.class));
      suite.addTest(new TestSuite(BasicQueryExpTestCase.class));
  
      return suite;
    }
  }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to