[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