[jboss-cvs] JBossAS SVN: r68327 - trunk/testsuite/src/main/org/jboss/test/profileservice/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Dec 16 18:48:20 EST 2007


Author: alex.loubyansky at jboss.com
Date: 2007-12-16 18:48:20 -0500 (Sun, 16 Dec 2007)
New Revision: 68327

Modified:
   trunk/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java
Log:
checking the majority of managed properties, there still is an issue with unwraping collection values

Modified: trunk/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java	2007-12-16 23:46:41 UTC (rev 68326)
+++ trunk/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java	2007-12-16 23:48:20 UTC (rev 68327)
@@ -26,12 +26,15 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.io.Serializable;
 import javax.naming.InitialContext;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.jboss.deployers.spi.management.DeploymentTemplateInfo;
 import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.deployers.spi.management.KnownComponentTypes;
 import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedComponent;
 import org.jboss.managed.api.ManagedDeployment;
@@ -42,6 +45,7 @@
 import org.jboss.metatype.api.values.GenericValue;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.profileservice.spi.NoSuchProfileException;
 import org.jboss.profileservice.spi.ProfileKey;
 import org.jboss.profileservice.spi.ProfileService;
@@ -79,6 +83,7 @@
       suite.addTest(new ProfileServiceUnitTestCase("testListDataSourceComponents"));
       suite.addTest(new ProfileServiceUnitTestCase("testUpdateDefaultDS"));
       suite.addTest(new ProfileServiceUnitTestCase("testDefaultDSOps"));
+
       suite.addTest(new ProfileServiceUnitTestCase("testAddDataSource"));
       suite.addTest(new ProfileServiceUnitTestCase("testRemoveDataSource"));
       suite.addTest(new ProfileServiceUnitTestCase("testAddXADataSource"));
@@ -89,6 +94,7 @@
       suite.addTest(new ProfileServiceUnitTestCase("testRemoveNoTxConnectionFactory"));
       suite.addTest(new ProfileServiceUnitTestCase("testAddNoTxDataSource"));
       suite.addTest(new ProfileServiceUnitTestCase("testRemoveNoTxDataSource"));
+
       return suite;
    }
 
@@ -373,23 +379,11 @@
     */
    public void testAddDataSource() throws Exception
    {
-      ManagementView mgtView = getManagementView();
-      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("LocalTxDataSourceTemplate");
-      Map<String, ManagedProperty> props = dsInfo.getProperties();
-
-      ManagedProperty jndiName = props.get("jndi-name");
-      jndiName.setValue("TestHqldbDS");
-      ManagedProperty connURL = props.get("connection-url");
-      connURL.setValue("jdbc:hsqldb:.");
-      ManagedProperty driverClass = props.get("driver-class");
-      driverClass.setValue("org.hsqldb.jdbcDriver");
-      ManagedProperty username = props.get("user-name");
-      username.setValue("sa");
-      ManagedProperty password = props.get("password");
-      password.setValue("");
-      
-      mgtView.applyTemplate(DeploymentPhase.APPLICATION, "testLocalTxDs", dsInfo);
-      mgtView.process();
+      String jndiName = "TestLocalTxDs";
+      Map<String, Serializable> propValues = new HashMap<String, Serializable>();
+      addNonXaDsProperties(propValues, jndiName, "jboss-local-jdbc.rar", "javax.sql.DataSource");
+      createComponentTest("LocalTxDataSourceTemplate", propValues, "testLocalTxDs",
+         KnownComponentTypes.DataSourceTypes.LocalTx.getType(), jndiName);
    }
 
    public void testRemoveDataSource()
@@ -404,17 +398,14 @@
     */
    public void testAddXADataSource() throws Exception
    {
-      ManagementView mgtView = getManagementView();
-      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("XADataSourceTemplate");
-      Map<String, ManagedProperty> props = dsInfo.getProperties();
+      String jndiName = "TestXaDs";
+      Map<String, Serializable> propValues = new HashMap<String, Serializable>();
 
-      ManagedProperty jndiName = props.get("jndi-name");
-      jndiName.setValue("TestHqldbXADS");
+      addCommonDsProperties(propValues, jndiName, "jboss-xa-jdbc.rar", "javax.sql.DataSource");
 
-      ManagedProperty driverClass = props.get("xa-datasource-class");
-      driverClass.setValue("org.hsqldb.jdbcDriver");
+      propValues.put("xa-datasource-class", "org.hsqldb.jdbcDriver");
+      propValues.put("xa-resource-timeout", new Integer(256));
 
-      ManagedProperty xaDsProps = props.get("xa-datasource-properties");
       ArrayList<XAConnectionPropertyMetaData> xaPropsValue = new ArrayList<XAConnectionPropertyMetaData>();
       XAConnectionPropertyMetaData xaPropMD = new XAConnectionPropertyMetaData();
       xaPropMD.setName("URL");
@@ -428,10 +419,10 @@
       xaPropMD.setName("Password");
       xaPropMD.setValue("");
       xaPropsValue.add(xaPropMD);
-      xaDsProps.setValue(xaPropsValue);
+      propValues.put("xa-datasource-properties", xaPropsValue);
 
-      mgtView.applyTemplate(DeploymentPhase.APPLICATION, "testXaDs", dsInfo);
-      mgtView.process();
+      createComponentTest("XADataSourceTemplate", propValues, "testXaDs",
+         KnownComponentTypes.DataSourceTypes.XA.getType(), jndiName);
    }
 
    /**
@@ -450,21 +441,11 @@
     */
    public void testAddTxConnectionFactory() throws Exception
    {
-      ManagementView mgtView = getManagementView();
-      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("TxConnectionFactoryTemplate");
-      Map<String, ManagedProperty> props = dsInfo.getProperties();
+      String jndiName = "TestTxCf";
+      Map<String, Serializable> propValues = new HashMap<String, Serializable>();
 
-      ManagedProperty jndiName = props.get("jndi-name");
-      jndiName.setValue("testJmsXA");
+      addCommonCfProperties(propValues, jndiName, "jms-ra.rar", "org.jboss.resource.adapter.jms.JmsConnectionFactory");
 
-      props.get("xa-transaction").setValue(Boolean.TRUE);
-      ManagedProperty rarName = props.get("rar-name");
-      rarName.setValue("jms-ra.rar");
-
-      ManagedProperty conDef = props.get("connection-definition");
-      conDef.setValue("org.jboss.resource.adapter.jms.JmsConnectionFactory");
-
-      ManagedProperty configProps = props.get("config-property");
       ArrayList<ManagedConnectionFactoryPropertyMetaData> configPropsValue = new ArrayList<ManagedConnectionFactoryPropertyMetaData>();
       ManagedConnectionFactoryPropertyMetaData configPropMD = new ManagedConnectionFactoryPropertyMetaData();
       configPropMD.setName("SessionDefaultType");
@@ -476,16 +457,17 @@
       configPropMD.setType("java.lang.String");
       configPropMD.setValue("java:/DefaultJMSProvider");
       configPropsValue.add(configPropMD);
-      configProps.setValue(configPropsValue);
+      propValues.put("config-property", configPropsValue);
 
-      props.get("min-pool-size").setValue(new Integer(20));
+      propValues.put("xa-transaction", Boolean.TRUE);
+      propValues.put("xa-resource-timeout", new Integer(256));
 
       // todo: how to set the specific domain?
       //ApplicationManagedSecurityMetaData secDomain = new ApplicationManagedSecurityMetaData();
       //props.get("security-domain").setValue(secDomain);
 
-      mgtView.applyTemplate(DeploymentPhase.APPLICATION, "testTxCf", dsInfo);
-      mgtView.process();
+      createComponentTest("TxConnectionFactoryTemplate", propValues, "testTxCf",
+         new ComponentType("ConnectionFactory", "XA"), jndiName);
    }
 
    /**
@@ -504,23 +486,11 @@
     */
    public void testAddNoTxDataSource() throws Exception
    {
-      ManagementView mgtView = getManagementView();
-      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("NoTxDataSourceTemplate");
-      Map<String, ManagedProperty> props = dsInfo.getProperties();
-
-      ManagedProperty jndiName = props.get("jndi-name");
-      jndiName.setValue("TestNoTxDs");
-      ManagedProperty connURL = props.get("connection-url");
-      connURL.setValue("jdbc:hsqldb:.");
-      ManagedProperty driverClass = props.get("driver-class");
-      driverClass.setValue("org.hsqldb.jdbcDriver");
-      ManagedProperty username = props.get("user-name");
-      username.setValue("sa");
-      ManagedProperty password = props.get("password");
-      password.setValue("");
-
-      mgtView.applyTemplate(DeploymentPhase.APPLICATION, "testNoTxDs", dsInfo);
-      mgtView.process();
+      String jndiName = "TestNoTxDs";
+      Map<String, Serializable> propValues = new HashMap<String, Serializable>();
+      addNonXaDsProperties(propValues, jndiName, "jboss-local-jdbc.rar", "javax.sql.DataSource");
+      createComponentTest("NoTxDataSourceTemplate", propValues, "testNoTxDs",
+         KnownComponentTypes.DataSourceTypes.NoTx.getType(), jndiName);
    }
 
    public void testRemoveNoTxDataSource()
@@ -535,15 +505,11 @@
     */
    public void testAddNoTxConnectionFactory() throws Exception
    {
-      ManagementView mgtView = getManagementView();
-      DeploymentTemplateInfo dsInfo = mgtView.getTemplate("NoTxConnectionFactoryTemplate");
-      Map<String, ManagedProperty> props = dsInfo.getProperties();
+      String jndiName = "TestNoTxCf";
+      Map<String, Serializable> propValues = new HashMap<String, Serializable>();
 
-      props.get("jndi-name").setValue("testNoTxJms");
-      props.get("rar-name").setValue("jms-ra.rar");
-      props.get("connection-definition").setValue("org.jboss.resource.adapter.jms.JmsConnectionFactory");
+      addCommonCfProperties(propValues, jndiName, "jms-ra.rar", "org.jboss.resource.adapter.jms.JmsConnectionFactory");
 
-      ManagedProperty configProps = props.get("config-property");
       ArrayList<ManagedConnectionFactoryPropertyMetaData> configPropsValue = new ArrayList<ManagedConnectionFactoryPropertyMetaData>();
       ManagedConnectionFactoryPropertyMetaData configPropMD = new ManagedConnectionFactoryPropertyMetaData();
       configPropMD.setName("SessionDefaultType");
@@ -555,16 +521,14 @@
       configPropMD.setType("java.lang.String");
       configPropMD.setValue("java:/DefaultJMSProvider");
       configPropsValue.add(configPropMD);
-      configProps.setValue(configPropsValue);
+      propValues.put("config-property", configPropsValue);
 
-      props.get("min-pool-size").setValue(new Integer(20));
-
       // todo: how to set the specific domain?
       //ApplicationManagedSecurityMetaData secDomain = new ApplicationManagedSecurityMetaData();
       //props.get("security-domain").setValue(secDomain);
 
-      mgtView.applyTemplate(DeploymentPhase.APPLICATION, "testNoTxCf", dsInfo);
-      mgtView.process();
+      createComponentTest("NoTxConnectionFactoryTemplate", propValues, "testNoTxCf",
+         new ComponentType("ConnectionFactory", "NoTx"), jndiName);
    }
 
    /**
@@ -577,6 +541,135 @@
       removeDeployment("testNoTxCf-ds.xml");
    }
 
+   // Private and protected
+
+   private void addNonXaDsProperties(Map<String, Serializable> propValues,
+                                     String jndiName,
+                                     String rarName,
+                                     String conDef)
+   {
+      addCommonDsProperties(propValues, jndiName, rarName, conDef);
+
+      propValues.put("transaction-isolation", "TRANSACTION_SERIALIZABLE");
+      propValues.put("user-name", "sa");
+      propValues.put("password", "");
+
+      // non xa ds
+      propValues.put("driver-class", "org.hsqldb.jdbcDriver");
+      propValues.put("connection-url", "jdbc:hsqldb:.");
+      // todo: connection-properties
+   }
+
+   private void addCommonDsProperties(Map<String, Serializable> propValues,
+                                              String jndiName,
+                                              String rarName,
+                                              String conDef)
+   {
+      addCommonCfProperties(propValues, jndiName, rarName, conDef);
+      propValues.put("new-connection-sql", "CALL ABS(2.0)");
+      propValues.put("check-valid-connection-sql", "CALL ABS(1.0)");
+      propValues.put("valid-connection-checker-class-name", "org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker");
+      propValues.put("exception-sorter-class-name", "org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter");
+      propValues.put("stale-connection-checker-class-name", "org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker");
+      propValues.put("track-statements", "");
+      propValues.put("prepared-statement-cache-size", 12);
+      propValues.put("share-prepared-statements", Boolean.TRUE);
+      propValues.put("set-tx-query-timeout", Boolean.TRUE);
+      propValues.put("query-timeout", new Integer(100));
+      propValues.put("url-delimiter", "+");
+      propValues.put("url-selector-strategy-class-name", "org.jboss.test.jca.support.MyURLSelector");
+   }
+
+   private void addCommonCfProperties(Map<String, Serializable> propValues,
+                                    String jndiName,
+                                    String rarName,
+                                    String conDef)
+   {
+      propValues.put("jndi-name", jndiName);
+      propValues.put("rar-name", rarName);
+      propValues.put("use-java-context", Boolean.TRUE);
+      propValues.put("connection-definition", conDef);
+      propValues.put("jmx-invoker-name", "jboss:service=invoker,type=jrmp");
+      propValues.put("min-pool-size", new Integer(0));
+      propValues.put("max-pool-size", new Integer(11));
+      propValues.put("blocking-timeout-millis", new Long(15000));
+      propValues.put("idle-timeout-minutes", new Integer(111));
+      propValues.put("prefill", Boolean.TRUE);
+      propValues.put("background-validation", Boolean.TRUE);
+      propValues.put("background-validation-minutes", new Integer(10));
+      propValues.put("validate-on-match", Boolean.FALSE);
+      propValues.put("use-strict-min", Boolean.TRUE);
+      propValues.put("noTxSeparatePools", Boolean.TRUE);
+      propValues.put("statistics-formatter", "org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter");
+      propValues.put("isSameRM-override-value", Boolean.FALSE);
+      propValues.put("track-connection-by-tx", Boolean.TRUE);
+      propValues.put("type-mapping", "Hypersonic SQL");
+      // todo: config-property
+      // todo: security-domain
+      // todo: depends
+      // todo: metadata
+      // todo: local-transaction
+   }
+
+   private void createComponentTest(String templateName,
+                                    Map<String, Serializable> propValues,
+                                    String deploymentName,
+                                    ComponentType componentType, String componentName)
+      throws Exception
+   {
+      ManagementView mgtView = getManagementView();
+      DeploymentTemplateInfo dsInfo = mgtView.getTemplate(templateName);
+      assertNotNull("template " + templateName + " found", dsInfo);
+      Map<String, ManagedProperty> props = dsInfo.getProperties();
+
+      for(String propName : propValues.keySet())
+      {
+         ManagedProperty prop = props.get(propName);
+         assertNotNull("property " + propName + " found in template " + templateName, prop);
+         prop.setValue(propValues.get(propName));
+      }
+
+      mgtView.applyTemplate(DeploymentPhase.APPLICATION, deploymentName, dsInfo);
+      mgtView.process();
+
+      // reload the view
+      activeView = null;
+      mgtView = getManagementView();
+      ManagedComponent dsMC = getManagedComponent(mgtView, componentType, componentName);
+      assertNotNull(dsMC);
+
+      Set<String> mcPropNames = new HashSet<String>(dsMC.getPropertyNames());
+      for(String propName : propValues.keySet())
+      {
+         ManagedProperty prop = dsMC.getProperty(propName);
+         assertNotNull(prop);
+         if(prop.getMetaType().isSimple())
+            assertEquals(propValues.get(propName), ((SimpleValue)prop.getValue()).getValue());
+         else
+         {
+            //TODO this unwrapping doesn't work!
+            log.warn(getName() + "> skipping assertion for " + prop.getName());
+/*
+            Serializable expectedValue = propValues.get(propName);
+            Class valueType;
+            if(expectedValue instanceof java.util.List)
+               valueType = java.util.List.class;
+            else
+               valueType = expectedValue.getClass();
+
+            Object value = MetaValueFactory.getInstance().unwrap((MetaValue)prop.getValue(), valueType);
+            assertEquals(expectedValue, value);
+*/
+         }
+         mcPropNames.remove(propName);
+      }
+
+      if(!mcPropNames.isEmpty())
+      {
+         log.warn(getName() + "> untested properties: " + mcPropNames);
+      }
+   }
+
    protected void removeDeployment(String deployment)
       throws Exception
    {




More information about the jboss-cvs-commits mailing list