modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
| 245 ++++------
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
| 88 +--
2 files changed, 169 insertions(+), 164 deletions(-)
New commits:
commit 074e2280ca2bc67573544f5ef024b8614fa0e21c
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Mar 30 15:32:58 2010 -0400
Fixing compile error after merge
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
index 84ee6af..ba117a8 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
@@ -213,8 +213,7 @@ public class ContentProviderManagerSyncContentProviderTest extends
AbstractEJB3T
// Test
// --------------------------------------------
// TestContentProviderManager providerManager = new
TestContentProviderManager();
- boolean tested =
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- assert tested;
+
pluginService.getContentProviderManager().testConnection(syncSource.getId());
boolean completed =
pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
assert completed;
commit fa098e272e17d2331d7c62f5ffb332e61857f70e
Merge: 3fdf529... 0b250a4...
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Mar 30 15:30:39 2010 -0400
Merge branch 'bugfixes' of
ssh://git.fedorahosted.org/git/rhq/rhq into
bugfixes
Conflicts:
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
diff --cc
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
index d7d2404,567f8f5..84ee6af
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
@@@ -179,133 -178,134 +179,133 @@@ public class ContentProviderManagerSync
@SuppressWarnings("unchecked")
public void synchronizeContentSource() throws Exception {
- // Setup
- // --------------------------------------------
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
-
- // -> Add an already imported repo to the system so it already exists when
the report introduces it
- Repo existingImportedRepo = new
Repo(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
- existingImportedRepo.setCandidate(false);
- existingImportedRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, existingImportedRepo);
-
- // -> Add an already imported repo that wasn't introduced from the
report; a user created repo
- Repo customImportedRepo = new Repo(CUSTOM_IMPORTED_REPO_NAME);
- customImportedRepo.setCandidate(false);
- customImportedRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, customImportedRepo);
-
- // -> Simulate a candidate repo from a previous import that will be in this
report as well
- Repo existingCandidateRepo = new
Repo(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
- existingCandidateRepo.setCandidate(true);
- existingCandidateRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, existingCandidateRepo);
-
- // -> Simulate a candidate repo from a previous import that will *NOT* be in
this report
- Repo previousRepo = new Repo(PREVIOUS_CANDIDATE_REPO_NAME);
- previousRepo.setCandidate(true);
- previousRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, previousRepo);
+ try {
+ getTransactionManager().begin();
+
+ // Setup
+ // --------------------------------------------
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
+
+ // -> Add an already imported repo to the system so it already exists
when the report introduces it
+ Repo existingImportedRepo = new
Repo(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
+ existingImportedRepo.setCandidate(false);
+ repoManager.createRepo(overlord, existingImportedRepo);
+
+ // -> Add an already imported repo that wasn't introduced from the
report; a user created repo
+ Repo customImportedRepo = new Repo(CUSTOM_IMPORTED_REPO_NAME);
+ customImportedRepo.setCandidate(false);
+ customImportedRepo.addContentSource(syncSource);
+ repoManager.createRepo(overlord, customImportedRepo);
+
+ // -> Simulate a candidate repo from a previous import that will be in
this report as well
+ Repo existingCandidateRepo = new
Repo(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
+ existingCandidateRepo.setCandidate(true);
+ repoManager.createRepo(overlord, existingCandidateRepo);
+
+ // -> Simulate a candidate repo from a previous import that will *NOT* be
in this report
+ Repo previousRepo = new Repo(PREVIOUS_CANDIDATE_REPO_NAME);
+ previousRepo.setCandidate(true);
+ previousRepo.addContentSource(syncSource);
+ repoManager.createRepo(overlord, previousRepo);
- // Test
- // --------------------------------------------
- // TestContentProviderManager providerManager = new
TestContentProviderManager();
- boolean tested =
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- assert tested;
+ // Test
+ // --------------------------------------------
+ // TestContentProviderManager providerManager = new
TestContentProviderManager();
- boolean tested = false;
- try {
-
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- tested = true;
- } catch (Exception e) {
- System.err.println("testConnection() failed: " + e);
- e.printStackTrace();
++ boolean tested =
pluginService.getContentProviderManager().testConnection(syncSource.getId());
++ assert tested;
+
+ boolean completed =
pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
+ assert completed;
+
+ // Verify RepoGroups
+ RepoGroup repoGroup =
repoManager.getRepoGroupByName("testRepoGroup");
+ assert repoGroup != null;
+ repoGroupsToDelete.add(repoGroup.getId());
+
+ // Verify Repos
+ // --------------------------------------------
+ List<Repo> retrievedRepos;
+
+ // -> Simple Repo
+ retrievedRepos = repoManager.getRepoByName("testRepo1");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo in a group
+ retrievedRepos = repoManager.getRepoByName("testRepo2");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ Repo repoInGroup = retrievedRepos.get(0);
+
+ RepoCriteria findWithRepoGroup = new RepoCriteria();
+ findWithRepoGroup.fetchRepoRepoGroups(true);
+ findWithRepoGroup.addFilterId(repoInGroup.getId());
+
+ PageList<Repo> repoPageList =
repoManager.findReposByCriteria(overlord, findWithRepoGroup);
+ repoInGroup = repoPageList.get(0);
+
+ Set<RepoRepoGroup> repoGroups = repoInGroup.getRepoRepoGroups();
+ assert repoGroups.size() == 1;
+
+ RepoRepoGroup repoRepoGroup = repoGroups.iterator().next();
+ assert
repoRepoGroup.getRepoRepoGroupPK().getRepoGroup().getName().equals("testRepoGroup");
+ assert
repoRepoGroup.getRepoRepoGroupPK().getRepo().getName().equals("testRepo2");
+
+ // -> Repo with a parent
+ retrievedRepos = repoManager.getRepoByName("testRepo3");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+ relatedRepoId = retrievedRepos.get(0).getId();
+
+ retrievedRepos = repoManager.getRepoByName("testRepo4");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+ repoId = retrievedRepos.get(0).getId();
+
+ RepoCriteria findWithRelationships = new RepoCriteria();
+ findWithRelationships.addFilterName("testRepo4");
+ findWithRelationships.fetchRepoRepoRelationships(true);
+ PageList<Repo> childRepoList =
repoManager.findReposByCriteria(overlord, findWithRelationships);
+ assert childRepoList.size() == 1;
+
+ Repo childRepo = childRepoList.get(0);
+ Set<RepoRepoRelationship> childRepoRepoRelationship =
childRepo.getRepoRepoRelationships();
+ assert childRepoRepoRelationship.size() == 1;
+
+ // -> Repo that was already imported in the system (make sure there is
still only one)
+ retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo that was imported but not in the report (i.e. a user created
repo)
+ retrievedRepos = repoManager.getRepoByName(CUSTOM_IMPORTED_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo that was already a candidate in the system (make sure it's
not added again)
+ retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Make sure a repo that was previously a candidate of this content
provider but did not
+ // come back in the latest sync is removed
+ retrievedRepos = repoManager.getRepoByName(PREVIOUS_CANDIDATE_REPO_NAME);
+ assert retrievedRepos.size() == 0;
+
+ // -> Non-existent repo
+ retrievedRepos = repoManager.getRepoByName("testRepoFoo");
+ assert retrievedRepos.size() == 0;
+
+ getTransactionManager().commit();
+ } catch(Throwable t) {
+ getTransactionManager().rollback();
}
- assert tested : "testConnection()";
-
- boolean completed =
pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
- assert completed;
-
- // Verify RepoGroups
- RepoGroup repoGroup =
repoManager.getRepoGroupByName("testRepoGroup");
- assert repoGroup != null;
- repoGroupsToDelete.add(repoGroup.getId());
-
- // Verify Repos
- // --------------------------------------------
- List<Repo> retrievedRepos;
-
- // -> Simple Repo
- retrievedRepos = repoManager.getRepoByName("testRepo1");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo in a group
- retrievedRepos = repoManager.getRepoByName("testRepo2");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- Repo repoInGroup = retrievedRepos.get(0);
-
- RepoCriteria findWithRepoGroup = new RepoCriteria();
- findWithRepoGroup.fetchRepoRepoGroups(true);
- findWithRepoGroup.addFilterId(repoInGroup.getId());
-
- PageList<Repo> repoPageList = repoManager.findReposByCriteria(overlord,
findWithRepoGroup);
- repoInGroup = repoPageList.get(0);
-
- Set<RepoRepoGroup> repoGroups = repoInGroup.getRepoRepoGroups();
- assert repoGroups.size() == 1;
-
- RepoRepoGroup repoRepoGroup = repoGroups.iterator().next();
- assert
repoRepoGroup.getRepoRepoGroupPK().getRepoGroup().getName().equals("testRepoGroup");
- assert
repoRepoGroup.getRepoRepoGroupPK().getRepo().getName().equals("testRepo2");
-
- // -> Repo with a parent
- retrievedRepos = repoManager.getRepoByName("testRepo3");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
- relatedRepoId = retrievedRepos.get(0).getId();
-
- retrievedRepos = repoManager.getRepoByName("testRepo4");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
- repoId = retrievedRepos.get(0).getId();
-
- RepoCriteria findWithRelationships = new RepoCriteria();
- findWithRelationships.addFilterName("testRepo4");
- findWithRelationships.fetchRepoRepoRelationships(true);
- PageList<Repo> childRepoList = repoManager.findReposByCriteria(overlord,
findWithRelationships);
- assert childRepoList.size() == 1;
-
- Repo childRepo = childRepoList.get(0);
- Set<RepoRepoRelationship> childRepoRepoRelationship =
childRepo.getRepoRepoRelationships();
- assert childRepoRepoRelationship.size() == 1;
-
- // -> Repo that was already imported in the system (make sure there is still
only one)
- retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo that was imported but not in the report (i.e. a user created
repo)
- retrievedRepos = repoManager.getRepoByName(CUSTOM_IMPORTED_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo that was already a candidate in the system (make sure it's not
added again)
- retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Make sure a repo that was previously a candidate of this content
provider but did not
- // come back in the latest sync is removed
- retrievedRepos = repoManager.getRepoByName(PREVIOUS_CANDIDATE_REPO_NAME);
- assert retrievedRepos.size() == 0;
-
- // -> Non-existent repo
- retrievedRepos = repoManager.getRepoByName("testRepoFoo");
- assert retrievedRepos.size() == 0;
}
}
commit 3fdf529d3be1128b6b3b623f70cc72ef906d3beb
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Mar 30 15:20:56 2010 -0400
Fixing test failures and trying to make transaction a bit more robust
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
index c3bec3a..d7d2404 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Set;
import javax.persistence.EntityManager;
+import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import org.testng.annotations.AfterMethod;
@@ -178,127 +179,133 @@ public class ContentProviderManagerSyncContentProviderTest extends
AbstractEJB3T
@SuppressWarnings("unchecked")
public void synchronizeContentSource() throws Exception {
- // Setup
- // --------------------------------------------
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
-
- // -> Add an already imported repo to the system so it already exists when the
report introduces it
- Repo existingImportedRepo = new
Repo(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
- existingImportedRepo.setCandidate(false);
- existingImportedRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, existingImportedRepo);
-
- // -> Add an already imported repo that wasn't introduced from the report;
a user created repo
- Repo customImportedRepo = new Repo(CUSTOM_IMPORTED_REPO_NAME);
- customImportedRepo.setCandidate(false);
- customImportedRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, customImportedRepo);
-
- // -> Simulate a candidate repo from a previous import that will be in this
report as well
- Repo existingCandidateRepo = new
Repo(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
- existingCandidateRepo.setCandidate(true);
- existingCandidateRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, existingCandidateRepo);
-
- // -> Simulate a candidate repo from a previous import that will *NOT* be in
this report
- Repo previousRepo = new Repo(PREVIOUS_CANDIDATE_REPO_NAME);
- previousRepo.setCandidate(true);
- previousRepo.addContentSource(syncSource);
- repoManager.createRepo(overlord, previousRepo);
-
- // Test
- // --------------------------------------------
- // TestContentProviderManager providerManager = new
TestContentProviderManager();
- boolean tested =
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- assert tested;
-
- boolean completed =
pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
- assert completed;
-
- // Verify RepoGroups
- RepoGroup repoGroup = repoManager.getRepoGroupByName("testRepoGroup");
- assert repoGroup != null;
- repoGroupsToDelete.add(repoGroup.getId());
-
- // Verify Repos
- // --------------------------------------------
- List<Repo> retrievedRepos;
-
- // -> Simple Repo
- retrievedRepos = repoManager.getRepoByName("testRepo1");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo in a group
- retrievedRepos = repoManager.getRepoByName("testRepo2");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- Repo repoInGroup = retrievedRepos.get(0);
-
- RepoCriteria findWithRepoGroup = new RepoCriteria();
- findWithRepoGroup.fetchRepoRepoGroups(true);
- findWithRepoGroup.addFilterId(repoInGroup.getId());
-
- PageList<Repo> repoPageList = repoManager.findReposByCriteria(overlord,
findWithRepoGroup);
- repoInGroup = repoPageList.get(0);
-
- Set<RepoRepoGroup> repoGroups = repoInGroup.getRepoRepoGroups();
- assert repoGroups.size() == 1;
-
- RepoRepoGroup repoRepoGroup = repoGroups.iterator().next();
- assert
repoRepoGroup.getRepoRepoGroupPK().getRepoGroup().getName().equals("testRepoGroup");
- assert
repoRepoGroup.getRepoRepoGroupPK().getRepo().getName().equals("testRepo2");
-
- // -> Repo with a parent
- retrievedRepos = repoManager.getRepoByName("testRepo3");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
- relatedRepoId = retrievedRepos.get(0).getId();
-
- retrievedRepos = repoManager.getRepoByName("testRepo4");
- assert retrievedRepos.size() == 1;
- assert retrievedRepos.get(0).isCandidate();
- reposToDelete.add(retrievedRepos.get(0).getId());
- repoId = retrievedRepos.get(0).getId();
-
- RepoCriteria findWithRelationships = new RepoCriteria();
- findWithRelationships.addFilterName("testRepo4");
- findWithRelationships.fetchRepoRepoRelationships(true);
- PageList<Repo> childRepoList = repoManager.findReposByCriteria(overlord,
findWithRelationships);
- assert childRepoList.size() == 1;
-
- Repo childRepo = childRepoList.get(0);
- Set<RepoRepoRelationship> childRepoRepoRelationship =
childRepo.getRepoRepoRelationships();
- assert childRepoRepoRelationship.size() == 1;
-
- // -> Repo that was already imported in the system (make sure there is still
only one)
- retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo that was imported but not in the report (i.e. a user created repo)
- retrievedRepos = repoManager.getRepoByName(CUSTOM_IMPORTED_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Repo that was already a candidate in the system (make sure it's not
added again)
- retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
- assert retrievedRepos.size() == 1;
- reposToDelete.add(retrievedRepos.get(0).getId());
-
- // -> Make sure a repo that was previously a candidate of this content
provider but did not
- // come back in the latest sync is removed
- retrievedRepos = repoManager.getRepoByName(PREVIOUS_CANDIDATE_REPO_NAME);
- assert retrievedRepos.size() == 0;
-
- // -> Non-existent repo
- retrievedRepos = repoManager.getRepoByName("testRepoFoo");
- assert retrievedRepos.size() == 0;
+ try {
+ getTransactionManager().begin();
+
+ // Setup
+ // --------------------------------------------
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
+
+ // -> Add an already imported repo to the system so it already exists when
the report introduces it
+ Repo existingImportedRepo = new
Repo(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
+ existingImportedRepo.setCandidate(false);
+ repoManager.createRepo(overlord, existingImportedRepo);
+
+ // -> Add an already imported repo that wasn't introduced from the
report; a user created repo
+ Repo customImportedRepo = new Repo(CUSTOM_IMPORTED_REPO_NAME);
+ customImportedRepo.setCandidate(false);
+ customImportedRepo.addContentSource(syncSource);
+ repoManager.createRepo(overlord, customImportedRepo);
+
+ // -> Simulate a candidate repo from a previous import that will be in
this report as well
+ Repo existingCandidateRepo = new
Repo(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
+ existingCandidateRepo.setCandidate(true);
+ repoManager.createRepo(overlord, existingCandidateRepo);
+
+ // -> Simulate a candidate repo from a previous import that will *NOT* be
in this report
+ Repo previousRepo = new Repo(PREVIOUS_CANDIDATE_REPO_NAME);
+ previousRepo.setCandidate(true);
+ previousRepo.addContentSource(syncSource);
+ repoManager.createRepo(overlord, previousRepo);
+
+ // Test
+ // --------------------------------------------
+ // TestContentProviderManager providerManager = new
TestContentProviderManager();
+ boolean tested =
pluginService.getContentProviderManager().testConnection(syncSource.getId());
+ assert tested;
+
+ boolean completed =
pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
+ assert completed;
+
+ // Verify RepoGroups
+ RepoGroup repoGroup =
repoManager.getRepoGroupByName("testRepoGroup");
+ assert repoGroup != null;
+ repoGroupsToDelete.add(repoGroup.getId());
+
+ // Verify Repos
+ // --------------------------------------------
+ List<Repo> retrievedRepos;
+
+ // -> Simple Repo
+ retrievedRepos = repoManager.getRepoByName("testRepo1");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo in a group
+ retrievedRepos = repoManager.getRepoByName("testRepo2");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ Repo repoInGroup = retrievedRepos.get(0);
+
+ RepoCriteria findWithRepoGroup = new RepoCriteria();
+ findWithRepoGroup.fetchRepoRepoGroups(true);
+ findWithRepoGroup.addFilterId(repoInGroup.getId());
+
+ PageList<Repo> repoPageList = repoManager.findReposByCriteria(overlord,
findWithRepoGroup);
+ repoInGroup = repoPageList.get(0);
+
+ Set<RepoRepoGroup> repoGroups = repoInGroup.getRepoRepoGroups();
+ assert repoGroups.size() == 1;
+
+ RepoRepoGroup repoRepoGroup = repoGroups.iterator().next();
+ assert
repoRepoGroup.getRepoRepoGroupPK().getRepoGroup().getName().equals("testRepoGroup");
+ assert
repoRepoGroup.getRepoRepoGroupPK().getRepo().getName().equals("testRepo2");
+
+ // -> Repo with a parent
+ retrievedRepos = repoManager.getRepoByName("testRepo3");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+ relatedRepoId = retrievedRepos.get(0).getId();
+
+ retrievedRepos = repoManager.getRepoByName("testRepo4");
+ assert retrievedRepos.size() == 1;
+ assert retrievedRepos.get(0).isCandidate();
+ reposToDelete.add(retrievedRepos.get(0).getId());
+ repoId = retrievedRepos.get(0).getId();
+
+ RepoCriteria findWithRelationships = new RepoCriteria();
+ findWithRelationships.addFilterName("testRepo4");
+ findWithRelationships.fetchRepoRepoRelationships(true);
+ PageList<Repo> childRepoList =
repoManager.findReposByCriteria(overlord, findWithRelationships);
+ assert childRepoList.size() == 1;
+
+ Repo childRepo = childRepoList.get(0);
+ Set<RepoRepoRelationship> childRepoRepoRelationship =
childRepo.getRepoRepoRelationships();
+ assert childRepoRepoRelationship.size() == 1;
+
+ // -> Repo that was already imported in the system (make sure there is
still only one)
+ retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_IMPORTED_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo that was imported but not in the report (i.e. a user created
repo)
+ retrievedRepos = repoManager.getRepoByName(CUSTOM_IMPORTED_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Repo that was already a candidate in the system (make sure it's
not added again)
+ retrievedRepos =
repoManager.getRepoByName(TestContentProvider.EXISTING_CANDIDATE_REPO_NAME);
+ assert retrievedRepos.size() == 1;
+ reposToDelete.add(retrievedRepos.get(0).getId());
+
+ // -> Make sure a repo that was previously a candidate of this content
provider but did not
+ // come back in the latest sync is removed
+ retrievedRepos = repoManager.getRepoByName(PREVIOUS_CANDIDATE_REPO_NAME);
+ assert retrievedRepos.size() == 0;
+
+ // -> Non-existent repo
+ retrievedRepos = repoManager.getRepoByName("testRepoFoo");
+ assert retrievedRepos.size() == 0;
+
+ getTransactionManager().commit();
+ } catch(Throwable t) {
+ getTransactionManager().rollback();
+ }
}
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
index 0846f77..6afe318 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
@@ -83,49 +83,55 @@ public class ContentProviderManagerSyncRepoTest extends
AbstractEJB3Test {
pluginService = new TestContentServerPluginService(this);
TransactionManager tx = getTransactionManager();
- tx.begin();
- EntityManager entityManager = getEntityManager();
-
- ContentSourceManagerLocal contentManager = LookupUtil.getContentSourceManager();
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
-
- // Create a sample content source type that will be used in this test
- contentSourceType = new ContentSourceType("testType");
- entityManager.persist(contentSourceType);
- entityManager.flush();
-
- // A repo sync will query all providers for that repo, so add multiple providers
- ContentSource cs1 = new ContentSource("contentSource1",
contentSourceType);
- cs1.setDownloadMode(DownloadMode.DATABASE);
- ContentSource cs2 = new ContentSource("contentSource2",
contentSourceType);
- cs2.setDownloadMode(DownloadMode.DATABASE);
-
- cs1 = contentManager.simpleCreateContentSource(overlord, cs1);
- cs2 = contentManager.simpleCreateContentSource(overlord, cs2);
-
- pluginService.associateContentProvider(cs1, contentProvider1);
- pluginService.associateContentProvider(cs2, contentProvider2);
-
- repoContentSources.add(cs1);
- repoContentSources.add(cs2);
-
- // Create the package type packages will be created against
- resourceType = new ResourceType(TestContentProvider.RESOURCE_TYPE_NAME,
- TestContentProvider.RESOURCE_TYPE_PLUGIN_NAME, ResourceCategory.PLATFORM,
null);
- entityManager.persist(resourceType);
-
- packageType = new PackageType(TestContentProvider.PACKAGE_TYPE_NAME,
resourceType);
- entityManager.persist(packageType);
-
- // Create the repo to be syncced
- Repo repo = new Repo(TestContentProvider.REPO_WITH_PACKAGES);
- repo.addContentSource(cs1);
+ try {
+ tx.begin();
+ EntityManager entityManager = getEntityManager();
+
+ ContentSourceManagerLocal contentManager =
LookupUtil.getContentSourceManager();
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
+
+ // Create a sample content source type that will be used in this test
+ contentSourceType = new ContentSourceType("testType");
+ entityManager.persist(contentSourceType);
+ entityManager.flush();
+
+ // A repo sync will query all providers for that repo, so add multiple
providers
+ ContentSource cs1 = new ContentSource("contentSource1",
contentSourceType);
+ cs1.setDownloadMode(DownloadMode.DATABASE);
+ ContentSource cs2 = new ContentSource("contentSource2",
contentSourceType);
+ cs2.setDownloadMode(DownloadMode.DATABASE);
+
+ cs1 = contentManager.simpleCreateContentSource(overlord, cs1);
+ cs2 = contentManager.simpleCreateContentSource(overlord, cs2);
+
+ pluginService.associateContentProvider(cs1, contentProvider1);
+ pluginService.associateContentProvider(cs2, contentProvider2);
+
+ repoContentSources.add(cs1);
+ repoContentSources.add(cs2);
+
+ // Create the package type packages will be created against
+ resourceType = new ResourceType(TestContentProvider.RESOURCE_TYPE_NAME,
+ TestContentProvider.RESOURCE_TYPE_PLUGIN_NAME, ResourceCategory.PLATFORM,
null);
+ entityManager.persist(resourceType);
+
+ packageType = new PackageType(TestContentProvider.PACKAGE_TYPE_NAME,
resourceType);
+ entityManager.persist(packageType);
+
+ // Create the repo to be syncced
+ Repo repo = new Repo(TestContentProvider.REPO_WITH_PACKAGES);
+ repo.addContentSource(cs1);
// repo.addContentSource(cs2); Disabled until we implement a second test content
provider to return new stuff
- repoToSync = repoManager.createRepo(overlord, repo);
+ repoToSync = repoManager.createRepo(overlord, repo);
- tx.commit();
+ tx.commit();
+ } catch (Throwable t) {
+ tx.rollback();
+ // rethrow because if we swallow the exception then tests proceed to execute
when they probably should not
+ throw new RuntimeException(t);
+ }
}
@AfterMethod