modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
| 26 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
| 221 +++++-----
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
| 54 ++
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.java
| 83 ++-
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
| 27 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
| 43 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBeanTest.java
| 103 ++--
pom.xml
| 1
8 files changed, 331 insertions(+), 227 deletions(-)
New commits:
commit 68a688bc7bf11d2d6cfe22b08a1ffb1d282eb804
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jan 20 21:59:31 2012 -0500
More work to prevent server jar tests from stepping on each other, or
themselves.
- tests now pass with testng 6.1.1 (current version) and also 6.3.1,
latest version. Each version brought out different issues due to
different execution ordering and constraint checking.
- Avoid the use of DatabaseOperation.CLEAN_INSERT. This deletes all rows
in tables used by the data set. This does not play well with other modules.
Instead use DatabaseOperation.REFRESH and also clean up using
DatabaseOperation.DELETE. These options affect only the rows in the
data set. (see DeleteAlertsTest)
- Unless absolutely necessary, use Before|AfterMethod for database setup
and teardown. The perf hit is typically minimal but the risk of
test class conflict is high. (see DatabaseAndFilePluginDeloymentTest)
- Be more diligent to keep the database clean. For example, in addition to
DatabaseOperation.DELETE, there may be additional data created by the
tests. (see DiscoveryBossBeanTest)
- When possible, assertions should be narrowed to deal with only the data
relevant to the test or test class. Don't assume the database is
necessarily clean. This helps ensure that other test data does not cause
failures, or is not manipulated accidentally. Queries should try to be
qualified with the ids known to be relevant. (see InventoryManagerBeanTest)
- Prefer to use slsb calls to do cleanup, these calls are often better at
ensuring related data is also cleaned up. Hibernate cascading is often
not enough. And straight SQl requires even more diligence. Cleaning up
plugins is very important (see MetadataBeanTest).
- If a test does specific dbsetup make sure it also cleans it up, or move
it to Before|AfterMethod. (see PluginManagerBeanTest)
- Make sure your tests can executein any order, or add specific dependencies
to force ordering. (see ResourceMetadataManagerBean)
Other tips:
- Use unusua/varying ids for canned data. Always starting ids at id 1 is more likely
to cause conflicts.
- Always run your test class twice in a row. It should work more than once. If
it doesn't it probably changed state of the db or other shared resource.
- Start your tests with a clean db (dbsetup) and manually inspect the
db to see if any data was left behind (or better, write atool to do it).
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
index f0ae1b5..487a0ea 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
@@ -27,7 +27,7 @@ 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.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.xml.sax.InputSource;
@@ -60,7 +60,7 @@ public class DeleteAlertsTest extends AbstractEJB3Test {
try {
connection = getConnection();
IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
- DatabaseOperation.CLEAN_INSERT.execute(dbUnitConnection, getDataSet());
+ DatabaseOperation.REFRESH.execute(dbUnitConnection, getDataSet());
} finally {
if (connection != null) {
connection.close();
@@ -70,15 +70,15 @@ public class DeleteAlertsTest extends AbstractEJB3Test {
newResource = getEntityManager().find(Resource.class, 1);
}
- @AfterClass
- public void cleanupDB() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
if ("true".equals(System.getProperty("clean.db"))) {
Connection connection = null;
try {
connection = getConnection();
IDatabaseConnection dbUnitConnection = new
DatabaseConnection(connection);
- DatabaseOperation.DELETE_ALL.execute(dbUnitConnection, getDataSet());
+ DatabaseOperation.DELETE.execute(dbUnitConnection, getDataSet());
} finally {
if (connection != null) {
connection.close();
@@ -103,17 +103,17 @@ public class DeleteAlertsTest extends AbstractEJB3Test {
int resourceTypeId = 1;
int deletedCount = alertManager.deleteAlertsByContext(superuser,
EntityContext.forTemplate(resourceTypeId));
- List<AlertConditionLog> alertConditionLogs =
getEntityManager().createQuery(
- "from AlertConditionLog log where log.id =
:id").setParameter("id", 2).getResultList();
+ List<AlertConditionLog> alertConditionLogs = getEntityManager()
+ .createQuery("from AlertConditionLog log where log.id =
:id").setParameter("id", 2).getResultList();
- List<AlertNotificationLog> notificationLogs =
getEntityManager().createQuery(
- "from AlertNotificationLog log where log.id =
:id").setParameter("id", 2).getResultList();
+ List<AlertNotificationLog> notificationLogs = getEntityManager()
+ .createQuery("from AlertNotificationLog log where log.id =
:id").setParameter("id", 2).getResultList();
assertEquals("Failed to delete alerts by template", 1, deletedCount);
- assertEquals("Failed to delete alert condition logs when deleting alerts by
template", 0, alertConditionLogs
- .size());
- assertEquals("Failed to delete alert notification logs when deleting alerts
by template", 0, notificationLogs
- .size());
+ assertEquals("Failed to delete alert condition logs when deleting alerts by
template", 0,
+ alertConditionLogs.size());
+ assertEquals("Failed to delete alert notification logs when deleting alerts
by template", 0,
+ notificationLogs.size());
}
public void testAlertDeleteInRange() {
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
index c539a44..c6180fc 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
@@ -110,6 +110,128 @@ public class DatabaseAndFilePluginDeploymentTest extends
AbstractEJB3Test {
// | 1.0-feb-2 | | | | one of the files gets deleted
// --------------------------------------------------------------------------
+ @BeforeClass
+ public void beforeClass() throws Exception {
+ Calendar cal = Calendar.getInstance();
+ cal.set(2009, Calendar.FEBRUARY, 1, 1, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ Date febDate = cal.getTime();
+ cal.set(2009, Calendar.JUNE, 1, 1, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ Date juneDate = cal.getTime();
+ testTimestamps.put(TESTPLUGIN_1_0_FEB, febDate);
+ testTimestamps.put(TESTPLUGIN_1_0_JUN, juneDate);
+ testTimestamps.put(TESTPLUGIN_1_1_FEB, febDate);
+ testTimestamps.put(TESTPLUGIN_1_1_JUN, juneDate);
+ testTimestamps.put(TESTPLUGIN_1_0_FEB2, febDate);
+
+ pluginMgr = LookupUtil.getPluginManager();
+ subjectManager = LookupUtil.getSubjectManager();
+
+ File deployDir = new File(DEPLOY_LOCATION);
+ deployDir.mkdirs();
+ assert deployDir.isDirectory();
+
+ File jarsDir = new File(JARS_LOCATION);
+ jarsDir.mkdirs();
+ assert jarsDir.isDirectory();
+
+ testPluginFiles.put(TESTPLUGIN_1_0_FEB, new File(jarsDir, TESTPLUGIN_1_0_FEB +
".jar"));
+ testPluginFiles.put(TESTPLUGIN_1_0_JUN, new File(jarsDir, TESTPLUGIN_1_0_JUN +
".jar"));
+ testPluginFiles.put(TESTPLUGIN_1_1_FEB, new File(jarsDir, TESTPLUGIN_1_1_FEB +
".jar"));
+ testPluginFiles.put(TESTPLUGIN_1_1_JUN, new File(jarsDir, TESTPLUGIN_1_1_JUN +
".jar"));
+ testPluginFiles.put(TESTPLUGIN_1_0_FEB2, new File(jarsDir, TESTPLUGIN_1_0_FEB2 +
".jar"));
+
+ for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) {
+ File descriptorFile = new File(DESCRIPTORS_LOCATION, entry.getKey() +
".xml");
+ File file = entry.getValue();
+ buildPluginJar(descriptorFile, file);
+ assert file.exists();
+
+ PluginDescriptor descriptor =
AgentPluginDescriptorUtil.loadPluginDescriptorFromUrl(file.toURI().toURL());
+ testPluginDescriptors.put(entry.getKey(), descriptor);
+
+ Plugin pluginPojo = new Plugin(PLUGIN_NAME, file.getName());
+ pluginPojo.setVersion(descriptor.getVersion());
+ pluginPojo.setMd5(MessageDigestGenerator.getDigestString(file));
+ pluginPojo.setMtime(testTimestamps.get(entry.getKey()).getTime());
+ testPlugins.put(entry.getKey(), pluginPojo);
+ }
+
+ return;
+ }
+
+ @AfterClass(alwaysRun = true)
+ public void afterClass() throws Exception {
+ for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) {
+ File doomed = entry.getValue();
+ doomed.delete();
+ }
+ File jarsDir = new File(JARS_LOCATION);
+ jarsDir.delete();
+
+ File deployDir = new File(DEPLOY_LOCATION);
+ emptyDirectory(deployDir);
+ deployDir.delete();
+
+ return;
+ }
+
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
+ afterMethod(); // we clean up before and after, just to be sure we're clean
+
+ File deployDir = new File(DEPLOY_LOCATION);
+ deployDir.mkdirs();
+ assert deployDir.isDirectory();
+
+ File jarsDir = new File(JARS_LOCATION);
+ jarsDir.mkdirs();
+ assert jarsDir.isDirectory();
+
+ for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) {
+ File descriptorFile = new File(DESCRIPTORS_LOCATION, entry.getKey() +
".xml");
+ File file = entry.getValue();
+ buildPluginJar(descriptorFile, file);
+ assert file.exists();
+
+ PluginDescriptor descriptor =
AgentPluginDescriptorUtil.loadPluginDescriptorFromUrl(file.toURI().toURL());
+ testPluginDescriptors.put(entry.getKey(), descriptor);
+
+ Plugin pluginPojo = new Plugin(PLUGIN_NAME, file.getName());
+ pluginPojo.setVersion(descriptor.getVersion());
+ pluginPojo.setMd5(MessageDigestGenerator.getDigestString(file));
+ pluginPojo.setMtime(testTimestamps.get(entry.getKey()).getTime());
+ testPlugins.put(entry.getKey(), pluginPojo);
+ }
+
+ }
+
+ @AfterMethod(alwaysRun = true)
+ @SuppressWarnings("unchecked")
+ public 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);
+ List<Plugin> doomedPlugins = q.getResultList();
+ for (Plugin doomedPlugin : doomedPlugins) {
+ em.remove(em.find(Plugin.class, doomedPlugin.getId()));
+ }
+ } catch (NoResultException ignore) {
+ } finally {
+ tm.commit();
+ em.close();
+ }
+
+ return;
+ }
+
public void test0() throws Exception {
Plugin plugin10feb = deployPluginJarToFilesystem(TESTPLUGIN_1_0_FEB);
deployPluginJarToDatabase(TESTPLUGIN_1_0_FEB);
@@ -327,102 +449,6 @@ public class DatabaseAndFilePluginDeploymentTest extends
AbstractEJB3Test {
return;
}
- @BeforeClass
- public void beforeClass() throws Exception {
- Calendar cal = Calendar.getInstance();
- cal.set(2009, Calendar.FEBRUARY, 1, 1, 0, 0);
- cal.set(Calendar.MILLISECOND, 0);
- Date febDate = cal.getTime();
- cal.set(2009, Calendar.JUNE, 1, 1, 0, 0);
- cal.set(Calendar.MILLISECOND, 0);
- Date juneDate = cal.getTime();
- testTimestamps.put(TESTPLUGIN_1_0_FEB, febDate);
- testTimestamps.put(TESTPLUGIN_1_0_JUN, juneDate);
- testTimestamps.put(TESTPLUGIN_1_1_FEB, febDate);
- testTimestamps.put(TESTPLUGIN_1_1_JUN, juneDate);
- testTimestamps.put(TESTPLUGIN_1_0_FEB2, febDate);
-
- pluginMgr = LookupUtil.getPluginManager();
- subjectManager = LookupUtil.getSubjectManager();
-
- File deployDir = new File(DEPLOY_LOCATION);
- deployDir.mkdirs();
- assert deployDir.isDirectory();
-
- File jarsDir = new File(JARS_LOCATION);
- jarsDir.mkdirs();
- assert jarsDir.isDirectory();
-
- testPluginFiles.put(TESTPLUGIN_1_0_FEB, new File(jarsDir, TESTPLUGIN_1_0_FEB +
".jar"));
- testPluginFiles.put(TESTPLUGIN_1_0_JUN, new File(jarsDir, TESTPLUGIN_1_0_JUN +
".jar"));
- testPluginFiles.put(TESTPLUGIN_1_1_FEB, new File(jarsDir, TESTPLUGIN_1_1_FEB +
".jar"));
- testPluginFiles.put(TESTPLUGIN_1_1_JUN, new File(jarsDir, TESTPLUGIN_1_1_JUN +
".jar"));
- testPluginFiles.put(TESTPLUGIN_1_0_FEB2, new File(jarsDir, TESTPLUGIN_1_0_FEB2 +
".jar"));
-
- for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) {
- File descriptorFile = new File(DESCRIPTORS_LOCATION, entry.getKey() +
".xml");
- File file = entry.getValue();
- buildPluginJar(descriptorFile, file);
- assert file.exists();
-
- PluginDescriptor descriptor =
AgentPluginDescriptorUtil.loadPluginDescriptorFromUrl(file.toURI().toURL());
- testPluginDescriptors.put(entry.getKey(), descriptor);
-
- Plugin pluginPojo = new Plugin(PLUGIN_NAME, file.getName());
- pluginPojo.setVersion(descriptor.getVersion());
- pluginPojo.setMd5(MessageDigestGenerator.getDigestString(file));
- pluginPojo.setMtime(testTimestamps.get(entry.getKey()).getTime());
- testPlugins.put(entry.getKey(), pluginPojo);
- }
-
- return;
- }
-
- @AfterClass
- public void afterClass() throws Exception {
- for (Map.Entry<String, File> entry : testPluginFiles.entrySet()) {
- File doomed = entry.getValue();
- doomed.delete();
- }
- File jarsDir = new File(JARS_LOCATION);
- jarsDir.delete();
-
- File deployDir = new File(DEPLOY_LOCATION);
- emptyDirectory(deployDir);
- deployDir.delete();
-
- return;
- }
-
- @BeforeMethod
- public void beforeMethod() throws Exception {
- afterMethod(); // we clean up before and after, just to be sure we're clean
- }
-
- @AfterMethod
- @SuppressWarnings("unchecked")
- public 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);
- List<Plugin> doomedPlugins = q.getResultList();
- for (Plugin doomedPlugin : doomedPlugins) {
- em.remove(em.find(Plugin.class, doomedPlugin.getId()));
- }
- } catch (NoResultException ignore) {
- } finally {
- tm.commit();
- em.close();
- }
-
- return;
- }
-
private void assertSamePlugin(Plugin p1, Plugin p2) throws Exception {
assert p1.getName().equals(p2.getName()) : "NAME: " + p1 +
"!=" + p2;
assert p1.getMd5().equals(p2.getMd5()) : "MD5: " + p1 + "!="
+ p2;
@@ -568,6 +594,9 @@ public class DatabaseAndFilePluginDeploymentTest extends
AbstractEJB3Test {
}
private void emptyDirectory(File dirToEmpty) {
+ if (!dirToEmpty.isDirectory()) {
+ return;
+ }
File[] doomedFiles = dirToEmpty.listFiles();
for (File doomedFile : doomedFiles) {
doomedFile.delete();
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
index 630b778..6bda968 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
@@ -23,10 +23,13 @@ import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
+import java.util.List;
import java.util.Random;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
@@ -54,11 +57,13 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
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.util.LookupUtil;
public class DiscoveryBossBeanTest extends AbstractEJB3Test {
private DiscoveryBossLocal discoveryBoss;
+ private ResourceManagerLocal resourceManager;
private MBeanServer dummyJBossMBeanServer;
private ResourceType platformType;
@@ -84,6 +89,7 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
ServerCommunicationsServiceMBean.OBJECT_NAME);
initDB();
+
platformType = getEntityManager().find(ResourceType.class, 1);
serverType = getEntityManager().find(ResourceType.class, 2);
serviceType1 = getEntityManager().find(ResourceType.class, 3);
@@ -94,6 +100,8 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
@AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
+
+ cleanDB();
}
@Test(groups = "integration.ejb3")
@@ -180,7 +188,51 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
connection = getConnection();
IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
setDbType(dbUnitConnection);
- DatabaseOperation.CLEAN_INSERT.execute(dbUnitConnection, getDataSet());
+ DatabaseOperation.REFRESH.execute(dbUnitConnection, getDataSet());
+ } finally {
+ if (connection != null) {
+ connection.close();
+ }
+ }
+ }
+
+ public void cleanDB() throws Exception {
+ Connection connection = null;
+ EntityManager em = null;
+
+ try {
+ getTransactionManager().begin();
+ em = getEntityManager();
+
+ Query q;
+ List<?> doomed;
+ q = em.createQuery("SELECT r FROM Resource r WHERE r.resourceType.id
<= 4 ORDER BY r.id DESC");
+ doomed = q.getResultList();
+ for (Object removeMe : doomed) {
+ em.remove(em.getReference(Resource.class, ((Resource)
removeMe).getId()));
+ }
+ 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 {
+ connection = getConnection();
+
+ IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
+ setDbType(dbUnitConnection);
+ DatabaseOperation.DELETE.execute(dbUnitConnection, getDataSet());
} finally {
if (connection != null) {
connection.close();
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.java
index 6aa8c4d..dcf83fe 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/inventory/InventoryManagerBeanTest.java
@@ -17,7 +17,8 @@ import org.dbunit.ext.oracle.Oracle10DataTypeFactory;
import org.dbunit.ext.oracle.OracleDataTypeFactory;
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
import org.dbunit.operation.DatabaseOperation;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.xml.sax.InputSource;
@@ -29,48 +30,49 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class InventoryManagerBeanTest extends AbstractEJB3Test {
- @BeforeClass
- public void deleteResourceTypes() throws Exception {
+ private static List<Integer> deletedTypeIds = asList(1, 2, 3, 4, 5);
+
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
initDB();
getTransactionManager().begin();
- List<Integer> resourceTypeIds = asList(1, 2, 3, 4, 5);
-
+
InventoryManagerLocal inventoryMgr = LookupUtil.getInventoryManager();
- inventoryMgr.markTypesDeleted(resourceTypeIds);
+ inventoryMgr.markTypesDeleted(deletedTypeIds);
getTransactionManager().commit();
}
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
+ cleanDB();
+ }
+
@SuppressWarnings("unchecked")
@Test
public void markTypesAndTheirChildTypesForDeletion() {
- List<ResourceType> resourceTypes = getEntityManager().createQuery(
- "from ResourceType t where t.id in (:resourceTypeIds)")
- .setParameter("resourceTypeIds", asList(1, 2, 3, 4, 5))
- .getResultList();
+ List<ResourceType> resourceTypes = getEntityManager()
+ .createQuery("from ResourceType t where t.id in
(:resourceTypeIds)")
+ .setParameter("resourceTypeIds", deletedTypeIds).getResultList();
assertEquals("Failed to retrieve all resource types", 5,
resourceTypes.size());
List<Integer> typesNotDeleted = new ArrayList<Integer>();
for (ResourceType type : resourceTypes) {
- if (!type.isDeleted()) {
- typesNotDeleted.add(type.getId());
- }
+ if (!type.isDeleted()) {
+ typesNotDeleted.add(type.getId());
+ }
}
- assertEquals(
- "Failed to mark for deletion resource types with the following ids:
" + typesNotDeleted + ".",
- 0,
- typesNotDeleted.size()
- );
+ assertEquals("Failed to mark for deletion resource types with the following
ids: " + typesNotDeleted + ".", 0,
+ typesNotDeleted.size());
}
@SuppressWarnings("unchecked")
@Test
public void uninventoryResourcesOfTypesMarkedForDeletion() {
List<Resource> resources = getEntityManager().createQuery("from
Resource r where r.id in (:resourceIds)")
- .setParameter("resourceIds", asList(1, 2))
- .getResultList();
+ .setParameter("resourceIds", asList(1, 2)).getResultList();
assertEquals("Failed to retrieve all resources", 2, resources.size());
@@ -82,11 +84,8 @@ public class InventoryManagerBeanTest extends AbstractEJB3Test {
}
assertEquals(
- "Resources of types marked for deletion should be uninventoried.
Resources with the following ids " +
- "should have been uninventoried: " +
resourcesNotDeleted + ".",
- 0,
- resourcesNotDeleted.size()
- );
+ "Resources of types marked for deletion should be uninventoried.
Resources with the following ids "
+ + "should have been uninventoried: " + resourcesNotDeleted +
".", 0, resourcesNotDeleted.size());
}
@Test
@@ -94,7 +93,16 @@ public class InventoryManagerBeanTest extends AbstractEJB3Test {
InventoryManagerLocal inventoryMgr = LookupUtil.getInventoryManager();
List<ResourceType> deletedTypes = inventoryMgr.getDeletedTypes();
- assertEquals("Expected to get back five deleted resource types", 5,
deletedTypes.size());
+ // protect against other db detritus, just look for the ones we expect
+ int resultSize = deletedTypes.size();
+ assertTrue("Expected at least five deleted types", resultSize >=
5);
+ List<Integer> resultIds = new ArrayList(resultSize);
+ for (ResourceType rt : deletedTypes) {
+ resultIds.add(rt.getId());
+ }
+ for (Integer id : deletedTypeIds) {
+ assert (resultIds.contains(id));
+ }
}
@Test
@@ -111,7 +119,7 @@ public class InventoryManagerBeanTest extends AbstractEJB3Test {
ResourceType resourceType = getEntityManager().find(ResourceType.class, 6);
assertFalse(resourceType + " is not ready for removal because it is not
deleted.",
- inventoryMgr.isReadyForPermanentRemoval(resourceType));
+ inventoryMgr.isReadyForPermanentRemoval(resourceType));
}
public void initDB() throws Exception {
@@ -121,7 +129,22 @@ public class InventoryManagerBeanTest extends AbstractEJB3Test {
connection = getConnection();
IDatabaseConnection conn = new DatabaseConnection(connection);
setDbType(conn);
- DatabaseOperation.CLEAN_INSERT.execute(conn, getDataSet());
+ DatabaseOperation.REFRESH.execute(conn, getDataSet());
+ } finally {
+ if (connection != null) {
+ connection.close();
+ }
+ }
+ }
+
+ public void cleanDB() throws Exception {
+ Connection connection = null;
+
+ try {
+ connection = getConnection();
+ IDatabaseConnection conn = new DatabaseConnection(connection);
+ setDbType(conn);
+ DatabaseOperation.DELETE.execute(conn, getDataSet());
} finally {
if (connection != null) {
connection.close();
@@ -146,13 +169,13 @@ public class InventoryManagerBeanTest extends AbstractEJB3Test {
}
if (type != null) {
-
dbConfig.setProperty("http://www.dbunit.org/properties/datatypeFacto...;
+
dbConfig.setProperty("http://www.dbunit.org/properties/datatypeFacto...;, type);
}
}
IDataSet getDataSet() throws Exception {
FlatXmlProducer xmlProducer = new FlatXmlProducer(new
InputSource(getClass().getResourceAsStream(
- getDataSetFile())));
+ getDataSetFile())));
xmlProducer.setColumnSensing(true);
return new FlatXmlDataSet(xmlProducer);
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
index fac9251..d4249eb 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
@@ -24,13 +24,14 @@ import org.dbunit.dataset.datatype.IDataTypeFactory;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.operation.DatabaseOperation;
-import org.testng.annotations.AfterGroups;
+import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.xml.sax.InputSource;
import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.plugin.Plugin;
import org.rhq.core.domain.resource.ResourceType;
@@ -38,12 +39,14 @@ import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.bundle.TestBundleServerPluginService;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
+import org.rhq.enterprise.server.scheduler.jobs.PurgePluginsJob;
+import org.rhq.enterprise.server.scheduler.jobs.PurgeResourceTypesJob;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
public class MetadataBeanTest extends AbstractEJB3Test {
- private static List<String> plugins = new ArrayList<String>();
+ private List<Integer> pluginIds = new ArrayList<Integer>();
@Override
protected boolean isDBResetNeeded() {
@@ -60,12 +63,14 @@ public class MetadataBeanTest extends AbstractEJB3Test {
* at what plugins are in the database, and then look for corresponding plugin files
on the file system. MetadataTest
* however removes the generated plugin files during each test run.
*/
- @AfterGroups(alwaysRun = true, groups = { "plugin.metadata" })
- void afterGroups() throws Exception {
- getTransactionManager().begin();
- getEntityManager().createQuery("delete from Plugin p where p.name in
(:plugins)")
- .setParameter("plugins", plugins).executeUpdate();
- getTransactionManager().commit();
+ @AfterClass(alwaysRun = true, groups = { "plugin.metadata" })
+ void afterClass() throws Exception {
+ PluginManagerLocal pluginMgr = LookupUtil.getPluginManager();
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ pluginMgr.deletePlugins(overlord, pluginIds);
+ pluginMgr.markPluginsForPurge(overlord, pluginIds);
+ new PurgePluginsJob().executeJobCode(null);
+ new PurgeResourceTypesJob().executeJobCode(null);
}
@BeforeMethod(groups = { "plugin.metadata" }, dependsOnGroups = {
"integration.ejb3" })
@@ -94,7 +99,9 @@ public class MetadataBeanTest extends AbstractEJB3Test {
connection = getConnection();
DatabaseConnection dbunitConnection = new DatabaseConnection(connection);
setDbType(dbunitConnection);
- DatabaseOperation.CLEAN_INSERT.execute(dbunitConnection, getDataSet());
+ // note - this info should already be in the db as part of dbsetup, but just
in case
+ // perform the refresh. Do not DELETE this data set as it may be assumed in
other tests.
+ DatabaseOperation.REFRESH.execute(dbunitConnection, getDataSet());
} finally {
if (connection != null) {
connection.close();
@@ -151,7 +158,7 @@ public class MetadataBeanTest extends AbstractEJB3Test {
pluginMgr.registerPlugin(subjectMgr.getOverlord(), plugin, pluginDescriptor,
null, true);
- plugins.add(plugin.getName());
+ pluginIds.add(plugin.getId());
}
private URL getDescriptorURL(String descriptor) {
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
index a12d7a8..4ccad7f 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
@@ -1,5 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
+import static java.util.Arrays.asList;
+
import java.util.List;
import javax.ejb.EJBException;
@@ -11,27 +13,23 @@ import org.rhq.core.domain.plugin.PluginStatusType;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
-import static java.util.Arrays.asList;
-
public class PluginManagerBeanTest extends MetadataBeanTest {
SubjectManagerLocal subjectMgr;
PluginManagerLocal pluginMgr;
- @Test(groups = {"plugin.metadata", "PluginManagerBean"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" })
public void registerPlugins() throws Exception {
subjectMgr = LookupUtil.getSubjectManager();
pluginMgr = LookupUtil.getPluginManager();
- setupDB();
-
createPlugin("test-plugin1", "1.0",
"plugin_1.xml");
createPlugin("test-plugin2", "1.0",
"plugin_2.xml");
createPlugin("test-plugin3", "1.0",
"plugin_3.xml");
}
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
dependsOnMethods = {"registerPlugins"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "registerPlugins" })
public void disablePlugin() throws Exception {
Plugin plugin = getPlugin("PluginManagerBeanTestPlugin3");
@@ -41,7 +39,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertFalse("Failed to disable plugin", plugin.isEnabled());
}
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
dependsOnMethods = {"registerPlugins"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "registerPlugins" })
public void doNotDisablePluginIfDependentPluginsAreNotAlsoDisabled() throws Exception
{
Plugin plugin = getPlugin("PluginManagerBeanTestPlugin1");
EJBException exception = null;
@@ -54,14 +52,11 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertNotNull("Expected exception to be thrown when trying to disable a
plugin that has dependent plugins",
exception);
- assertTrue(
- "Expected an IllegalArgumentException when trying to disable a plugin
with dependent plugins",
- exception.getCausedByException() instanceof IllegalArgumentException
- );
+ assertTrue("Expected an IllegalArgumentException when trying to disable a
plugin with dependent plugins",
+ exception.getCausedByException() instanceof IllegalArgumentException);
}
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
- dependsOnMethods =
{"doNotDisablePluginIfDependentPluginsAreNotAlsoDisabled"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "doNotDisablePluginIfDependentPluginsAreNotAlsoDisabled"
})
public void disablePluginAndDependentPlugins() throws Exception {
Plugin plugin1 = getPlugin("PluginManagerBeanTestPlugin1");
Plugin plugin2 = getPlugin("PluginManagerBeanTestPlugin2");
@@ -75,7 +70,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertFalse("Failed to disable plugin", plugin2.isEnabled());
}
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
dependsOnMethods = {"disablePluginAndDependentPlugins"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "disablePluginAndDependentPlugins" })
public void enablePlugins() throws Exception {
Plugin plugin1 = getPlugin("PluginManagerBeanTestPlugin1");
Plugin plugin2 = getPlugin("PluginManagerBeanTestPlugin2");
@@ -89,7 +84,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertTrue("Failed to enable plugin", plugin2.isEnabled());
}
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
dependsOnMethods = {"enablePlugins"})
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "enablePlugins" })
public void doNotDeletePluginIfDependentPluginIsNotAlsoDeleted() throws Exception {
Plugin plugin = getPlugin("PluginManagerBeanTestPlugin1");
EJBException exception = null;
@@ -102,14 +97,11 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertNotNull("Expected exception to be thrown when trying to delete a
plugin that has dependent plugins",
exception);
- assertTrue(
- "Expected an IllegalArgumentException when trying to delete a plugin
with dependent plugins",
- exception.getCausedByException() instanceof IllegalArgumentException
- );
- }
-
- @Test(groups = {"plugin.metadata", "PluginManagerBean"},
- dependsOnMethods =
{"doNotDeletePluginIfDependentPluginIsNotAlsoDeleted"})
+ assertTrue("Expected an IllegalArgumentException when trying to delete a
plugin with dependent plugins",
+ exception.getCausedByException() instanceof IllegalArgumentException);
+ }
+
+ @Test(groups = { "plugin.metadata", "PluginManagerBean" },
dependsOnMethods = { "doNotDeletePluginIfDependentPluginIsNotAlsoDeleted" })
public void deletePlugins() throws Exception {
Plugin plugin1 = getPlugin("PluginManagerBeanTestPlugin1");
Plugin plugin2 = getPlugin("PluginManagerBeanTestPlugin2");
@@ -123,7 +115,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
assertTrue("Expected plugin status to be set to DELETED",
plugin2.getStatus() == PluginStatusType.DELETED);
}
- @Test(enabled = false, groups = {"plugin.metadata",
"PluginManagerBean"}, dependsOnMethods = {"deletePlugins"})
+ @Test(enabled = false, groups = { "plugin.metadata",
"PluginManagerBean" }, dependsOnMethods = { "deletePlugins" })
public void purgePlugins() throws Exception {
Plugin plugin1 = getPlugin("PluginManagerBeanTestPlugin1",
"Deleting a plugin should not remove it from the database");
@@ -144,8 +136,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
Plugin getPlugin(String name, String msg) {
List<Plugin> plugins = getEntityManager().createQuery("from Plugin
where name = :name")
- .setParameter("name", name)
- .getResultList();
+ .setParameter("name", name).getResultList();
assertTrue("Failed to find plugin <$name>: $msg", plugins.size()
== 1);
return plugins.get(0);
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBeanTest.java
index 415eb99..7155c3d 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBeanTest.java
@@ -1,5 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
+import static java.util.Arrays.asList;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -22,7 +24,6 @@ import org.rhq.core.domain.bundle.ResourceTypeBundleConfiguration;
import
org.rhq.core.domain.bundle.ResourceTypeBundleConfiguration.BundleDestinationBaseDirectory;
import
org.rhq.core.domain.bundle.ResourceTypeBundleConfiguration.BundleDestinationBaseDirectory.Context;
import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.criteria.OperationDefinitionCriteria;
@@ -49,8 +50,6 @@ import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
-import static java.util.Arrays.asList;
-
public class ResourceMetadataManagerBeanTest extends MetadataBeanTest {
@Test(groups = { "plugin.metadata", "NewPlugin" })
@@ -118,7 +117,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
}
}
- @Test(groups = { "plugin.metadata", "NewPlugin" })
+ @Test(dependsOnMethods = { "registerPluginWithDuplicateDriftDefinitions" },
groups = { "plugin.metadata",
+ "NewPlugin" })
public void registerPlugin() throws Exception {
createPlugin("test-plugin.jar", "1.0",
"plugin_v1.xml");
}
@@ -146,8 +146,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
@Test(dependsOnMethods = { "persistNewTypes" }, groups = {
"plugin.metadata", "NewPlugin" })
public void persistEventDefinitions() throws Exception {
- assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"eventDefinitions", asList("logAEntry",
- "logBEntry"));
+ assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"eventDefinitions",
+ asList("logAEntry", "logBEntry"));
}
@Test(dependsOnMethods = { "persistNewTypes" }, groups = {
"plugin.metadata", "NewPlugin" })
@@ -246,8 +246,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
@Test(dependsOnMethods = { "persistNewTypes" }, groups = {
"plugin.metadata", "NewPlugin" })
public void persistPackageTypes() throws Exception {
- assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"packageTypes", asList("ServerA.Content.1",
- "ServerA.Content.2"));
+ assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"packageTypes",
+ asList("ServerA.Content.1", "ServerA.Content.2"));
}
@Test(groups = { "plugin.metadata", "UpgradePlugin" },
dependsOnGroups = { "NewPlugin" })
@@ -257,8 +257,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
@Test(dependsOnMethods = { "upgradePlugin" }, groups = {
"plugin.metadata", "UpgradePlugin" })
public void upgradeOperationDefinitions() throws Exception {
- assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"operationDefinitions", asList("start",
- "shutdown", "restart"));
+ assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"operationDefinitions",
+ asList("start", "shutdown", "restart"));
}
@Test(dependsOnMethods = { "upgradePlugin" }, groups = {
"plugin.metadata", "UpgradePlugin" })
@@ -273,8 +273,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
@Test(dependsOnMethods = { "upgradePlugin" }, groups = {
"plugin.metadata", "UpgradePlugin" })
public void upgradeEventDefinitions() throws Exception {
- assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"eventDefinitions", asList("logAEntry",
- "logCEntry"));
+ assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"eventDefinitions",
+ asList("logAEntry", "logCEntry"));
}
@Test(dependsOnMethods = { "upgradePlugin" }, groups = {
"plugin.metadata", "UpgradePlugin" })
@@ -349,8 +349,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
@Test(dependsOnMethods = { "upgradePlugin" }, groups = {
"plugin.metadata", "UpgradePlugin" })
public void upgradePackageTypes() throws Exception {
- assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"packageTypes", asList("ServerA.Content.1",
- "ServerA.Content.3"));
+ assertResourceTypeAssociationEquals("ServerA", "TestPlugin",
"packageTypes",
+ asList("ServerA.Content.1", "ServerA.Content.3"));
}
@Test(groups = { "RemoveTypes" }, dependsOnGroups = {
"UpgradePlugin" })
@@ -375,17 +375,17 @@ public class ResourceMetadataManagerBeanTest extends
MetadataBeanTest {
criteria.addFilterResourceTypeName("ServerC");
criteria.addFilterName("run");
- List<OperationDefinition> operationDefs =
operationMgr.findOperationDefinitionsByCriteria(subjectMgr
- .getOverlord(), criteria);
+ List<OperationDefinition> operationDefs =
operationMgr.findOperationDefinitionsByCriteria(
+ subjectMgr.getOverlord(), criteria);
assertEquals("The operation definition should have been deleted", 0,
operationDefs.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteEventDefsForRemovedType() throws Exception {
- List<?> results = getEntityManager().createQuery(
- "from EventDefinition e where e.name = :ename and e.resourceType.name =
:rname").setParameter("ename",
- "serverCEvent").setParameter("rname",
"ServerC").getResultList();
+ List<?> results = getEntityManager()
+ .createQuery("from EventDefinition e where e.name = :ename and
e.resourceType.name = :rname")
+ .setParameter("ename",
"serverCEvent").setParameter("rname",
"ServerC").getResultList();
assertEquals("The event definition(s) should have been deleted", 0,
results.size());
}
@@ -425,29 +425,30 @@ public class ResourceMetadataManagerBeanTest extends
MetadataBeanTest {
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteTypeAndAllItsDescedantTypes() throws Exception {
- List<?> typesNotRemoved = getEntityManager().createQuery(
- "from ResourceType t where t.plugin = :plugin and t.name in
(:resourceTypes)").setParameter("plugin",
- "RemoveTypesPlugin").setParameter("resourceTypes",
- asList("ServerE", "ServerE1", "ServerE2",
"ServerE3", "ServerE4")).getResultList();
+ List<?> typesNotRemoved = getEntityManager()
+ .createQuery("from ResourceType t where t.plugin = :plugin and t.name in
(:resourceTypes)")
+ .setParameter("plugin", "RemoveTypesPlugin")
+ .setParameter("resourceTypes", asList("ServerE",
"ServerE1", "ServerE2", "ServerE3", "ServerE4"))
+ .getResultList();
assertEquals("Failed to delete resource type or one or more of its
descendant types", 0, typesNotRemoved.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteProcessScans() {
- List<?> processScans = getEntityManager().createQuery(
- "from ProcessScan p where p.name = :name1 or p.name =
:name2").setParameter("name1", "scan1").setParameter(
- "name2", "scan2").getResultList();
+ List<?> processScans = getEntityManager()
+ .createQuery("from ProcessScan p where p.name = :name1 or p.name =
:name2").setParameter("name1", "scan1")
+ .setParameter("name2", "scan2").getResultList();
assertEquals("The process scans should have been deleted", 0,
processScans.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteSubcategories() {
- List<?> subcategories = getEntityManager().createQuery(
- "from ResourceSubCategory r where r.name = :name1 or r.name = :name2 or
r.name = :name3").setParameter(
- "name1",
"ServerC.Category1").setParameter("name2",
"ServerC.Category2").setParameter("name3",
- "ServerC.NestedCategory1").getResultList();
+ List<?> subcategories = getEntityManager()
+ .createQuery("from ResourceSubCategory r where r.name = :name1 or r.name
= :name2 or r.name = :name3")
+ .setParameter("name1",
"ServerC.Category1").setParameter("name2",
"ServerC.Category2")
+ .setParameter("name3",
"ServerC.NestedCategory1").getResultList();
assertEquals("The subcategories should have been deleted", 0,
subcategories.size());
}
@@ -462,8 +463,8 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
List<Resource> resources =
resourceMgr.findResourcesByCriteria(subjectMgr.getOverlord(), criteria);
- assertTrue("Did not expect to find any more that three resources. Database
might need to be reset", resources
- .size() < 4);
+ assertTrue("Did not expect to find any more that three resources. Database
might need to be reset",
+ resources.size() < 4);
// We won't do anything more rigorous that making sure the resources were
marked uninventoried.
// Resource deletion is an expensive, time-consuming process; consequently, it is
carried out
@@ -471,57 +472,57 @@ public class ResourceMetadataManagerBeanTest extends
MetadataBeanTest {
// quickly as it is basically just updates the the inventory status to
UNINVENTORIED for the
// resources to be deleted.
for (Resource resource : resources) {
- assertEquals("The resource should have been marked for deletion",
InventoryStatus.UNINVENTORIED == resource
- .getInventoryStatus());
+ assertEquals("The resource should have been marked for deletion",
+ InventoryStatus.UNINVENTORIED == resource.getInventoryStatus());
}
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteBundles() {
- List<?> bundles = getEntityManager().createQuery("from Bundle b where
b.bundleType.name = :name").setParameter(
- "name", "Test Bundle").getResultList();
+ List<?> bundles = getEntityManager().createQuery("from Bundle b where
b.bundleType.name = :name")
+ .setParameter("name", "Test Bundle").getResultList();
assertEquals("Failed to delete the bundles", 0, bundles.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteBundleTypes() {
- List<?> bundleTypes = getEntityManager().createQuery("from BundleType
b where b.name = :name").setParameter(
- "name", "Test Bundle").getResultList();
+ List<?> bundleTypes = getEntityManager().createQuery("from BundleType
b where b.name = :name")
+ .setParameter("name", "Test Bundle").getResultList();
assertEquals("The bundle type should have been deleted", 0,
bundleTypes.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deletePackages() {
- List<?> packages = getEntityManager().createQuery("from Package p
where p.name = :name").setParameter("name",
- "ServerC::test-package").getResultList();
+ List<?> packages = getEntityManager().createQuery("from Package p
where p.name = :name")
+ .setParameter("name",
"ServerC::test-package").getResultList();
assertEquals("All packages should have been deleted", 0,
packages.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deletePackageTypes() {
- List<?> packageTypes = getEntityManager().createQuery("from
PackageType p where p.name = :name").setParameter(
- "name", "ServerC.Content").getResultList();
+ List<?> packageTypes = getEntityManager().createQuery("from
PackageType p where p.name = :name")
+ .setParameter("name",
"ServerC.Content").getResultList();
assertEquals("All package types should have been deleted", 0,
packageTypes.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteResourceGroups() {
- List<?> groups = getEntityManager().createQuery(
- "from ResourceGroup g where g.name = :name and g.resourceType.name =
:typeName").setParameter("name",
- "ServerC Group").setParameter("typeName",
"ServerC").getResultList();
+ List<?> groups = getEntityManager()
+ .createQuery("from ResourceGroup g where g.name = :name and
g.resourceType.name = :typeName")
+ .setParameter("name", "ServerC
Group").setParameter("typeName", "ServerC").getResultList();
assertEquals("All resource groups should have been deleted", 0,
groups.size());
}
@Test(dependsOnMethods = { "upgradePluginWithTypesRemoved" }, groups = {
"plugin.metadata", "RemoveTypes" })
public void deleteAlertTemplates() {
- List<?> templates = getEntityManager().createQuery(
- "from AlertDefinition a where a.name = :name and a.resourceType.name =
:typeName").setParameter("name",
- "ServerC Alert Template").setParameter("typeName",
"ServerC").getResultList();
+ List<?> templates = getEntityManager()
+ .createQuery("from AlertDefinition a where a.name = :name and
a.resourceType.name = :typeName")
+ .setParameter("name", "ServerC Alert
Template").setParameter("typeName", "ServerC").getResultList();
assertEquals("Alert templates should have been deleted.", 0,
templates.size());
}
@@ -576,9 +577,9 @@ public class ResourceMetadataManagerBeanTest extends MetadataBeanTest
{
List<Resource> resources = new ArrayList<Resource>();
for (int i = 0; i < count; ++i) {
- resources.add(new
ResourceBuilder().createServer().withResourceType(resourceType).withName(
- resourceType.getName() + "--" +
i).withUuid(resourceType.getName()).withRandomResourceKey(
- resourceType.getName() + "--" + i).build());
+ resources.add(new
ResourceBuilder().createServer().withResourceType(resourceType)
+ .withName(resourceType.getName() + "--" +
i).withUuid(resourceType.getName())
+ .withRandomResourceKey(resourceType.getName() + "--" +
i).build());
}
getTransactionManager().begin();
diff --git a/pom.xml b/pom.xml
index 7e390f8..3b77493 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,6 +92,7 @@
<twitter4j.version>2.2.4</twitter4j.version>
<commons-codec.version>1.4</commons-codec.version>
<!-- NOTE (ips, 10/04/11): Upgrading testng to 6.2.x causes 10 server-jar tests to
fail for an unknown reason. -->
+ <!-- NOTE (jshaughn, 01/20/12): With the latest work, the sserver-jar tests passed
using testng to 6.3.1, so perhaps an upgrade is possible -->
<testng.version>6.1.1</testng.version>
<cobertura.version>1.9.4.1</cobertura.version>
<augeas.version>0.9.0</augeas.version>