Repository: ranger Updated Branches: refs/heads/ranger-1 d31212177 -> 1c9bcc7fa
RANGER-2171 : Unit Test cases to cover policy operations from service admin user Signed-off-by: Mehul Parikh <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/1c9bcc7f Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/1c9bcc7f Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/1c9bcc7f Branch: refs/heads/ranger-1 Commit: 1c9bcc7fa91e5e2c25a5392db607050d2ed5e514 Parents: d312121 Author: Nikhil P <[email protected]> Authored: Tue Aug 7 12:47:22 2018 +0530 Committer: Mehul Parikh <[email protected]> Committed: Tue Aug 7 16:20:05 2018 +0530 ---------------------------------------------------------------------- .../apache/ranger/biz/TestServiceDBStore.java | 41 ++++++++++++++++ .../org/apache/ranger/rest/TestServiceREST.java | 50 ++++++++++++++++++++ 2 files changed, 91 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/1c9bcc7f/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java index b0b0110..cb496ea 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java @@ -217,6 +217,7 @@ public class TestServiceDBStore { configs.put("dfs.secondary.namenode.kerberos.principal", ""); configs.put("hadoop.rpc.protection", "Privacy"); configs.put("commonNameForCertificate", ""); + configs.put("service.admin.users", "testServiceAdminUser1,testServiceAdminUser2"); RangerService rangerService = new RangerService(); rangerService.setId(Id); @@ -2457,4 +2458,44 @@ public class TestServiceDBStore { Mockito.when(serviceDefService.searchRangerServiceDefs(Mockito.any(SearchFilter.class))).thenReturn(svcDefList); serviceDBStore.getMetricByType(type); } + + @Test + public void test48IsServiceAdminUserTrue() throws Exception{ + String configName = "service.admin.users"; + boolean result=false; + RangerService rService= rangerService(); + XXServiceConfigMapDao xxServiceConfigMapDao = Mockito.mock(XXServiceConfigMapDao.class); + XXServiceConfigMap xxServiceConfigMap = new XXServiceConfigMap(); + xxServiceConfigMap.setConfigkey(configName); + xxServiceConfigMap.setConfigvalue(rService.getConfigs().get(configName)); + + Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn(xxServiceConfigMapDao); + Mockito.when(xxServiceConfigMapDao.findByServiceNameAndConfigKey(rService.getName(), configName)).thenReturn(xxServiceConfigMap); + + result = serviceDBStore.isServiceAdminUser(rService.getName(),"testServiceAdminUser2"); + + Assert.assertTrue(result); + Mockito.verify(daoManager).getXXServiceConfigMap(); + Mockito.verify(xxServiceConfigMapDao).findByServiceNameAndConfigKey(rService.getName(), configName); + } + + @Test + public void test49IsServiceAdminUserFalse() throws Exception{ + String configName = "service.admin.users"; + boolean result=false; + RangerService rService= rangerService(); + XXServiceConfigMapDao xxServiceConfigMapDao = Mockito.mock(XXServiceConfigMapDao.class); + XXServiceConfigMap xxServiceConfigMap = new XXServiceConfigMap(); + xxServiceConfigMap.setConfigkey(configName); + xxServiceConfigMap.setConfigvalue(rService.getConfigs().get(configName)); + + Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn(xxServiceConfigMapDao); + Mockito.when(xxServiceConfigMapDao.findByServiceNameAndConfigKey(rService.getName(), configName)).thenReturn(xxServiceConfigMap); + + result = serviceDBStore.isServiceAdminUser(rService.getName(),"testServiceAdminUser3"); + + Assert.assertFalse(result); + Mockito.verify(daoManager).getXXServiceConfigMap(); + Mockito.verify(xxServiceConfigMapDao).findByServiceNameAndConfigKey(rService.getName(), configName); + } } http://git-wip-us.apache.org/repos/asf/ranger/blob/1c9bcc7f/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 e669c03..15ff20f 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 @@ -1021,6 +1021,56 @@ public class TestServiceREST { Mockito.verify(svcStore).getServices(filter); } + + @Test + public void test27getPoliciesWithoutServiceAdmin() throws Exception { + HttpServletRequest request = Mockito.mock(HttpServletRequest.class); + SearchFilter filter = new SearchFilter(); + List<RangerPolicy> policies = new ArrayList<RangerPolicy>(); + policies.add(rangerPolicy()); + filter.setParam(SearchFilter.POLICY_NAME, "policyName"); + filter.setParam(SearchFilter.SERVICE_NAME, "serviceName"); + Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter); + Mockito.when(svcStore.getPolicies(filter)).thenReturn(policies); + RangerPolicyList dbRangerPolicy = serviceREST.getPolicies(request); + Assert.assertNotNull(dbRangerPolicy); + /*here we are not setting service admin role,hence we will not get any policy without the service admin roles*/ + Assert.assertEquals(dbRangerPolicy.getListSize(), 0); + Mockito.verify(searchUtil).getSearchFilter(request, + policyService.sortFields); + } + + @Test + public void test28getPoliciesWithServiceAdmin() throws Exception { + HttpServletRequest request = Mockito.mock(HttpServletRequest.class); + RangerService rs = rangerService(); + SearchFilter filter = new SearchFilter(); + XXService xs = Mockito.mock(XXService.class); + xs.setType(3L); + XXServiceDao xSDao = Mockito.mock(XXServiceDao.class); + List<RangerPolicy> policies = new ArrayList<RangerPolicy>(); + RangerPolicy rPol=rangerPolicy(); + policies.add(rPol); + filter.setParam(SearchFilter.POLICY_NAME, "policyName"); + filter.setParam(SearchFilter.SERVICE_NAME, "serviceName"); + Mockito.when(searchUtil.getSearchFilter(request, policyService.sortFields)).thenReturn(filter); + Mockito.when(svcStore.getPolicies(filter)).thenReturn(policies); + /*here we are setting serviceAdminRole, so we will get the required policy with serviceAdmi role*/ + Mockito.when(daoManager.getXXService()).thenReturn(xSDao); + Mockito.when(svcStore.isServiceAdminUser(rPol.getService(), null)).thenReturn(true); + Mockito.when(xSDao.findByName(rPol.getName())).thenReturn(xs); + RangerPolicyList dbRangerPolicy = serviceREST.getPolicies(request); + Assert.assertNotNull(dbRangerPolicy); + Assert.assertEquals(dbRangerPolicy.getListSize(), 1); + Mockito.verify(searchUtil).getSearchFilter(request, + policyService.sortFields); + Mockito.verify(svcStore).getPolicies(filter); + Mockito.verify(svcStore).isServiceAdminUser(rPol.getService(), null); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xSDao).findByName(rPol.getName()); + } + + @Test public void test30getPolicyFromEventTime() throws Exception { HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
