RANGER-4636: RANGER-4637: Fix /public/api/policy/count and /public/api/repository/count to return the proper value

Signed-off-by: Madhan Neethiraj <madhan@apache.org>
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
index a6b86e9..b7735e7 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
@@ -78,6 +78,9 @@
 
 	@Autowired
 	RESTErrorUtil restErrorUtil;
+
+	@Autowired
+	AssetREST assetREST;
 	
 	@GET
 	@Path("/api/repository/{id}")
@@ -217,16 +220,13 @@
 			logger.debug("==> PublicAPIs.countRepositories()");
 		}
 
-		VXRepositoryList repositories = searchRepositories(request);
+		VXLong ret = assetREST.countXAssets(request);
 
-		VXLong ret = new VXLong();
-		ret.setValue(repositories == null ? 0 : repositories.getResultSize());
-
-        if(logger.isDebugEnabled()) {
+		if(logger.isDebugEnabled()) {
 			logger.debug("<== PublicAPIs.countRepositories(): count=" + ret);
 		}
 
-        return ret;
+		return ret;
 	}	
 	
 
@@ -392,16 +392,13 @@
 			logger.debug("==> PublicAPIs.countPolicies(): ");
 		}
 
-		VXPolicyList policies = searchPolicies(request);
-
-		VXLong vXlong = new VXLong();
-		vXlong.setValue(policies == null ? 0 : policies.getResultSize());
+		VXLong ret = assetREST.countXResources(request);
 
 		if(logger.isDebugEnabled()) {
-			logger.debug("<== PublicAPIs.countPolicies(): "  + request );
+			logger.debug("<== PublicAPIs.countPolicies(): "  + ret);
 		}
 
-		return vXlong;
+		return ret;
 	}
 
 }
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
index 180742b..23fbb84 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
@@ -416,7 +416,7 @@
 
 		List<RangerService> services = Arrays.asList(rangerService1, rangerService2);
 		SearchFilter searchFilter = new SearchFilter();
-		Mockito.when(searchUtil.getSearchFilterFromLegacyRequestForRepositorySearch(request, null))
+		Mockito.when(searchUtil.getSearchFilterFromLegacyRequest(request, null))
 				.thenReturn(searchFilter);
 		Mockito.when(serviceREST.getServices(searchFilter)).thenReturn(services);
 		Mockito.when(serviceUtil.toVXAsset(rangerService1)).thenReturn(vXAsset1);
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
index eb0cb64..aa7e9b8 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java
@@ -99,6 +99,9 @@
 	
 	@Mock
 	RangerPolicyService policyService;
+
+	@Mock
+	AssetREST assetREST;
 	
 	@Rule
 	public ExpectedException thrown = ExpectedException.none();
@@ -351,26 +354,16 @@
 	@Test
 	public void test6countRepositories() throws Exception {
 		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-		VXLong vXLong = new VXLong();
-		List<RangerService> ret = new ArrayList<RangerService>();
-		RangerService rangerService = rangerService();
-		VXRepository vXRepository = vXRepository(rangerService);
-		List<VXRepository> repoList = new ArrayList<VXRepository>();
-		repoList.add(vXRepository);
-		VXRepositoryList vXRepositoryList = new VXRepositoryList(repoList);
-		SearchFilter filter = new SearchFilter();
-		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
-		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
-		Mockito.when(searchUtil.getSearchFilterFromLegacyRequestForRepositorySearch(request, xAssetService.sortFields)).thenReturn(filter);
-		Mockito.when(serviceREST.getServices(filter)).thenReturn(ret);
-		Mockito.when(serviceUtil.rangerServiceListToPublicObjectList(ret)).thenReturn(vXRepositoryList);
-		VXRepositoryList dbVXRepositoryList = publicAPIs.searchRepositories(request);
-		vXLong.setValue(dbVXRepositoryList.getResultSize());
-		Assert.assertNotNull(vXLong);
-		Assert.assertEquals(vXLong.getValue(), 1);		
-		Mockito.verify(searchUtil).getSearchFilterFromLegacyRequestForRepositorySearch(request, xAssetService.sortFields);
-		Mockito.verify(serviceREST).getServices(filter);
-		Mockito.verify(serviceUtil).rangerServiceListToPublicObjectList(ret);
+
+		VXLong resultExpected = new VXLong();
+		resultExpected.setValue(4l);
+
+		Mockito.when(assetREST.countXAssets(request)).thenReturn(resultExpected);
+
+		VXLong resultActual = publicAPIs.countRepositories(request);
+
+		Assert.assertEquals(resultExpected.getValue(), resultActual.getValue());
+		Mockito.verify(assetREST).countXAssets(request);
 	}
 	
 	@Test
@@ -481,32 +474,17 @@
 	
 	@Test
 	public void test12countPolicies() throws Exception {
-		VXLong vXLong = new VXLong();
 		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-		RangerService service = rangerService();
-		RangerPolicy policy = rangerPolicy();
-		List<RangerPolicy> policyList = new ArrayList<RangerPolicy>();
-		policyList.add(policy);
-		VXPolicy vXPolicy = vXPolicy(policy, service);
-		List<VXPolicy> vXPolicies = new ArrayList<VXPolicy>();
-		vXPolicies.add(vXPolicy);
-		VXPolicyList vXPolicyList = new VXPolicyList(vXPolicies);
-		SearchFilter filter = new SearchFilter();
-		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
-		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
-		filter.setStartIndex(0);
-		filter.setMaxRows(10);
-		Mockito.when(searchUtil.getSearchFilterFromLegacyRequest(request, policyService.sortFields)).thenReturn(filter);
-		Mockito.when(serviceREST.getPolicies(filter)).thenReturn(policyList);
-		Mockito.when(serviceUtil.rangerPolicyListToPublic(policyList,filter)).thenReturn(vXPolicyList);
-		VXPolicyList dbVXPolicyList = publicAPIs.searchPolicies(request);
-		vXLong.setValue(dbVXPolicyList.getResultSize());
-		Assert.assertNotNull(vXLong);
-		Assert.assertEquals(vXLong.getValue(), 1);
-		Mockito.verify(searchUtil).getSearchFilterFromLegacyRequest(request, policyService.sortFields);
-		Mockito.verify(serviceREST).getPolicies(filter);
-		Mockito.verify(serviceUtil).rangerPolicyListToPublic(policyList,filter);
-		
+
+		VXLong resultExpected = new VXLong();
+		resultExpected.setValue(6l);
+
+		Mockito.when(assetREST.countXResources(request)).thenReturn(resultExpected);
+
+		VXLong resultActual = publicAPIs.countPolicies(request);
+
+		Assert.assertEquals(resultExpected.getValue(), resultActual.getValue());
+		Mockito.verify(assetREST).countXResources(request);
 	}
 
 }
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
index 2864cd3..5cf21d5 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
@@ -198,22 +198,23 @@
 	public void Test8countXAccessAudits() {
 		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 		searchCriteria.addParam("name", name);
-		VXLong vxLongExp = new VXLong();
-		vxLongExp.setValue(id);
+		VXAccessAuditList vxAuditList = new VXAccessAuditList();
+		vxAuditList.setTotalCount(id);
 
 		Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.any(),
 				(List<SortField>) Mockito.any())).thenReturn(searchCriteria);
-		Mockito.when(xAuditMgr.getXAccessAuditSearchCount(searchCriteria)).thenReturn(vxLongExp);
+		Mockito.when(auditREST.searchXAccessAudits(request)).thenReturn(vxAuditList);
+
+		VXLong vXLongExpect = new VXLong();
+		vXLongExpect.setValue(vxAuditList.getTotalCount());
 
 		VXLong vxLongAct = auditREST.countXAccessAudits(request);
 
 		Assert.assertNotNull(vxLongAct);
-		Assert.assertEquals(vxLongExp, vxLongAct);
-		Assert.assertEquals(vxLongExp.getValue(), vxLongAct.getValue());
+		Assert.assertEquals(vXLongExpect.getValue(), vxLongAct.getValue());
 
-		Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.any(),
+		Mockito.verify(searchUtil, Mockito.times(2)).extractCommonCriterias((HttpServletRequest) Mockito.any(),
 				(List<SortField>) Mockito.any());
-		Mockito.verify(xAuditMgr).getXAccessAuditSearchCount(searchCriteria);
 	}
 
 }