modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LargeGroupCriteriaTest.java | 81 +++++++++- 1 file changed, 78 insertions(+), 3 deletions(-)
New commits: commit f4c13d0d9f62d24274c620d1a53d2e5e4c9184a2 Author: John Mazzitelli mazz@redhat.com Date: Fri May 25 12:20:59 2012 -0400
[BZ 820716] unit tests to test the search bar queries when using the availability keyword
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LargeGroupCriteriaTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LargeGroupCriteriaTest.java index 7cd09e6..93bb887 100644 --- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LargeGroupCriteriaTest.java +++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LargeGroupCriteriaTest.java @@ -77,8 +77,9 @@ public class LargeGroupCriteriaTest extends LargeGroupTestBase { * Remove the group and all its members. */ @AfterMethod(alwaysRun = true) - public void afterMethod() throws Exception { + public void tearDownGroups() throws Exception { if (env != null) { + System.out.println("Tearing down groups..."); Iterator<LargeGroupEnvironment> iter = env.iterator(); while (iter.hasNext()) { LargeGroupEnvironment doomed = iter.next(); @@ -90,6 +91,55 @@ public class LargeGroupCriteriaTest extends LargeGroupTestBase { }
@Test(enabled = TEST_ENABLED) + public void testSearchBarAvailabilityQueryUP() throws Exception { + GroupAvailCounts gac = new GroupAvailCounts(5, 0, 0, 0); + PageList<ResourceGroupComposite> pageList = testGroupQueriesWithSearchBar(gac, "availability=up"); + assert pageList.size() == 1; + + tearDownGroups(); + pageList = testGroupQueriesWithSearchBar(gac, "availability != up"); + assert pageList.size() == 0; + } + + @Test(enabled = TEST_ENABLED) + public void testSearchBarAvailabilityQueryDOWN() throws Exception { + GroupAvailCounts gac = new GroupAvailCounts(0, 5, 0, 0); + PageList<ResourceGroupComposite> pageList = testGroupQueriesWithSearchBar(gac, "availability=down"); + assert pageList.size() == 1; + + tearDownGroups(); + pageList = testGroupQueriesWithSearchBar(gac, "availability != down"); + assert pageList.size() == 0; + } + + @Test(enabled = TEST_ENABLED) + public void testSearchBarAvailabilityQueryDISABLED() throws Exception { + GroupAvailCounts gac = new GroupAvailCounts(0, 0, 0, 5); + PageList<ResourceGroupComposite> pageList = testGroupQueriesWithSearchBar(gac, "availability=disabled"); + assert pageList.size() == 1; + + tearDownGroups(); + pageList = testGroupQueriesWithSearchBar(gac, "availability != disabled"); + assert pageList.size() == 0; + } + + @Test(enabled = TEST_ENABLED) + public void testSearchBarAvailabilityQueryMIXED() throws Exception { + // when a group has a mix of up/down/disabled resources, it will not be returned with the avail search expression + GroupAvailCounts gac = new GroupAvailCounts(2, 2, 0, 2); + PageList<ResourceGroupComposite> pageList = testGroupQueriesWithSearchBar(gac, "availability=up"); + assert pageList.size() == 0; + + tearDownGroups(); + pageList = testGroupQueriesWithSearchBar(gac, "availability=down"); + assert pageList.size() == 0; + + tearDownGroups(); + pageList = testGroupQueriesWithSearchBar(gac, "availability=disabled"); + assert pageList.size() == 0; + } + + @Test(enabled = TEST_ENABLED) public void testUncommitted() throws Exception { ArrayList<GroupAvailCounts> gacs = new ArrayList<LargeGroupCriteriaTest.GroupAvailCounts>(); gacs.add(new GroupAvailCounts(1, 1, 1, 1, 1)); @@ -139,6 +189,30 @@ public class LargeGroupCriteriaTest extends LargeGroupTestBase { testGroupQueries(gacs); }
+ private PageList<ResourceGroupComposite> testGroupQueriesWithSearchBar(GroupAvailCounts gac, String searchExpression) + throws Exception { + ResourceGroupManagerLocal groupManager = LookupUtil.getResourceGroupManager(); + + env = new ArrayList<LargeGroupEnvironment>(1); + + LargeGroupEnvironment lgeWithTypes = null; + env.add(createLargeGroupWithNormalUserRoleAccessWithInventoryStatus(lgeWithTypes, gac.total, gac.down, + gac.unknown, gac.disabled, gac.uncommitted, Permission.CONFIGURE_READ)); + + ResourceGroupCriteria criteria; + PageList<ResourceGroupComposite> pageList; + long start; + + // test findResourceGroupCompositesByCriteria where the criteria will use the search bar feature + SessionTestHelper.simulateLogin(env.get(0).normalSubject); + criteria = new ResourceGroupCriteria(); + criteria.setSearchExpression(searchExpression); + start = System.currentTimeMillis(); + pageList = groupManager.findResourceGroupCompositesByCriteria(env.get(0).normalSubject, criteria); + System.out.println("criteria with search==>" + (System.currentTimeMillis() - start) + "ms"); + return pageList; + } + private void testGroupQueries(ArrayList<GroupAvailCounts> groupAvailCounts) throws Exception { ResourceGroupManagerLocal groupManager = LookupUtil.getResourceGroupManager(); AuthorizationManagerLocal authManager = LookupUtil.getAuthorizationManager(); @@ -166,7 +240,8 @@ public class LargeGroupCriteriaTest extends LargeGroupTestBase { criteria = new ResourceGroupCriteria(); start = System.currentTimeMillis(); pageList = groupManager.findResourceGroupCompositesByCriteria(lge.normalSubject, criteria); - System.out.println("findResourceGroupCompositesByCriteria #" + i + "==>" + (System.currentTimeMillis() - start) + "ms"); + System.out.println("findResourceGroupCompositesByCriteria #" + i + "==>" + + (System.currentTimeMillis() - start) + "ms"); assert pageList.size() == 1 : "the query should only have selected the one group for our user"; groupComp = pageList.get(0); System.out.println("-->" + groupComp); @@ -176,7 +251,7 @@ public class LargeGroupCriteriaTest extends LargeGroupTestBase { assert groupComp.getExplicitDown() == gac.down; assert groupComp.getExplicitUnknown() == gac.unknown; assert groupComp.getExplicitDisabled() == gac.disabled; - + // mainly to help test when there are uncommitted resources in the group - see BZ 820981 Resource committed = pickAResourceWithInventoryStatus(lge.platformResource, InventoryStatus.COMMITTED); assert true == authManager.hasResourcePermission(lge.normalSubject, Permission.CONFIGURE_READ,
rhq-commits@lists.fedorahosted.org