You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2018/06/12 04:43:31 UTC

ranger git commit: RANGER-2126 : Improve ranger coverage of unit tests for REST layer

Repository: ranger
Updated Branches:
  refs/heads/master 06d081356 -> f54723676


RANGER-2126 : Improve ranger coverage of unit tests for REST layer

Signed-off-by: Mehul Parikh <me...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/f5472367
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/f5472367
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/f5472367

Branch: refs/heads/master
Commit: f54723676d416001b6fb26f5ea281de0b392ec06
Parents: 06d0813
Author: Nikhil P <ni...@gmail.com>
Authored: Mon Jun 11 14:42:21 2018 +0530
Committer: Mehul Parikh <me...@apache.org>
Committed: Tue Jun 12 10:13:13 2018 +0530

----------------------------------------------------------------------
 .../org/apache/ranger/rest/TestServiceREST.java | 582 ++++++++++++-------
 1 file changed, 386 insertions(+), 196 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/f5472367/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
index df0a927..15ed862 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -33,10 +33,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.WebApplicationException;
 
-
-
-
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.ranger.admin.client.datatype.RESTResponse;
 import org.apache.ranger.biz.AssetMgr;
@@ -46,6 +42,7 @@ import org.apache.ranger.biz.ServiceMgr;
 import org.apache.ranger.biz.TagDBStore;
 import org.apache.ranger.biz.XUserMgr;
 import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.MessageEnums;
 import org.apache.ranger.common.RESTErrorUtil;
 import org.apache.ranger.common.RangerSearchUtil;
 import org.apache.ranger.common.RangerValidatorFactory;
@@ -57,13 +54,14 @@ import org.apache.ranger.db.XXServiceDao;
 import org.apache.ranger.db.XXServiceDefDao;
 import org.apache.ranger.entity.XXService;
 import org.apache.ranger.entity.XXServiceDef;
+import org.apache.ranger.plugin.model.RangerPluginInfo;
 import org.apache.ranger.plugin.model.RangerPolicy;
-import org.apache.ranger.plugin.model.RangerService;
-import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemAccess;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemCondition;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
+import org.apache.ranger.plugin.model.RangerService;
+import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumDef;
@@ -73,7 +71,9 @@ import org.apache.ranger.plugin.model.RangerServiceDef.RangerServiceConfigDef;
 import org.apache.ranger.plugin.model.validation.RangerPolicyValidator;
 import org.apache.ranger.plugin.model.validation.RangerServiceDefValidator;
 import org.apache.ranger.plugin.model.validation.RangerServiceValidator;
+import org.apache.ranger.plugin.policyengine.RangerPolicyEngineImpl;
 import org.apache.ranger.plugin.service.ResourceLookupContext;
+import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
 import org.apache.ranger.plugin.store.PList;
 import org.apache.ranger.plugin.util.GrantRevokeRequest;
 import org.apache.ranger.plugin.util.SearchFilter;
@@ -82,12 +82,14 @@ import org.apache.ranger.security.context.RangerContextHolder;
 import org.apache.ranger.security.context.RangerSecurityContext;
 import org.apache.ranger.service.RangerAuditFields;
 import org.apache.ranger.service.RangerDataHistService;
+import org.apache.ranger.service.RangerPluginInfoService;
 import org.apache.ranger.service.RangerPolicyLabelsService;
 import org.apache.ranger.service.RangerPolicyService;
 import org.apache.ranger.service.RangerServiceDefService;
 import org.apache.ranger.service.RangerServiceService;
 import org.apache.ranger.service.XUserService;
 import org.apache.ranger.view.RangerExportPolicyList;
+import org.apache.ranger.view.RangerPluginInfoList;
 import org.apache.ranger.view.RangerPolicyList;
 import org.apache.ranger.view.RangerServiceDefList;
 import org.apache.ranger.view.RangerServiceList;
@@ -101,7 +103,6 @@ import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.junit.runners.MethodSorters;
 import org.mockito.InjectMocks;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.junit.MockitoJUnitRunner;
@@ -200,6 +201,15 @@ public class TestServiceREST {
 	@Mock
     RangerPolicyLabelsService policyLabelsService;
 
+	@Mock
+    RangerPluginInfoService pluginInfoService;
+
+	@Mock
+	XXServiceDao xServiceDao;
+
+	@Mock
+	RangerPolicyEngineImpl rpImpl;
+
 	@Rule
 	public ExpectedException thrown = ExpectedException.none();
 
@@ -212,7 +222,7 @@ public class TestServiceREST {
 		currentUserSession.setUserAdmin(true);
 	}
 
-	private RangerServiceDef rangerServiceDef() {
+	public RangerServiceDef rangerServiceDef() {
 		List<RangerServiceConfigDef> configs = new ArrayList<RangerServiceConfigDef>();
 		List<RangerResourceDef> resources = new ArrayList<RangerResourceDef>();
 		List<RangerAccessTypeDef> accessTypes = new ArrayList<RangerAccessTypeDef>();
@@ -238,7 +248,7 @@ public class TestServiceREST {
 		return rangerServiceDef;
 	}
 
-	private RangerService rangerService() {
+	public RangerService rangerService() {
 		Map<String, String> configs = new HashMap<String, String>();
 		configs.put("username", "servicemgr");
 		configs.put("password", "servicemgr");
@@ -268,7 +278,7 @@ public class TestServiceREST {
 		return rangerService;
 	}
 
-	private RangerPolicy rangerPolicy() {
+	public RangerPolicy rangerPolicy() {
 		List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>();
 		List<String> users = new ArrayList<String>();
 		List<String> groups = new ArrayList<String>();
@@ -307,7 +317,7 @@ public class TestServiceREST {
 		return policy;
 	}
 
-	private XXServiceDef serviceDef() {
+	public XXServiceDef serviceDef() {
 		XXServiceDef xServiceDef = new XXServiceDef();
 		xServiceDef.setAddedByUserId(Id);
 		xServiceDef.setCreateTime(new Date());
@@ -325,7 +335,7 @@ public class TestServiceREST {
 		return xServiceDef;
 	}
 
-	private XXService xService() {
+	public XXService xService() {
 		XXService xService = new XXService();
 		xService.setAddedByUserId(Id);
 		xService.setCreateTime(new Date());
@@ -343,6 +353,19 @@ public class TestServiceREST {
 		return xService;
 	}
 
+	public ServicePolicies servicePolicies() {
+		ServicePolicies sp = new ServicePolicies();
+		sp.setAuditMode("auditMode");
+		RangerPolicy rangerPolicy = rangerPolicy();
+		List<RangerPolicy> rpolList = new ArrayList<RangerPolicy>();
+		rpolList.add(rangerPolicy);
+		sp.setPolicies(rpolList);
+		sp.setPolicyVersion(1l);
+		sp.setServiceName("serviceName");
+		sp.setServiceId(1l);
+		return sp;
+	}
+
 	@Test
 	public void test1createServiceDef() throws Exception {
 		RangerServiceDef rangerServiceDef = rangerServiceDef();
@@ -970,6 +993,7 @@ public class TestServiceREST {
 		Assert.assertNull(dbServicePolicies);
 	}
 
+
 	@Test
 	public void test25getPolicies() throws Exception {
 		List<RangerPolicy> ret = new ArrayList<RangerPolicy>();
@@ -1016,7 +1040,7 @@ public class TestServiceREST {
 		Mockito.when(bizUtil.isAdmin()).thenReturn(false);
 		Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn(userName);
 
-		Mockito.when(restErrorUtil.createRESTException(Matchers.anyInt(), Matchers.anyString(), Matchers.anyBoolean()))
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()))
 				.thenThrow(new WebApplicationException());
 		thrown.expect(WebApplicationException.class);
 	
@@ -1428,92 +1452,85 @@ public class TestServiceREST {
 	public void test44getPolicyLabels() throws Exception {
 		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 		SearchFilter filter = new SearchFilter();
-		Mockito.when(
-				searchUtil.getSearchFilter(request, policyLabelsService.sortFields))
-				.thenReturn(filter);
+		Mockito.when(searchUtil.getSearchFilter(request, policyLabelsService.sortFields)).thenReturn(filter);
 		List<String> ret = new ArrayList<String>();
-		Mockito.when(
-				svcStore.getPolicyLabels(filter))
-				.thenReturn(ret);
+		Mockito.when(svcStore.getPolicyLabels(filter)).thenReturn(ret);
 		ret = serviceREST.getPolicyLabels(request);
 		Assert.assertNotNull(ret);
-		Mockito.verify(searchUtil).getSearchFilter(request,
-				policyLabelsService.sortFields);
+		Mockito.verify(searchUtil).getSearchFilter(request, policyLabelsService.sortFields);
 	}
 
-        @Test
-        public void test45exportPoliciesInJSON() throws Exception {
-                HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-
-                List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
-
-                RangerPolicy rangerPolicy = rangerPolicy();
-                rangerPolicyList.add(rangerPolicy);
-                XXService xService = xService();
+	@Test
+	public void test45exportPoliciesInJSON() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
-                XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
-                XXServiceDef xServiceDef = serviceDef();
-                XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
 
-                request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
-                HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
-                SearchFilter filter = new SearchFilter();
+		RangerPolicy rangerPolicy = rangerPolicy();
+		rangerPolicyList.add(rangerPolicy);
+		XXService xService = xService();
 
-                Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
-                Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
-                Mockito.when(bizUtil.isAdmin()).thenReturn(true);
-                Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
-                Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
-                Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXServiceDef xServiceDef = serviceDef();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
 
-                Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
+		HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
+		SearchFilter filter = new SearchFilter();
 
+		Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
+		Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
+		Mockito.when(bizUtil.isAdmin()).thenReturn(true);
+		Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
+		Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
 
-                Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
-                Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
-                serviceREST.getPoliciesInJson(request, response, false);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
 
-                Mockito.verify(svcStore).getPoliciesInJson(rangerPolicyList, response);
-        }
+		Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
+		serviceREST.getPoliciesInJson(request, response, false);
 
-        @Test
-        public void test46exportPoliciesInCSV() throws Exception {
-                HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		Mockito.verify(svcStore).getPoliciesInJson(rangerPolicyList, response);
+	}
 
-                List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
+	@Test
+	public void test46exportPoliciesInCSV() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
-                RangerPolicy rangerPolicy = rangerPolicy();
-                rangerPolicyList.add(rangerPolicy);
-                XXService xService = xService();
+		List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
 
-                XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
-                XXServiceDef xServiceDef = serviceDef();
-                XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		rangerPolicyList.add(rangerPolicy);
+		XXService xService = xService();
 
-                request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
-                HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
-                SearchFilter filter = new SearchFilter();
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXServiceDef xServiceDef = serviceDef();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
 
-                Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
-                Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
-                Mockito.when(bizUtil.isAdmin()).thenReturn(true);
-                Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
-                Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
-                Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
+		HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
+		SearchFilter filter = new SearchFilter();
 
-                Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
+		Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
+		Mockito.when(bizUtil.isAdmin()).thenReturn(true);
+		Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
+		Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
 
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
 
-                Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
-                Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
-                serviceREST.getPoliciesInCsv(request, response);
+		Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
+		serviceREST.getPoliciesInCsv(request, response);
 
-                Mockito.verify(svcStore).getPoliciesInCSV(rangerPolicyList, response);
-        }
+		Mockito.verify(svcStore).getPoliciesInCSV(rangerPolicyList, response);
+	}
 
       /*  @Test
         public void test47WhenPolicyListIsEmpty() throws Exception {
@@ -1533,149 +1550,322 @@ public class TestServiceREST {
                 Assert.assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus());
                 }
 */
-        @Test
-        public void test48exportPoliciesInExcel() throws Exception {
-                HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+	@Test
+	public void test48exportPoliciesInExcel() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
-                List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
+		List<RangerPolicy> rangerPolicyList = new ArrayList<RangerPolicy>();
 
-                RangerPolicy rangerPolicy = rangerPolicy();
-                rangerPolicyList.add(rangerPolicy);
-                XXService xService = xService();
+		RangerPolicy rangerPolicy = rangerPolicy();
+		rangerPolicyList.add(rangerPolicy);
+		XXService xService = xService();
 
-                XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
-                XXServiceDef xServiceDef = serviceDef();
-                XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXServiceDef xServiceDef = serviceDef();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
 
-                request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
-                HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
-                SearchFilter filter = new SearchFilter();
+		request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
+		HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
+		SearchFilter filter = new SearchFilter();
 
-                Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
-                Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
-                Mockito.when(bizUtil.isAdmin()).thenReturn(true);
-                Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
-                Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
-                Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
-                Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
+		Mockito.when(svcStore.getPolicies(filter)).thenReturn(rangerPolicyList);
+		Mockito.when(bizUtil.isAdmin()).thenReturn(true);
+		Mockito.when(bizUtil.isKeyAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.getCurrentUserLoginId()).thenReturn("admin");
+		Mockito.when(bizUtil.isAuditAdmin()).thenReturn(false);
+		Mockito.when(bizUtil.isAuditKeyAdmin()).thenReturn(false);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
 
-                Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
 
+		Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
+		serviceREST.getPoliciesInExcel(request, response);
+		Mockito.verify(svcStore).getPoliciesInExcel(rangerPolicyList, response);
+	}
 
-                Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
-                Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
-                serviceREST.getPoliciesInExcel(request, response);
-                Mockito.verify(svcStore).getPoliciesInExcel(rangerPolicyList, response);
-        }
+	@SuppressWarnings("unchecked")
+	@Test
+	public void test49importPoliciesFromFileAllowingOverride() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
-        @SuppressWarnings("unchecked")
-        @Test
-        public void test49importPoliciesFromFileAllowingOverride() throws Exception{
-                HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		Map<String, RangerPolicy> policiesMap = new LinkedHashMap<String, RangerPolicy>();
 
-                Map<String, RangerPolicy> policiesMap = new LinkedHashMap<String, RangerPolicy>();
+		RangerPolicy rangerPolicy = rangerPolicy();
 
-                RangerPolicy rangerPolicy = rangerPolicy();
+		XXService xService = xService();
+		policiesMap.put("Name", rangerPolicy);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXServiceDef xServiceDef = serviceDef();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
 
-                XXService xService = xService();
-                policiesMap.put("Name", rangerPolicy);
-                XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
-                XXServiceDef xServiceDef = serviceDef();
-                XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		String PARAM_SERVICE_TYPE = "serviceType";
+		String serviceTypeList = "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop";
+		request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
+		SearchFilter filter = new SearchFilter();
+		filter.setParam("serviceType", "value");
+		Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
+
+		Mockito.when(request.getParameter(PARAM_SERVICE_TYPE)).thenReturn(serviceTypeList);
+		File jsonPolicyFile = new File(importPoliceTestFilePath);
+		InputStream uploadedInputStream = new FileInputStream(jsonPolicyFile);
+		FormDataContentDisposition fileDetail = FormDataContentDisposition.name("file")
+				.fileName(jsonPolicyFile.getName()).size(uploadedInputStream.toString().length()).build();
+		boolean isOverride = true;
+
+		Mockito.when(svcStore.createPolicyMap(Mockito.any(Map.class), Mockito.any(List.class), Mockito.any(List.class),
+				Mockito.any(RangerPolicy.class), Mockito.any(Map.class))).thenReturn(policiesMap);
+		Mockito.when(validatorFactory.getPolicyValidator(svcStore)).thenReturn(policyValidator);
+		Mockito.when(bizUtil.isAdmin()).thenReturn(true);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
 
-                String PARAM_SERVICE_TYPE = "serviceType";
-                String serviceTypeList = "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop";
-                request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
-                SearchFilter filter = new SearchFilter();
-                filter.setParam("serviceType", "value");
-                Mockito.when(
-                                searchUtil.getSearchFilter(request, policyService.sortFields))
-                                .thenReturn(filter);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
 
-                Mockito.when(request.getParameter(PARAM_SERVICE_TYPE)).thenReturn(serviceTypeList);
-                File jsonPolicyFile = new File(importPoliceTestFilePath);
-                InputStream uploadedInputStream = new FileInputStream(jsonPolicyFile);
-                FormDataContentDisposition fileDetail = FormDataContentDisposition
-                                                                                                .name("file")
-                                                                                                .fileName(jsonPolicyFile.getName())
-                                                                                                .size(uploadedInputStream.toString().length())
-                                                                                                .build();
-                boolean isOverride = true;
+		Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
 
-                Mockito.when(svcStore.createPolicyMap(Mockito.any(Map.class), Mockito.any(List.class), Mockito.any(List.class), Mockito.any(RangerPolicy.class), Mockito.any(Map.class))).thenReturn(policiesMap);
-                Mockito.when(validatorFactory.getPolicyValidator(svcStore)).thenReturn(policyValidator);
-                Mockito.when(bizUtil.isAdmin()).thenReturn(true);
-                Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		serviceREST.importPoliciesFromFile(request, null, uploadedInputStream, fileDetail, isOverride);
+		Mockito.verify(svcStore).createPolicy(rangerPolicy);
 
-                Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+	}
 
-                Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
-                Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
+	@SuppressWarnings("unchecked")
+	@Test
+	public void test50importPoliciesFromFileNotAllowingOverride() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
-                serviceREST.importPoliciesFromFile(request, null, uploadedInputStream, fileDetail, isOverride);
-                Mockito.verify(svcStore).createPolicy(rangerPolicy);
+		Map<String, RangerPolicy> policiesMap = new LinkedHashMap<String, RangerPolicy>();
 
+		RangerPolicy rangerPolicy = rangerPolicy();
 
-        }
+		XXService xService = xService();
+		policiesMap.put("Name", rangerPolicy);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXServiceDef xServiceDef = serviceDef();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
 
+		String PARAM_SERVICE_TYPE = "serviceType";
+		String serviceTypeList = "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop";
+		request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
+		SearchFilter filter = new SearchFilter();
+		filter.setParam("serviceType", "value");
+		Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter);
+
+		Mockito.when(request.getParameter(PARAM_SERVICE_TYPE)).thenReturn(serviceTypeList);
+		File jsonPolicyFile = new File(importPoliceTestFilePath);
+		InputStream uploadedInputStream = new FileInputStream(jsonPolicyFile);
+		FormDataContentDisposition fileDetail = FormDataContentDisposition.name("file")
+				.fileName(jsonPolicyFile.getName()).size(uploadedInputStream.toString().length()).build();
+		boolean isOverride = false;
+
+		Mockito.when(svcStore.createPolicyMap(Mockito.any(Map.class), Mockito.any(List.class), Mockito.any(List.class),
+				Mockito.any(RangerPolicy.class), Mockito.any(Map.class))).thenReturn(policiesMap);
+		Mockito.when(validatorFactory.getPolicyValidator(svcStore)).thenReturn(policyValidator);
+		Mockito.when(bizUtil.isAdmin()).thenReturn(true);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
 
-        @SuppressWarnings("unchecked")
-        @Test
-        public void test50importPoliciesFromFileNotAllowingOverride() throws Exception{
-                HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
 
-                Map<String, RangerPolicy> policiesMap = new LinkedHashMap<String, RangerPolicy>();
+		Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
 
-                RangerPolicy rangerPolicy = rangerPolicy();
+		serviceREST.importPoliciesFromFile(request, null, uploadedInputStream, fileDetail, isOverride);
+		Mockito.verify(svcStore).createPolicy(rangerPolicy);
 
-                XXService xService = xService();
-                policiesMap.put("Name", rangerPolicy);
-                XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
-                XXServiceDef xServiceDef = serviceDef();
-                XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+	}
+
+	@Test
+	public void test51getMetricByType() throws Exception {
+		String type = "usergroup";
+		String ret = "{\"groupCount\":1,\"userCountOfUserRole\":0,\"userCountOfKeyAdminRole\":1,"
+				+ "\"userCountOfSysAdminRole\":3,\"userCountOfKeyadminAuditorRole\":0,\"userCountOfSysAdminAuditorRole\":0,\"userTotalCount\":4}";
+		Mockito.when(svcStore.getMetricByType(type)).thenReturn(ret);
+		serviceREST.getMetricByType(type);
+		Mockito.verify(svcStore).getMetricByType(type);
+	}
+
+	@Test
+	public void test52deleteService() throws Exception {
+
+		RangerService rangerService = rangerService();
+		XXService xService = xService();
+		List<XXService> referringServices = new ArrayList<XXService>();
+		referringServices.add(xService);
+		EmbeddedServiceDefsUtil embeddedServiceDefsUtil = EmbeddedServiceDefsUtil.instance();
+		xService.setType(embeddedServiceDefsUtil.getTagServiceDefId());
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+
+		Mockito.when(validatorFactory.getServiceValidator(svcStore)).thenReturn(serviceValidator);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByTagServiceId(Mockito.anyLong())).thenReturn(referringServices);
+		Mockito.when(xServiceDao.getById(Id)).thenReturn(xService);
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.any()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+		serviceREST.deleteService(rangerService.getId());
+	}
+
+	@Test
+	public void test53getPoliciesForResource() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		List<RangerService> rsList = new ArrayList<RangerService>();
+		RangerService rs = rangerService();
+		rsList.add(rs);
+
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.any()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+
+		serviceREST.getPoliciesForResource("servicedefname", "servicename", request);
+	}
+
+	@Test
+	public void test54getPluginsInfo() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		PList<RangerPluginInfo> paginatedPluginsInfo = new PList<RangerPluginInfo>();
+		Mockito.when(searchUtil.getSearchFilter(request, pluginInfoService.getSortFields())).thenReturn(filter);
+		Mockito.when(pluginInfoService.searchRangerPluginInfo(filter)).thenReturn(paginatedPluginsInfo);
+		RangerPluginInfoList rPluginInfoList = serviceREST.getPluginsInfo(request);
+		Assert.assertNotNull(rPluginInfoList);
+		Mockito.verify(searchUtil).getSearchFilter(request, pluginInfoService.getSortFields());
+		Mockito.verify(pluginInfoService).searchRangerPluginInfo(filter);
+	}
+
+	@Test
+	public void test55getServicePoliciesIfUpdatedCatch() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		String serviceName = "HDFS_1";
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		Mockito.when(serviceUtil.isValidateHttpsAuthentication(serviceName, request)).thenReturn(true);
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+		serviceREST.getServicePoliciesIfUpdated(serviceName, lastKnownVersion, 0L, pluginId, "", request);
+	}
+
+	@Test
+	public void test56getServicePoliciesIfUpdated() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		ServicePolicies servicePolicies = servicePolicies();
+		String serviceName = "HDFS_1";
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		Mockito.when(serviceUtil.isValidateHttpsAuthentication(serviceName, request)).thenReturn(true);
+		Mockito.when(svcStore.getServicePoliciesIfUpdated(serviceName, lastKnownVersion)).thenReturn(servicePolicies);
+		ServicePolicies dbServicePolicies = serviceREST.getServicePoliciesIfUpdated(serviceName, lastKnownVersion, 0L,
+				pluginId, "", request);
+		Assert.assertNotNull(dbServicePolicies);
+	}
+
+	@Test
+	public void test57getSecureServicePoliciesIfUpdatedFail() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		XXService xService = xService();
+		XXServiceDef xServiceDef = serviceDef();
+		String serviceName = xService.getName();
+		RangerService rs = rangerService();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		Mockito.when(serviceUtil.isValidService(serviceName, request)).thenReturn(true);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(serviceName)).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(xServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef);
+		Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rs);
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+
+		serviceREST.getSecureServicePoliciesIfUpdated(serviceName, lastKnownVersion, 0L, pluginId, "", request);
+	}
+
+	@Test
+	public void test58getSecureServicePoliciesIfUpdatedAllowedFail() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		XXService xService = xService();
+		XXServiceDef xServiceDef = serviceDef();
+		xServiceDef.setImplclassname("org.apache.ranger.services.kms.RangerServiceKMS");
+		String serviceName = xService.getName();
+		RangerService rs = rangerService();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		Mockito.when(serviceUtil.isValidService(serviceName, request)).thenReturn(true);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(serviceName)).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(xServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef);
+		Mockito.when(svcStore.getServiceByNameForDP(serviceName)).thenReturn(rs);
+		Mockito.when(bizUtil.isUserAllowed(rs, ServiceREST.Allowed_User_List_For_Grant_Revoke)).thenReturn(true);
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+
+		serviceREST.getSecureServicePoliciesIfUpdated(serviceName, lastKnownVersion, 0L, pluginId, "", request);
+	}
+
+	@Test
+	public void test59getSecureServicePoliciesIfUpdatedSuccess() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		XXService xService = xService();
+		XXServiceDef xServiceDef = serviceDef();
+		xServiceDef.setImplclassname("org.apache.ranger.services.kms.RangerServiceKMS");
+		String serviceName = xService.getName();
+		RangerService rs = rangerService();
+		ServicePolicies sp = servicePolicies();
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		Mockito.when(serviceUtil.isValidService(serviceName, request)).thenReturn(true);
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(serviceName)).thenReturn(xService);
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(xServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef);
+		Mockito.when(svcStore.getServiceByNameForDP(serviceName)).thenReturn(rs);
+		Mockito.when(bizUtil.isUserAllowed(rs, ServiceREST.Allowed_User_List_For_Grant_Revoke)).thenReturn(true);
+		Mockito.when(svcStore.getServicePoliciesIfUpdated(serviceName, lastKnownVersion)).thenReturn(sp);
+		ServicePolicies dbServiceSecurePolicies = serviceREST.getSecureServicePoliciesIfUpdated(serviceName,
+				lastKnownVersion, 0L, pluginId, "", request);
+		Assert.assertNotNull(dbServiceSecurePolicies);
+		Mockito.verify(serviceUtil).isValidService(serviceName, request);
+		Mockito.verify(daoManager).getXXService();
+		Mockito.verify(xServiceDao).findByName(serviceName);
+		Mockito.verify(daoManager).getXXServiceDef();
+		Mockito.verify(xServiceDefDao).getById(xService.getType());
+		Mockito.verify(svcStore).getServiceByNameForDP(serviceName);
+		Mockito.verify(bizUtil).isUserAllowed(rs, ServiceREST.Allowed_User_List_For_Grant_Revoke);
+		Mockito.verify(svcStore).getServicePoliciesIfUpdated(serviceName, lastKnownVersion);
+	}
+
+	@Test
+	public void test60getPolicyFromEventTime() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+
+		String strdt = new Date().toString();
+		Set<String> userGroupsList = new HashSet<String>();
+		userGroupsList.add("group1");
+		userGroupsList.add("group2");
+		Mockito.when(request.getParameter("eventTime")).thenReturn(strdt);
+		Mockito.when(request.getParameter("policyId")).thenReturn("1");
+		RangerPolicy policy = new RangerPolicy();
+		Map<String, RangerPolicyResource> resources = new HashMap<String, RangerPolicy.RangerPolicyResource>();
+		policy.setService("services");
+		policy.setResources(resources);
+		Mockito.when(svcStore.getPolicyFromEventTime(strdt, 1l)).thenReturn(null);
+
+		Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()))
+				.thenThrow(new WebApplicationException());
+		thrown.expect(WebApplicationException.class);
+
+		serviceREST.getPolicyFromEventTime(request);
+	}
 
-                String PARAM_SERVICE_TYPE = "serviceType";
-                String serviceTypeList = "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop";
-                request.setAttribute("serviceType", "hdfs,hbase,hive,yarn,knox,storm,solr,kafka,nifi,atlas,sqoop");
-                SearchFilter filter = new SearchFilter();
-                filter.setParam("serviceType", "value");
-                Mockito.when(
-                                searchUtil.getSearchFilter(request, policyService.sortFields))
-                                .thenReturn(filter);
-
-                Mockito.when(request.getParameter(PARAM_SERVICE_TYPE)).thenReturn(serviceTypeList);
-                File jsonPolicyFile = new File(importPoliceTestFilePath);
-                InputStream uploadedInputStream = new FileInputStream(jsonPolicyFile);
-                FormDataContentDisposition fileDetail = FormDataContentDisposition
-                                                                                                .name("file")
-                                                                                                .fileName(jsonPolicyFile.getName())
-                                                                                                .size(uploadedInputStream.toString().length())
-                                                                                                .build();
-                boolean isOverride = false;
-
-                Mockito.when(svcStore.createPolicyMap(Mockito.any(Map.class), Mockito.any(List.class), Mockito.any(List.class), Mockito.any(RangerPolicy.class), Mockito.any(Map.class))).thenReturn(policiesMap);
-                Mockito.when(validatorFactory.getPolicyValidator(svcStore)).thenReturn(policyValidator);
-                Mockito.when(bizUtil.isAdmin()).thenReturn(true);
-                Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
-
-                Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
-
-                Mockito.when(daoManager.getXXService().findByName("HDFS_1-1-20150316062453")).thenReturn(xService);
-                Mockito.when(daoManager.getXXServiceDef().getById(xService.getType())).thenReturn(xServiceDef);
-
-                serviceREST.importPoliciesFromFile(request, null, uploadedInputStream, fileDetail, isOverride);
-                Mockito.verify(svcStore).createPolicy(rangerPolicy);
-
-
-        }
-        @Test
-        public void test51getMetricByType() throws Exception {
-			String type = "usergroup";
-			String ret = "{\"groupCount\":1,\"userCountOfUserRole\":0,\"userCountOfKeyAdminRole\":1,"
-					+ "\"userCountOfSysAdminRole\":3,\"userCountOfKeyadminAuditorRole\":0,\"userCountOfSysAdminAuditorRole\":0,\"userTotalCount\":4}";
-			Mockito.when(svcStore.getMetricByType(type)).thenReturn(ret);
-			serviceREST.getMetricByType(type);
-			Mockito.verify(svcStore).getMetricByType(type);
-        }
 }