modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java | 10 - modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java | 5 modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/DistributionManagerBeanTest.java | 12 - modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java | 38 ++-- modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbSetupTest.java | 8 - modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbUpgradeTest.java | 13 - modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java | 36 ---- modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java | 67 +------- modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 78 ++++------ 9 files changed, 97 insertions(+), 170 deletions(-)
New commits: commit a0b5a51ac5f176e55e34171af424898f3d369137 Author: Jay Shaughnessy jshaughn@jshaughn.csb Date: Tue Nov 6 21:36:26 2012 -0500
More test classes working - fixed bug in prepareForTestAgents - simplified other prepare/unprepare methods
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java index 487a0ea..0c232b6 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java @@ -27,8 +27,6 @@ import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.dbunit.dataset.xml.FlatXmlProducer; import org.dbunit.operation.DatabaseOperation; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.xml.sax.InputSource;
@@ -50,8 +48,8 @@ public class DeleteAlertsTest extends AbstractEJB3Test { private Subject superuser; private Resource newResource;
- @BeforeMethod - public void beforeMethod() throws Exception { + @Override + protected void beforeMethod() throws Exception { alertManager = LookupUtil.getAlertManager(); superuser = LookupUtil.getSubjectManager().getOverlord();
@@ -70,8 +68,8 @@ public class DeleteAlertsTest extends AbstractEJB3Test { newResource = getEntityManager().find(Resource.class, 1); }
- @AfterMethod(alwaysRun = true) - public void afterMethod() throws Exception { + @Override + protected void afterMethod() throws Exception { if ("true".equals(System.getProperty("clean.db"))) { Connection connection = null;
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java index dba76ed..1c52833 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java @@ -31,7 +31,6 @@ import javax.transaction.Status; import javax.transaction.SystemException; import javax.transaction.TransactionManager;
-import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test;
import org.rhq.core.domain.authz.Role; @@ -51,8 +50,8 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
private DynamicConfigurationPropertyLocal bean;
- @BeforeMethod - public void setUp() { + @Override + protected void beforeMethod() { bean = LookupUtil.getDynamicConfigurationProperty(); }
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/DistributionManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/DistributionManagerBeanTest.java index 037c071..2b2ee87 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/DistributionManagerBeanTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/DistributionManagerBeanTest.java @@ -2,12 +2,9 @@ package org.rhq.enterprise.server.content.test;
import java.util.List;
-import javax.persistence.EntityManager; import javax.persistence.Query; import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test;
import org.rhq.core.domain.auth.Subject; @@ -27,8 +24,8 @@ public class DistributionManagerBeanTest extends AbstractEJB3Test { private DistributionType distType; private Subject overlord;
- @BeforeMethod - public void setupBeforeMethod() throws Exception { + @Override + protected void beforeMethod() throws Exception { TransactionManager tx = getTransactionManager(); tx.begin();
@@ -38,8 +35,8 @@ public class DistributionManagerBeanTest extends AbstractEJB3Test { overlord = LookupUtil.getSubjectManager().getOverlord(); }
- @AfterMethod - public void tearDownAfterMethod() throws Exception { + @Override + protected void afterMethod() throws Exception { TransactionManager tx = getTransactionManager(); if (tx != null) { tx.rollback(); @@ -73,7 +70,6 @@ public class DistributionManagerBeanTest extends AbstractEJB3Test { Distribution distro = distManager.getDistributionByLabel(kslabel);
DistributionFile distfile = new DistributionFile(distro, "vmlinux", "d41d8cd98f00b204e9800998ecf8427e"); - EntityManager em = getEntityManager(); em.persist(distfile); Query query = em.createNamedQuery(DistributionFile.SELECT_BY_DIST_ID);
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java index 4a6a241..90b5cdc 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java @@ -30,15 +30,10 @@ import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;
-import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.Query; import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test;
import org.rhq.core.clientapi.descriptor.AgentPluginDescriptorUtil; @@ -53,7 +48,8 @@ import org.rhq.enterprise.server.util.LookupUtil;
//make sure we run this after the plugins.metadata tests are done so that //the db contents don't interfere -@Test(dependsOnGroups = "plugin.metadata") +@Test +//(dependsOnGroups = "plugin.metadata") public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test {
private static final String PLUGIN_NAME = "DeployTest"; // as defined in our test descriptors @@ -110,7 +106,14 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test { // | 1.0-feb-2 | | | | one of the files gets deleted // --------------------------------------------------------------------------
- @BeforeClass + // README + // Arquillian (1.0.2) does not honor Testng's lifecycle, Before/AfterClass are invoked on + // every test. Since beforeClass sets instance variables, we need to now call it for + // every test, so we call it from beforeMethod(). We use a stand-in test to simulate AfterClass, + // using priorities to make it run last. Testng (I believe) applies priority after dependencies, so it + // is important that afterClassStandIn() have a dependency such that it runs in the last test-set. + + //@BeforeClass public void beforeClass() throws Exception { Calendar cal = Calendar.getInstance(); cal.set(2009, Calendar.FEBRUARY, 1, 1, 0, 0); @@ -161,8 +164,9 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test { return; }
- @AfterClass(alwaysRun = true) - public void afterClass() throws Exception { + //@AfterClass(alwaysRun = true) + @Test(priority = 10, alwaysRun = true) + public void afterClassStandIn() throws Exception { for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) { File doomed = entry.getValue(); doomed.delete(); @@ -177,8 +181,10 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test { return; }
- @BeforeMethod - public void beforeMethod() throws Exception { + @Override + protected void beforeMethod() throws Exception { + beforeClass(); + afterMethod(); // we clean up before and after, just to be sure we're clean
File deployDir = new File(DEPLOY_LOCATION); @@ -207,15 +213,14 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test {
}
- @AfterMethod(alwaysRun = true) + @Override @SuppressWarnings("unchecked") - public void afterMethod() throws Exception { + protected void afterMethod() throws Exception {
emptyDirectory(new File(DEPLOY_LOCATION));
TransactionManager tm = getTransactionManager(); tm.begin(); - EntityManager em = getEntityManager(); try { Query q = em.createNamedQuery(Plugin.QUERY_FIND_BY_NAME); q.setParameter("name", PLUGIN_NAME); @@ -226,7 +231,6 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test { } catch (NoResultException ignore) { } finally { tm.commit(); - em.close(); }
return; @@ -473,14 +477,12 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test {
TransactionManager tm = getTransactionManager(); tm.begin(); - EntityManager em = getEntityManager(); try { Query q = em.createNamedQuery(Plugin.QUERY_FIND_BY_NAME); q.setParameter("name", PLUGIN_NAME); dbPlugin = (Plugin) q.getSingleResult(); } finally { tm.rollback(); - em.close(); }
assertSamePlugin(plugin, dbPlugin); @@ -547,7 +549,6 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test {
TransactionManager tm = getTransactionManager(); tm.begin(); - EntityManager em = getEntityManager(); try { em.persist(pluginPojo); } catch (Exception e) { @@ -555,7 +556,6 @@ public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test { throw e; } finally { tm.commit(); - em.close(); }
return plugin; // do not return the persisted pojo, let GC collect the larger pojo with the file content diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbSetupTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbSetupTest.java index c21bb72..557f03c 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbSetupTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbSetupTest.java @@ -20,6 +20,8 @@ package org.rhq.enterprise.server.db;
import java.util.Set;
+import org.testng.annotations.Test; + import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.authz.Permission; import org.rhq.core.domain.authz.Role; @@ -28,8 +30,6 @@ import org.rhq.enterprise.server.authz.RoleManagerLocal; import org.rhq.enterprise.server.test.AbstractEJB3Test; import org.rhq.enterprise.server.util.DbSetupUtility; import org.rhq.enterprise.server.util.LookupUtil; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test;
/** * Test that dbsetup initializes the data in the RHQ schema as intended (e.g. test that the Superuser and All Resources @@ -40,8 +40,8 @@ import org.testng.annotations.Test; @Test(groups = "db", singleThreaded = true) public class DbSetupTest extends AbstractEJB3Test {
- @BeforeClass(groups = "db") - public void setUp() throws Exception { + @Override + protected void beforeMethod() throws Exception { // Recreate a fresh JON DB with the latest schema. DbSetupUtility.dbreset(); DbSetupUtility.dbsetup(); diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbUpgradeTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbUpgradeTest.java index 8883419..a1bfc48 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbUpgradeTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/db/DbUpgradeTest.java @@ -21,6 +21,8 @@ package org.rhq.enterprise.server.db; import java.util.Set; import java.util.UUID;
+import org.testng.annotations.Test; + import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.authz.Permission; import org.rhq.core.domain.authz.Role; @@ -29,9 +31,6 @@ import org.rhq.enterprise.server.authz.RoleManagerLocal; import org.rhq.enterprise.server.test.AbstractEJB3Test; import org.rhq.enterprise.server.util.DbSetupUtility; import org.rhq.enterprise.server.util.LookupUtil; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test;
/** * Test that various dbupgrade schema versions update the data model as intended. @@ -41,16 +40,16 @@ import org.testng.annotations.Test; @Test(groups = "db", singleThreaded = true) public class DbUpgradeTest extends AbstractEJB3Test {
- @BeforeClass(groups = "db") - public void setUp() throws Exception { + @Override + protected void beforeMethod() throws Exception { // Recreate a fresh JON DB with the JON 2.3.1 schema, then upgrade it to the JON 3.0.0 schema. DbSetupUtility.dbreset(); DbSetupUtility.dbsetup("2.3.1"); DbSetupUtility.dbupgrade(DbSetupUtility.JON300_SCHEMA_VERSION); }
- @AfterClass(groups = "db") - public void tearDown() throws Exception { + @Override + protected void afterMethod() throws Exception { // Upgrade to the latest schema version so the DB is left in a state usable by other tests. DbSetupUtility.dbupgrade("LATEST"); } diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java index d4d9cbf..e12dbb0 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java @@ -33,8 +33,6 @@ import java.util.UUID;
import javax.ejb.EJBException; import javax.management.MBeanServer; -import javax.management.MBeanServerFactory; -import javax.persistence.EntityManager; import javax.persistence.Query;
import org.dbunit.database.DatabaseConfig; @@ -51,14 +49,9 @@ import org.dbunit.operation.DatabaseOperation; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.xml.sax.InputSource;
-import org.jboss.mx.util.MBeanServerLocator; - import org.rhq.core.clientapi.agent.discovery.DiscoveryAgentService; import org.rhq.core.clientapi.server.discovery.InventoryReport; import org.rhq.core.domain.configuration.Configuration; @@ -68,8 +61,6 @@ import org.rhq.core.domain.resource.Agent; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.ResourceType; import org.rhq.enterprise.server.auth.SubjectManagerLocal; -import org.rhq.enterprise.server.core.comm.ServerCommunicationsService; -import org.rhq.enterprise.server.core.comm.ServerCommunicationsServiceMBean; import org.rhq.enterprise.server.resource.ResourceManagerLocal; import org.rhq.enterprise.server.test.AbstractEJB3Test; import org.rhq.enterprise.server.test.TestServerCommunicationsService; @@ -101,19 +92,11 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
private TestServerCommunicationsService agentServiceContainer;
- @BeforeClass - public void beforeClass() throws Exception { + @Override + protected void beforeMethod() throws Exception { discoveryBoss = LookupUtil.getDiscoveryBoss(); subjectManager = LookupUtil.getSubjectManager(); resourceManager = LookupUtil.getResourceManager(); - } - - @BeforeMethod - public void setupTestData() throws Exception { - dummyJBossMBeanServer = MBeanServerFactory.createMBeanServer("jboss"); - MBeanServerLocator.setJBoss(dummyJBossMBeanServer); - dummyJBossMBeanServer.registerMBean(new ServerCommunicationsService(), - ServerCommunicationsServiceMBean.OBJECT_NAME);
initDB();
@@ -140,16 +123,15 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test { Resource parentResource = resourceManager.getResource(subjectManager.getOverlord(), parentResourceId); resource.setParentResource(parentResource); Integer ownerSubjectId = (Integer) invocation.getArguments()[3]; - return discoveryBoss.addResource(resource, ownerSubjectId); + MergeResourceResponse response = discoveryBoss.addResource(resource, ownerSubjectId); + return response; } }); }
- @AfterMethod(alwaysRun = true) + @Override public void afterMethod() throws Exception { try { - MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer); - cleanDB(); } finally { unprepareForTestAgents(); @@ -283,11 +265,9 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
public void cleanDB() throws Exception { Connection connection = null; - EntityManager em = null;
try { getTransactionManager().begin(); - em = getEntityManager();
Query q; List<?> doomed; @@ -299,18 +279,12 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test { } em.flush(); getTransactionManager().commit(); - em.close(); - em = null; } catch (Exception e) { try { System.out.println("CANNOT CLEAN UP TEST: Cause: " + e); getTransactionManager().rollback(); } catch (Exception ignore) { } - } finally { - if (null != em) { - em.close(); - } }
try { diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java index 6b4b356..8389f17 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java @@ -19,7 +19,6 @@ package org.rhq.enterprise.server.drift;
import static org.apache.commons.io.FileUtils.deleteDirectory; -import static org.apache.commons.io.FileUtils.toFile; import static org.rhq.common.drift.FileEntry.addedFileEntry; import static org.rhq.common.drift.FileEntry.changedFileEntry; import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE; @@ -29,14 +28,7 @@ import java.io.File; import java.util.Iterator; import java.util.List; import java.util.Random; -import java.util.Set;
-import javax.persistence.EntityManager; - -import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test;
import org.rhq.common.drift.ChangeSetWriter; @@ -46,8 +38,8 @@ import org.rhq.core.clientapi.server.drift.DriftServerService; import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.common.EntityContext; import org.rhq.core.domain.configuration.Configuration; +import org.rhq.core.domain.criteria.DriftDefinitionCriteria; import org.rhq.core.domain.criteria.JPADriftChangeSetCriteria; -import org.rhq.core.domain.criteria.ResourceCriteria; import org.rhq.core.domain.drift.Drift; import org.rhq.core.domain.drift.DriftCategory; import org.rhq.core.domain.drift.DriftChangeSet; @@ -88,26 +80,15 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
MessageDigestGenerator digestGenerator;
- /** - * Prepares things for the entire test class. - */ - @BeforeClass - public void beforeClass() throws Exception { + @Override + protected void beforeMethod() throws Exception { digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256); jpaDriftServer = LookupUtil.getJPADriftServer(); driftManager = LookupUtil.getDriftManager(); overlord = LookupUtil.getSubjectManager().getOverlord();
driftServerService = new DriftServerServiceImpl(); - } - - @AfterClass(alwaysRun = true) - public void afterClass() { - driftServerService = null; - }
- @BeforeMethod - public void beforeMethod() throws Exception { TestServerCommunicationsService agentServiceContainer = prepareForTestAgents(); agentServiceContainer.driftService = new TestDefService();
@@ -118,8 +99,8 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { newResource = createNewResource(); }
- @AfterMethod(alwaysRun = true) - public void afterMethod() throws Exception { + @Override + protected void afterMethod() throws Exception { try { deleteNewResource(newResource); } finally { @@ -130,7 +111,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
@Test public void testStoreChangeSet() throws Exception { - File rootDir = toFile(getClass().getResource(".")); + File rootDir = new File(System.getProperty("java.io.tmpdir")); File changeSetsDir = new File(rootDir, "changesets"); deleteDirectory(changeSetsDir); changeSetsDir.mkdirs(); @@ -217,13 +198,10 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
driftManager.updateDriftDefinition(overlord, EntityContext.forResource(newResource.getId()), driftDefPojo);
- ResourceManagerLocal resourceManager = LookupUtil.getResourceManager(); - ResourceCriteria c = new ResourceCriteria(); - c.addFilterId(newResource.getId()); - c.fetchDriftDefinitions(true); - List<Resource> resources = resourceManager.findResourcesByCriteria(overlord, c); - assertEquals(1, resources.size()); - Set<DriftDefinition> driftDefs = resources.get(0).getDriftDefinitions(); + DriftDefinitionCriteria c = new DriftDefinitionCriteria(); + c.addFilterResourceIds(newResource.getId()); + c.fetchConfiguration(true); + List<DriftDefinition> driftDefs = driftManager.findDriftDefinitionsByCriteria(overlord, c); assertNotNull(driftDefs); assertEquals(3, driftDefs.size()); DriftDefinition driftDef = null; @@ -240,9 +218,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { driftDefPojo.setInterval(120L); driftManager.updateDriftDefinition(overlord, EntityContext.forResource(newResource.getId()), driftDefPojo);
- resources = resourceManager.findResourcesByCriteria(overlord, c); - assertEquals(1, resources.size()); - driftDefs = resources.get(0).getDriftDefinitions(); + driftDefs = driftManager.findDriftDefinitionsByCriteria(overlord, c); assertNotNull(driftDefs); assertEquals(3, driftDefs.size()); driftDef = null; @@ -263,9 +239,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
driftManager.updateDriftDefinition(overlord, EntityContext.forResource(newResource.getId()), driftDefPojo);
- resources = resourceManager.findResourcesByCriteria(overlord, c); - assertEquals(1, resources.size()); - driftDefs = resources.get(0).getDriftDefinitions(); + driftDefs = driftManager.findDriftDefinitionsByCriteria(overlord, c); assertNotNull(driftDefs); assertEquals(4, driftDefs.size()); for (Iterator<DriftDefinition> i = driftDefs.iterator(); i.hasNext();) { @@ -285,9 +259,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { }
driftManager.deleteDriftDefinition(overlord, EntityContext.forResource(newResource.getId()), "testDriftDef"); - resources = resourceManager.findResourcesByCriteria(overlord, c); - assertEquals(1, resources.size()); - driftDefs = resources.get(0).getDriftDefinitions(); + driftDefs = driftManager.findDriftDefinitionsByCriteria(overlord, c); assertNotNull(driftDefs); assertEquals(3, driftDefs.size()); for (Iterator<DriftDefinition> i = driftDefs.iterator(); i.hasNext();) { @@ -303,7 +275,6 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
private void deleteDriftFiles() throws Exception { getTransactionManager().begin(); - EntityManager em = getEntityManager();
try { try { @@ -321,14 +292,11 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { em.flush(); getTransactionManager().commit(); } finally { - em.close(); } }
private Resource createNewResource() throws Exception { getTransactionManager().begin(); - EntityManager em = getEntityManager(); - Resource resource;
try { @@ -371,7 +339,6 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { em.flush(); getTransactionManager().commit(); } finally { - em.close(); }
return resource; @@ -379,7 +346,6 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
private void deleteNewResource(Resource resource) throws Exception { if (null != resource) { - EntityManager em = null;
try { ResourceManagerLocal resourceManager = LookupUtil.getResourceManager(); @@ -393,7 +359,6 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
// now dispose of other hibernate entities getTransactionManager().begin(); - em = getEntityManager();
ResourceType type = em.find(ResourceType.class, resource.getResourceType().getId()); Agent agent = em.find(Agent.class, resource.getAgent().getId()); @@ -407,14 +372,12 @@ public class DriftManagerBeanTest extends AbstractEJB3Test { getTransactionManager().commit(); } catch (Exception e) { try { - System.out.println("CANNOT CLEAN UP TEST (" + this.getClass().getSimpleName() + ") Cause: " + e); + System.out.println("CANNOT CLEAN UP TEST (" + this.getClass().getSimpleName() + ")"); + e.printStackTrace(); getTransactionManager().rollback(); } catch (Exception ignore) { } } finally { - if (null != em) { - em.close(); - } } } } diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java index edd9867..628df29 100644 --- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java +++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java @@ -18,6 +18,7 @@ import java.util.Properties; import java.util.regex.Pattern;
import javax.management.MBeanServer; +import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.naming.Context; import javax.naming.InitialContext; @@ -128,6 +129,7 @@ public abstract class AbstractEJB3Test extends Arquillian { testClassesJar.addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml")); // add CDI injection (needed by arquillian injection); testClassesJar.addAsResource("test-scheduler.properties"); testClassesJar.addAsResource("test-alert-sender-serverplugin.xml"); + testClassesJar.addAsResource("org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.xml");
// create test ear by starting with rhq.ear and thinning it MavenDependencyResolver earResolver = DependencyResolvers.use(MavenDependencyResolver.class); @@ -551,7 +553,23 @@ public abstract class AbstractEJB3Test extends Arquillian { public void prepareCustomServerService(Object testServiceMBean, String objectNameStr) { try { ObjectName objectName = new ObjectName(objectNameStr); + prepareCustomServerService(testServiceMBean, objectName); + } catch (MalformedObjectNameException e) { + throw new RuntimeException(e); + } + }
+ /** + * If you need to test server plugins, you must first prepare the server plugin service. + * After this returns, the caller must explicitly start the PC by using the appropriate API + * on the given mbean; this method will only start the service, it will NOT start the master PC. + * + * @param testServiceMBean the object that will house your test server plugins + * + * @throws RuntimeException + */ + public void prepareCustomServerService(Object testServiceMBean, ObjectName objectName) { + try { // first, unregister the real service... MBeanServer mbs = getPlatformMBeanServer(); if (mbs.isRegistered(objectName)) { @@ -567,7 +585,11 @@ public abstract class AbstractEJB3Test extends Arquillian { }
public void unprepareCustomServerService(String objectNameStr) throws Exception { - ObjectName objectName = new ObjectName(objectNameStr); + ObjectName objectName = new ObjectName(objectNameStr); + unprepareCustomServerService(objectName); + } + + public void unprepareCustomServerService(ObjectName objectName) throws Exception { MBeanServer mbs = getPlatformMBeanServer(); if (mbs.isRegistered(objectName)) { mbs.unregisterMBean(objectName); @@ -602,24 +624,16 @@ public abstract class AbstractEJB3Test extends Arquillian { }
public void unprepareServerPluginService() throws Exception { - unprepareServerPluginService(false); - } - - public void unprepareServerPluginService(boolean beanOnly) throws Exception { if (serverPluginService != null) { serverPluginService.stopMasterPluginContainer(); serverPluginService.stop(); - MBeanServer mbs = getPlatformMBeanServer(); - if (beanOnly) { - if (mbs.isRegistered(ServerPluginService.OBJECT_NAME)) { - mbs.unregisterMBean(ServerPluginService.OBJECT_NAME); - } - - } else { - //MBeanServerFactory.releaseMBeanServer(mbs); - } serverPluginService = null; } + + MBeanServer mbs = getPlatformMBeanServer(); + if (mbs.isRegistered(ServerPluginService.OBJECT_NAME)) { + mbs.unregisterMBean(ServerPluginService.OBJECT_NAME); + } }
public SchedulerService getSchedulerService() { @@ -655,22 +669,14 @@ public abstract class AbstractEJB3Test extends Arquillian { }
public void unprepareScheduler() throws Exception { - unprepareScheduler(false); - } - - public void unprepareScheduler(boolean beanOnly) throws Exception { if (schedulerService != null) { schedulerService.stop(); schedulerService = null; + }
- MBeanServer mbs = getPlatformMBeanServer(); - if (beanOnly) { - if (mbs.isRegistered(SchedulerService.SCHEDULER_MBEAN_NAME)) { - mbs.unregisterMBean(SchedulerService.SCHEDULER_MBEAN_NAME); - } - } else { - //MBeanServerFactory.releaseMBeanServer(mbs); - } + MBeanServer mbs = getPlatformMBeanServer(); + if (mbs.isRegistered(SchedulerService.SCHEDULER_MBEAN_NAME)) { + mbs.unregisterMBean(SchedulerService.SCHEDULER_MBEAN_NAME); } }
@@ -713,8 +719,8 @@ public abstract class AbstractEJB3Test extends Arquillian { }
// Now replace with the test service... - TestServerCommunicationsService agentService = new TestServerCommunicationsService(); - mbs.registerMBean(customAgentService, ServerCommunicationsServiceMBean.OBJECT_NAME); + agentService = (TestServerCommunicationsService) customAgentService; + mbs.registerMBean(agentService, ServerCommunicationsServiceMBean.OBJECT_NAME); return agentService;
} catch (Exception e) { @@ -728,23 +734,15 @@ public abstract class AbstractEJB3Test extends Arquillian { * {@link #prepareForTestAgents()}. */ public void unprepareForTestAgents() { - unprepareForTestAgents(false); - } - - public void unprepareForTestAgents(boolean beanOnly) { try { if (agentService != null) { agentService.stop(); agentService = null; + }
- MBeanServer mbs = getPlatformMBeanServer(); - if (beanOnly) { - if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) { - mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME); - } - } else { - //MBeanServerFactory.releaseMBeanServer(mbs); - } + MBeanServer mbs = getPlatformMBeanServer(); + if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) { + mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME); } } catch (Exception e) { throw new RuntimeException(e);
rhq-commits@lists.fedorahosted.org