package org.jboss.as.test.integration.jca.metrics;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.INCLUDE_RUNTIME;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP_ADDR;
import java.util.List;
import org.jboss.as.connector.subsystems.datasources.DataSourcesExtension;
import org.jboss.as.connector.subsystems.datasources.Namespace;
import org.jboss.as.test.integration.management.jca.DsMgmtTestBase;
import org.jboss.as.test.shared.FileUtils;
import org.jboss.dmr.ModelNode;
import org.junit.Assert;
/**
* @author Stuart Douglas
*/
public abstract class JCAMetrictsTestBase extends DsMgmtTestBase {
//@Before - called from each test
/*
* Load data source model, stored in specified file to the configuration
*/
protected void setModel(String filename) throws Exception {
String xml = FileUtils.readFile(JCAMetrictsTestBase.class, "data-sources/" + filename);
List<ModelNode> operations = xmlToModelOperations(xml, Namespace.CURRENT.getUriString(), new DataSourcesExtension.DataSourceSubsystemParser());
executeOperation(operationListToCompositeOperation(operations));
}
/*
* Bad model must throw an Exception during setModel methos call. To work around wrong test case
* removeDs() method is added.
*/
protected void setBadModel(String filename) throws Exception {
setModel(filename);
removeDs();
}
protected void testStatistics(String configFile) throws Exception {
setModel(configFile);
try {
final ModelNode poolAddress = new ModelNode().set(baseAddress);
poolAddress.add("statistics", "pool");
ModelNode operation = new ModelNode();
operation.get(OP).set("read-resource");
operation.get(OP_ADDR).set(poolAddress);
operation.get(INCLUDE_RUNTIME).set(true);
ModelNode result = executeOperation(operation);
Assert.assertTrue("ActiveCount", result.hasDefined("ActiveCount"));
final ModelNode jdbcAddress = new ModelNode().set(baseAddress);
jdbcAddress.add("statistics", "jdbc");
operation.get(OP_ADDR).set(jdbcAddress);
result = executeOperation(operation);
Assert.assertTrue("PreparedStatementCacheAccessCount", result.hasDefined("PreparedStatementCacheAccessCount"));
} finally {
removeDs();
}
}
}