modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java | 16 +
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java | 55 +++-
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java | 130 ++++++++++
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java | 84 ------
4 files changed, 189 insertions(+), 96 deletions(-)
New commits:
commit 6a2753b1f574c5f3cab6901e149ca4d0aa4dcf10
Author: John Sanda <jsanda(a)redhat.com>
Date: Sat Feb 25 10:46:38 2012 -0500
Adding some more verification logic
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
index f3f6fcf..242da58 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
@@ -27,6 +27,7 @@ import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.Query;
import com.mongodb.Mongo;
+import org.bson.types.ObjectId;
import org.jmock.Expectations;
import org.rhq.common.drift.ChangeSetWriter;
import org.rhq.common.drift.ChangeSetWriterImpl;
@@ -55,6 +56,7 @@ import static java.util.Arrays.asList;
import static org.rhq.common.drift.FileEntry.addedFileEntry;
import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.plannedChanges;
import static org.testng.Assert.assertEquals;
@@ -121,23 +123,28 @@ public class MongoDBDriftServerTest extends MongoDBTest {
// verify that the change set was persisted
ChangeSetDAO changeSetDAO = new ChangeSetDAO(morphia, connection, "rhqtest");
- List<MongoDBChangeSet> actual = changeSetDAO.find().asList();
+ List<MongoDBChangeSet> changeSets = changeSetDAO.find().asList();
- MongoDBChangeSet changeSet = new MongoDBChangeSet();
- changeSet.setDriftDefinitionId(driftDefId);
- changeSet.setResourceId(resourceId);
- changeSet.setDriftDefinitionName(driftDefName);
- changeSet.setCategory(COVERAGE);
- changeSet.setVersion(0);
- changeSet.setDriftHandlingMode(plannedChanges);
+ assertEquals(changeSets.size(), 1, "Expected to find one change set in the database.");
+ MongoDBChangeSet actual = changeSets.get(0);
+
+ MongoDBChangeSet expected = new MongoDBChangeSet();
+ // Need to set the id to actual.id. Since ids are random, we cannot use a canned
+ // value. We have to set it the same value that is in the database.
+ expected.setId(actual.getId());
+ expected.setDriftDefinitionId(driftDefId);
+ expected.setResourceId(resourceId);
+ expected.setDriftDefinitionName(driftDefName);
+ expected.setCategory(COVERAGE);
+ expected.setVersion(0);
+ expected.setDriftHandlingMode(normal);
MongoDBChangeSetEntry entry = new MongoDBChangeSetEntry("1.txt", FILE_ADDED);
entry.setNewFileHash(sha256("1a2b3c4d"));
- changeSet.add(entry);
+ expected.add(entry);
- List<MongoDBChangeSet> expected = asList(changeSet);
-
- assertEquals(actual.size(), 1, "Expected to find one change set");
+ String[] ignore = new String[] {"id", "objectId", "ctime"};
+ assertChangeSetMatches("Failed to persist change set", expected, actual, ignore);
}
protected File createChangeSetZipFile(Headers headers, FileEntry... fileEntries) throws Exception {
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java
index 75a086b..847ccbd 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java
@@ -12,8 +12,10 @@ import org.rhq.test.JMockTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
+import java.util.ArrayList;
import java.util.List;
+import static java.util.Arrays.asList;
import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.rhq.test.AssertUtils.assertPropertiesMatch;
import static org.testng.Assert.assertEquals;
@@ -40,6 +42,14 @@ public class MongoDBTest extends JMockTest {
ds = morphia.createDatastore(connection, "rhqtest");
}
+ /**
+ * Verifies that the actual list of change sets match the expected list of change sets.
+ * The order of the lists is expected to be the same.
+ *
+ * @param msg
+ * @param expected
+ * @param actual
+ */
protected void assertChangeSetsMatch(String msg, List<MongoDBChangeSet> expected, List<MongoDBChangeSet> actual) {
assertEquals(actual.size(), expected.size(), "The number of change sets differ: " + msg);
int i = 0;
@@ -74,6 +84,31 @@ public class MongoDBTest extends JMockTest {
* This method first checks that the actual change set is not null. It then performs a
* property-wise comparison against the expected change set using
* {@link org.rhq.test.AssertUtils#assertPropertiesMatch(String, Object, Object, String...) assertPropertiesMatch}.
+ * The {@link MongoDBChangeSet#getDrifts() drifts} property is then tested separately
+ * using
+ * {@link org.rhq.test.AssertUtils#assertCollectionMatchesNoOrder(String, java.util.Collection, java.util.Collection, String...) assertCollectionMatches}.
+ *
+ * @param msg An error message
+ * @param expected The expected change set to test against
+ * @param actual The actual change set under test
+ * @param ignoredProperties Properties of the MongoDBChangeSet to exclude from comparison
+ */
+ protected void assertChangeSetMatches(String msg, MongoDBChangeSet expected, MongoDBChangeSet actual,
+ String... ignoredProperties) {
+ assertNotNull(actual, msg + ": change set is null");
+
+ List<String> ignore = new ArrayList<String>(asList(ignoredProperties));
+ ignore.add("drifts");
+ assertPropertiesMatch(msg, expected, actual, ignore);
+
+ assertCollectionMatchesNoOrder(msg + ": " + "change set entries do not match expected entries.", expected
+ .getDrifts(), actual.getDrifts(), "changeSet", "ctime");
+ }
+
+ /**
+ * This method first checks that the actual change set is not null. It then performs a
+ * property-wise comparison against the expected change set using
+ * {@link org.rhq.test.AssertUtils#assertPropertiesMatch(String, Object, Object, String...) assertPropertiesMatch}.
* The {@link org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet#getDrifts() drifts}
* property is then tested separately using
* {@link org.rhq.test.AssertUtils#assertCollectionMatchesNoOrder(String, java.util.Collection, java.util.Collection, String...) assertCollectionMatches}.
commit f8167735f7cad6c01efca7a9fec0cf315f06b316
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Feb 20 09:50:27 2012 -0500
Refactoring tests to pull common test code into base test class
This is the initial commit for MongoDBTest. A previous commit added the
oldDriftFile and newDriftFile properties in MongoDBChangeSetEntry. This
broke some tests in ChangeSetDAOTest since MongoDBFile does not
implement equals/hashCode. I have implemented equals/hashCode for
MongoDBFile in this commit to fix those failing tests.
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
index 344614b..1da12e3 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
@@ -71,4 +71,20 @@ public class MongoDBFile implements Serializable, DriftFile {
this.status = status;
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ MongoDBFile that = (MongoDBFile) o;
+
+ if (hash != null ? !hash.equals(that.hash) : that.hash != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return hash != null ? hash.hashCode() : 0;
+ }
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
index 5ad406f..f3f6fcf 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServerTest.java
@@ -24,6 +24,7 @@ import java.util.List;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
+import com.google.code.morphia.query.Query;
import com.mongodb.Mongo;
import org.jmock.Expectations;
@@ -32,7 +33,9 @@ import org.rhq.common.drift.ChangeSetWriterImpl;
import org.rhq.common.drift.FileEntry;
import org.rhq.common.drift.Headers;
import org.rhq.core.clientapi.agent.drift.DriftAgentService;
+import org.rhq.core.domain.drift.DriftCategory;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
+import org.rhq.core.domain.drift.DriftConfigurationDefinition;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.domain.drift.dto.DriftFileDTO;
import org.rhq.core.util.MessageDigestGenerator;
@@ -43,37 +46,32 @@ import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSetEntry;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
import org.rhq.test.JMockTest;
+import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static java.util.Arrays.asList;
import static org.rhq.common.drift.FileEntry.addedFileEntry;
+import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.plannedChanges;
+import static org.testng.Assert.assertEquals;
-public class MongoDBDriftServerTest extends JMockTest {
-
- Mongo connection;
-
- Morphia morphia;
-
- Datastore ds;
-
- String db = "rhqtest";
+public class MongoDBDriftServerTest extends MongoDBTest {
MessageDigestGenerator digestGenerator;
@BeforeClass
- public void initDB() throws Exception {
- connection = new Mongo("127.0.0.1");
- morphia = new Morphia().map(MongoDBChangeSet.class).map(MongoDBChangeSetEntry.class).map(MongoDBFile.class);
- ds = morphia.createDatastore(connection, db);
-
+ public void initClass() throws Exception {
digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
}
@BeforeMethod
public void initTest() {
+ Query deleteAll = ds.createQuery(MongoDBChangeSet.class);
+ ds.delete(deleteAll);
+
File basedir = getBaseDir();
basedir.delete();
getBaseDir().mkdirs();
@@ -103,7 +101,7 @@ public class MongoDBDriftServerTest extends JMockTest {
driftServer.setConnection(connection);
driftServer.setMorphia(morphia);
driftServer.setDatastore(ds);
- driftServer.setChangeSetDAO(new ChangeSetDAO(morphia, connection, db));
+ driftServer.setChangeSetDAO(new ChangeSetDAO(morphia, connection, "rhqtest"));
driftServer.setFileDAO(new FileDAO(ds.getDB()));
final List<? extends DriftFile> missingContent = asList(new TestDriftFile(sha256("1a2b3c4d")));
@@ -120,6 +118,26 @@ public class MongoDBDriftServerTest extends JMockTest {
// We can pass null for the subject because MongoDBDriftServer currently does not
// use the subject argument.
driftServer.saveChangeSet(null, resourceId, changeSetZip);
+
+ // verify that the change set was persisted
+ ChangeSetDAO changeSetDAO = new ChangeSetDAO(morphia, connection, "rhqtest");
+ List<MongoDBChangeSet> actual = changeSetDAO.find().asList();
+
+ MongoDBChangeSet changeSet = new MongoDBChangeSet();
+ changeSet.setDriftDefinitionId(driftDefId);
+ changeSet.setResourceId(resourceId);
+ changeSet.setDriftDefinitionName(driftDefName);
+ changeSet.setCategory(COVERAGE);
+ changeSet.setVersion(0);
+ changeSet.setDriftHandlingMode(plannedChanges);
+
+ MongoDBChangeSetEntry entry = new MongoDBChangeSetEntry("1.txt", FILE_ADDED);
+ entry.setNewFileHash(sha256("1a2b3c4d"));
+ changeSet.add(entry);
+
+ List<MongoDBChangeSet> expected = asList(changeSet);
+
+ assertEquals(actual.size(), 1, "Expected to find one change set");
}
protected File createChangeSetZipFile(Headers headers, FileEntry... fileEntries) throws Exception {
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java
new file mode 100644
index 0000000..75a086b
--- /dev/null
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBTest.java
@@ -0,0 +1,95 @@
+package org.rhq.enterprise.server.plugins.drift.mongodb;
+
+import com.google.code.morphia.Datastore;
+import com.google.code.morphia.Morphia;
+import com.google.code.morphia.query.Query;
+import com.mongodb.Mongo;
+import org.rhq.enterprise.server.plugins.drift.mongodb.dao.ChangeSetDAO;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSetEntry;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
+import org.rhq.test.JMockTest;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+import java.util.List;
+
+import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
+import static org.rhq.test.AssertUtils.assertPropertiesMatch;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+
+public class MongoDBTest extends JMockTest {
+
+ // Tests need to be disabled when committed/pushed to the remote repo until we get
+ // mongodb installed on the hudson slave
+ public static final boolean ENABLED = true;
+
+ protected Mongo connection;
+
+ protected Morphia morphia;
+
+ protected Datastore ds;
+
+ @BeforeClass
+ public void initDB() throws Exception {
+ connection = new Mongo("127.0.0.1");
+
+ morphia = new Morphia().map(MongoDBChangeSet.class).map(MongoDBChangeSetEntry.class).map(MongoDBFile.class);
+
+ ds = morphia.createDatastore(connection, "rhqtest");
+ }
+
+ protected void assertChangeSetsMatch(String msg, List<MongoDBChangeSet> expected, List<MongoDBChangeSet> actual) {
+ assertEquals(actual.size(), expected.size(), "The number of change sets differ: " + msg);
+ int i = 0;
+ for (MongoDBChangeSet expectedChangeSet : expected) {
+ assertChangeSetMatches("Change sets do not match: " + msg, expectedChangeSet, actual.get(i++));
+ }
+ }
+
+ protected void assertChangeSetsMatchNoOrder(String msg, List<MongoDBChangeSet> expected,
+ List<MongoDBChangeSet> actual) {
+ assertEquals(actual.size(), expected.size(), "The number of change sets differ: " + msg);
+ for (MongoDBChangeSet expectedChangeSet : expected) {
+ MongoDBChangeSet actualChangeSet = null;
+ for (MongoDBChangeSet changeSet : actual) {
+ if (expectedChangeSet.getObjectId().equals(changeSet.getObjectId())) {
+ actualChangeSet = changeSet;
+ break;
+ }
+ }
+ assertNotNull(actualChangeSet, msg + ": expected to find change set " + expectedChangeSet);
+ assertChangeSetMatches(msg, expectedChangeSet, actualChangeSet);
+ }
+ }
+
+ protected void assertEntriesMatch(String msg, List<MongoDBChangeSetEntry> expected,
+ List<MongoDBChangeSetEntry> actual) {
+ assertEquals(actual.size(), expected.size(), "The number of entries differ: " + msg);
+ assertCollectionMatchesNoOrder(msg, expected, actual, "changeSet");
+ }
+
+ /**
+ * This method first checks that the actual change set is not null. It then performs a
+ * property-wise comparison against the expected change set using
+ * {@link org.rhq.test.AssertUtils#assertPropertiesMatch(String, Object, Object, String...) assertPropertiesMatch}.
+ * The {@link org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet#getDrifts() drifts}
+ * property is then tested separately using
+ * {@link org.rhq.test.AssertUtils#assertCollectionMatchesNoOrder(String, java.util.Collection, java.util.Collection, String...) assertCollectionMatches}.
+ *
+ * @param msg An error message
+ * @param expected The expected change set to test against
+ * @param actual The actual change set under test
+ */
+ protected void assertChangeSetMatches(String msg, MongoDBChangeSet expected, MongoDBChangeSet actual) {
+ assertNotNull(actual, msg + ": change set is null");
+
+ String ignore = "drifts";
+ assertPropertiesMatch(msg, expected, actual, ignore);
+
+ ignore = "changeSet";
+ assertCollectionMatchesNoOrder(msg + ": " + "change set entries do not match expected entries.", expected
+ .getDrifts(), actual.getDrifts(), ignore);
+ }
+}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
index 4e9c0e0..aaee50c 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
@@ -21,14 +21,10 @@ package org.rhq.enterprise.server.plugins.drift.mongodb.dao;
import java.util.List;
-import com.google.code.morphia.Datastore;
-import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.Query;
-import com.mongodb.Mongo;
-
import org.rhq.core.domain.criteria.GenericDriftChangeSetCriteria;
import org.rhq.core.domain.util.PageOrdering;
-import org.testng.annotations.BeforeClass;
+import org.rhq.enterprise.server.plugins.drift.mongodb.MongoDBTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -36,7 +32,6 @@ import org.rhq.core.domain.criteria.GenericDriftCriteria;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSetEntry;
-import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
import static java.util.Arrays.asList;
import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
@@ -51,34 +46,14 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
-public class ChangeSetDAOTest {
-
- // Tests need to be disabled when committed/pushed to the remote repo until we get
- // mongodb installed on the hudson slave
- static final boolean ENABLED = true;
-
- Mongo connection;
-
- Morphia morphia;
-
- Datastore ds;
+public class ChangeSetDAOTest extends MongoDBTest {
ChangeSetDAO dao;
- @BeforeClass
- public void initDB() throws Exception {
- connection = new Mongo("127.0.0.1");
-
- morphia = new Morphia().map(MongoDBChangeSet.class).map(MongoDBChangeSetEntry.class).map(MongoDBFile.class);
-
- ds = morphia.createDatastore(connection, "rhqtest");
- }
-
@BeforeMethod
- public void clearCollections() throws Exception {
+ public void initDAO() {
Query deleteAll = ds.createQuery(MongoDBChangeSet.class);
ds.delete(deleteAll);
-
dao = new ChangeSetDAO(morphia, connection, "rhqtest");
}
@@ -965,59 +940,6 @@ public class ChangeSetDAOTest {
assertTrue(dao.find().asList().isEmpty(), "Failed to delete one or more change sets");
}
-
- private void assertChangeSetsMatch(String msg, List<MongoDBChangeSet> expected, List<MongoDBChangeSet> actual) {
- assertEquals(actual.size(), expected.size(), "The number of change sets differ: " + msg);
- int i = 0;
- for (MongoDBChangeSet expectedChangeSet : expected) {
- assertChangeSetMatches("Change sets do not match: " + msg, expectedChangeSet, actual.get(i++));
- }
- }
-
- private void assertChangeSetsMatchNoOrder(String msg, List<MongoDBChangeSet> expected,
- List<MongoDBChangeSet> actual) {
- assertEquals(actual.size(), expected.size(), "The number of change sets differ: " + msg);
- for (MongoDBChangeSet expectedChangeSet : expected) {
- MongoDBChangeSet actualChangeSet = null;
- for (MongoDBChangeSet changeSet : actual) {
- if (expectedChangeSet.getObjectId().equals(changeSet.getObjectId())) {
- actualChangeSet = changeSet;
- break;
- }
- }
- assertNotNull(actualChangeSet, msg + ": expected to find change set " + expectedChangeSet);
- assertChangeSetMatches(msg, expectedChangeSet, actualChangeSet);
- }
- }
-
- private void assertEntriesMatch(String msg, List<MongoDBChangeSetEntry> expected,
- List<MongoDBChangeSetEntry> actual) {
- assertEquals(actual.size(), expected.size(), "The number of entries differ: " + msg);
- assertCollectionMatchesNoOrder(msg, expected, actual, "changeSet");
- }
-
- /**
- * This method first checks that the actual change set is not null. It then performs a
- * property-wise comparison against the expected change set using
- * {@link org.rhq.test.AssertUtils#assertPropertiesMatch(String, Object, Object, String...) assertPropertiesMatch}.
- * The {@link org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet#getDrifts() drifts}
- * property is then tested separately using
- * {@link org.rhq.test.AssertUtils#assertCollectionMatchesNoOrder(String, java.util.Collection, java.util.Collection, String...) assertCollectionMatches}.
- *
- * @param msg An error message
- * @param expected The expected change set to test against
- * @param actual The actual change set under test
- */
- void assertChangeSetMatches(String msg, MongoDBChangeSet expected, MongoDBChangeSet actual) {
- assertNotNull(actual, msg + ": change set is null");
-
- String ignore = "drifts";
- assertPropertiesMatch(msg, expected, actual, ignore);
-
- ignore = "changeSet";
- assertCollectionMatchesNoOrder(msg + ": " + "change set entries do not match expected entries.", expected
- .getDrifts(), actual.getDrifts(), ignore);
- }
/**
* A convenience factory method for creating a change set.