You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ve...@apache.org on 2015/04/09 20:49:41 UTC

[3/5] incubator-ranger git commit: RANGER-203 : Add unit test cases for Pluggable Service model

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/376d3249/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
new file mode 100644
index 0000000..b523552
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -0,0 +1,872 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.rest;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
+import org.apache.ranger.admin.client.datatype.RESTResponse;
+import org.apache.ranger.biz.RangerBizUtil;
+import org.apache.ranger.biz.ServiceDBStore;
+import org.apache.ranger.biz.ServiceMgr;
+import org.apache.ranger.biz.XUserMgr;
+import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.RangerSearchUtil;
+import org.apache.ranger.common.ServiceUtil;
+import org.apache.ranger.common.StringUtil;
+import org.apache.ranger.common.UserSessionBase;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.entity.XXDBBase;
+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.RangerServiceDef.RangerAccessTypeDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerPolicyConditionDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerResourceDef;
+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.model.validation.RangerValidatorFactory;
+import org.apache.ranger.plugin.service.ResourceLookupContext;
+import org.apache.ranger.plugin.util.GrantRevokeRequest;
+import org.apache.ranger.plugin.util.SearchFilter;
+import org.apache.ranger.plugin.util.ServicePolicies;
+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.RangerPolicyService;
+import org.apache.ranger.service.RangerServiceDefService;
+import org.apache.ranger.service.RangerServiceService;
+import org.apache.ranger.service.XUserService;
+import org.apache.ranger.view.RangerPolicyList;
+import org.apache.ranger.view.RangerServiceDefList;
+import org.apache.ranger.view.RangerServiceList;
+import org.apache.ranger.view.VXResponse;
+import org.apache.ranger.view.VXString;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestServiceREST {
+
+	private static Long Id = 8L;
+
+	@InjectMocks
+	ServiceREST serviceREST = new ServiceREST();
+
+	@Mock
+	RangerValidatorFactory validatorFactory;
+
+	@Mock
+	RangerDaoManager daoManager;
+
+	@Mock
+	ServiceDBStore svcStore;
+
+	@Mock
+	RangerServiceService svcService;
+
+	@Mock
+	RangerDataHistService dataHistService;
+
+	@Mock
+	RangerServiceDefService serviceDefService;
+
+	@Mock
+	RangerPolicyService policyService;
+
+	@Mock
+	StringUtil stringUtil;
+
+	@Mock
+	XUserService xUserService;
+
+	@Mock
+	XUserMgr xUserMgr;
+
+	@Mock
+	RangerAuditFields<XXDBBase> rangerAuditFields;
+
+	@Mock
+	ContextUtil contextUtil;
+
+	@Mock
+	RangerBizUtil bizUtil;
+
+	@Mock
+	RESTErrorUtil restErrorUtil;
+
+	@Mock
+	RangerServiceDefValidator serviceDefValidator;
+
+	@Mock
+	RangerServiceValidator serviceValidator;
+
+	@Mock
+	RangerPolicyValidator policyValidator;
+
+	@Mock
+	ServiceMgr serviceMgr;
+
+	@Mock
+	VXResponse vXResponse;
+
+	@Mock
+	ServiceUtil serviceUtil;
+
+	@Mock
+	RangerSearchUtil searchUtil;
+
+	@Mock
+	StringUtils stringUtils;
+
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+
+	public void setup() {
+		RangerSecurityContext context = new RangerSecurityContext();
+		context.setUserSession(new UserSessionBase());
+		RangerContextHolder.setSecurityContext(context);
+		UserSessionBase currentUserSession = ContextUtil
+				.getCurrentUserSession();
+		currentUserSession.setUserAdmin(true);
+	}
+
+	private RangerServiceDef rangerServiceDef() {
+		List<RangerServiceConfigDef> configs = new ArrayList<RangerServiceConfigDef>();
+		List<RangerResourceDef> resources = new ArrayList<RangerResourceDef>();
+		List<RangerAccessTypeDef> accessTypes = new ArrayList<RangerAccessTypeDef>();
+		List<RangerPolicyConditionDef> policyConditions = new ArrayList<RangerPolicyConditionDef>();
+		List<RangerContextEnricherDef> contextEnrichers = new ArrayList<RangerContextEnricherDef>();
+		List<RangerEnumDef> enums = new ArrayList<RangerEnumDef>();
+
+		RangerServiceDef rangerServiceDef = new RangerServiceDef();
+		rangerServiceDef.setId(Id);
+		rangerServiceDef.setImplClass("RangerServiceHdfs");
+		rangerServiceDef.setLabel("HDFS Repository");
+		rangerServiceDef.setDescription("HDFS Repository");
+		rangerServiceDef.setRbKeyDescription(null);
+		rangerServiceDef.setUpdatedBy("Admin");
+		rangerServiceDef.setUpdateTime(new Date());
+		rangerServiceDef.setConfigs(configs);
+		rangerServiceDef.setResources(resources);
+		rangerServiceDef.setAccessTypes(accessTypes);
+		rangerServiceDef.setPolicyConditions(policyConditions);
+		rangerServiceDef.setContextEnrichers(contextEnrichers);
+		rangerServiceDef.setEnums(enums);
+
+		return rangerServiceDef;
+	}
+
+	private RangerService rangerService() {
+		Map<String, String> configs = new HashMap<String, String>();
+		configs.put("username", "servicemgr");
+		configs.put("password", "servicemgr");
+		configs.put("namenode", "servicemgr");
+		configs.put("hadoop.security.authorization", "No");
+		configs.put("hadoop.security.authentication", "Simple");
+		configs.put("hadoop.security.auth_to_local", "");
+		configs.put("dfs.datanode.kerberos.principal", "");
+		configs.put("dfs.namenode.kerberos.principal", "");
+		configs.put("dfs.secondary.namenode.kerberos.principal", "");
+		configs.put("hadoop.rpc.protection", "Privacy");
+		configs.put("commonNameForCertificate", "");
+
+		RangerService rangerService = new RangerService();
+		rangerService.setId(Id);
+		rangerService.setConfigs(configs);
+		rangerService.setCreateTime(new Date());
+		rangerService.setDescription("service policy");
+		rangerService.setGuid("1427365526516_835_0");
+		rangerService.setIsEnabled(true);
+		rangerService.setName("HDFS_1");
+		rangerService.setPolicyUpdateTime(new Date());
+		rangerService.setType("1");
+		rangerService.setUpdatedBy("Admin");
+		rangerService.setUpdateTime(new Date());
+
+		return rangerService;
+	}
+
+	private RangerPolicy rangerPolicy() {
+		List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>();
+		List<String> users = new ArrayList<String>();
+		List<String> groups = new ArrayList<String>();
+		List<RangerPolicyItemCondition> conditions = new ArrayList<RangerPolicyItemCondition>();
+		List<RangerPolicyItem> policyItems = new ArrayList<RangerPolicyItem>();
+		RangerPolicyItem rangerPolicyItem = new RangerPolicyItem();
+		rangerPolicyItem.setAccesses(accesses);
+		rangerPolicyItem.setConditions(conditions);
+		rangerPolicyItem.setGroups(groups);
+		rangerPolicyItem.setUsers(users);
+		rangerPolicyItem.setDelegateAdmin(false);
+
+		policyItems.add(rangerPolicyItem);
+
+		Map<String, RangerPolicyResource> policyResource = new HashMap<String, RangerPolicyResource>();
+		RangerPolicyResource rangerPolicyResource = new RangerPolicyResource();
+		rangerPolicyResource.setIsExcludes(true);
+		rangerPolicyResource.setIsRecursive(true);
+		rangerPolicyResource.setValue("1");
+		rangerPolicyResource.setValues(users);
+		RangerPolicy policy = new RangerPolicy();
+		policy.setId(Id);
+		policy.setCreateTime(new Date());
+		policy.setDescription("policy");
+		policy.setGuid("policyguid");
+		policy.setIsEnabled(true);
+		policy.setName("HDFS_1-1-20150316062453");
+		policy.setUpdatedBy("Admin");
+		policy.setUpdateTime(new Date());
+		policy.setService("HDFS_1-1-20150316062453");
+		policy.setIsAuditEnabled(true);
+		policy.setPolicyItems(policyItems);
+		policy.setResources(policyResource);
+
+		return policy;
+	}
+
+	@Test
+	public void test1createServiceDef() throws Exception {
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+
+		Mockito.when(
+				svcStore.createServiceDef((RangerServiceDef) Mockito
+						.anyObject())).thenReturn(rangerServiceDef);
+
+		RangerServiceDef dbRangerServiceDef = serviceREST
+				.createServiceDef(rangerServiceDef);
+		Assert.assertNotNull(dbRangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef, rangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef.getId(),
+				rangerServiceDef.getId());
+		Assert.assertEquals(dbRangerServiceDef.getName(),
+				rangerServiceDef.getName());
+		Assert.assertEquals(dbRangerServiceDef.getImplClass(),
+				rangerServiceDef.getImplClass());
+		Assert.assertEquals(dbRangerServiceDef.getLabel(),
+				rangerServiceDef.getLabel());
+		Assert.assertEquals(dbRangerServiceDef.getDescription(),
+				rangerServiceDef.getDescription());
+		Assert.assertEquals(dbRangerServiceDef.getRbKeyDescription(),
+				rangerServiceDef.getRbKeyDescription());
+		Assert.assertEquals(dbRangerServiceDef.getUpdatedBy(),
+				rangerServiceDef.getUpdatedBy());
+		Assert.assertEquals(dbRangerServiceDef.getUpdateTime(),
+				rangerServiceDef.getUpdateTime());
+		Assert.assertEquals(dbRangerServiceDef.getVersion(),
+				rangerServiceDef.getVersion());
+		Assert.assertEquals(dbRangerServiceDef.getConfigs(),
+				rangerServiceDef.getConfigs());
+
+		Mockito.verify(validatorFactory).getServiceDefValidator(svcStore);
+		Mockito.verify(svcStore).createServiceDef(rangerServiceDef);
+	}
+
+	@Test
+	public void test2updateServiceDef() throws Exception {
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+
+		Mockito.when(
+				svcStore.updateServiceDef((RangerServiceDef) Mockito
+						.anyObject())).thenReturn(rangerServiceDef);
+
+		RangerServiceDef dbRangerServiceDef = serviceREST
+				.updateServiceDef(rangerServiceDef);
+		Assert.assertNotNull(dbRangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef, rangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef.getId(),
+				rangerServiceDef.getId());
+		Assert.assertEquals(dbRangerServiceDef.getName(),
+				rangerServiceDef.getName());
+		Assert.assertEquals(dbRangerServiceDef.getImplClass(),
+				rangerServiceDef.getImplClass());
+		Assert.assertEquals(dbRangerServiceDef.getLabel(),
+				rangerServiceDef.getLabel());
+		Assert.assertEquals(dbRangerServiceDef.getDescription(),
+				rangerServiceDef.getDescription());
+		Assert.assertEquals(dbRangerServiceDef.getRbKeyDescription(),
+				rangerServiceDef.getRbKeyDescription());
+		Assert.assertEquals(dbRangerServiceDef.getUpdatedBy(),
+				rangerServiceDef.getUpdatedBy());
+		Assert.assertEquals(dbRangerServiceDef.getUpdateTime(),
+				rangerServiceDef.getUpdateTime());
+		Assert.assertEquals(dbRangerServiceDef.getVersion(),
+				rangerServiceDef.getVersion());
+		Assert.assertEquals(dbRangerServiceDef.getConfigs(),
+				rangerServiceDef.getConfigs());
+
+		Mockito.verify(validatorFactory).getServiceDefValidator(svcStore);
+		Mockito.verify(svcStore).updateServiceDef(rangerServiceDef);
+	}
+
+	@Test
+	public void test3deleteServiceDef() throws Exception {
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+		serviceREST.deleteServiceDef(rangerServiceDef.getId());
+		Mockito.verify(validatorFactory).getServiceDefValidator(svcStore);
+	}
+
+	@Test
+	public void test4getServiceDefById() throws Exception {
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+		Mockito.when(svcStore.getServiceDef(rangerServiceDef.getId()))
+				.thenReturn(rangerServiceDef);
+		RangerServiceDef dbRangerServiceDef = serviceREST
+				.getServiceDef(rangerServiceDef.getId());
+		Assert.assertNotNull(dbRangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef.getId(),
+				rangerServiceDef.getId());
+		Mockito.verify(svcStore).getServiceDef(rangerServiceDef.getId());
+	}
+
+	@Test
+	public void test5getServiceDefByName() throws Exception {
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+		Mockito.when(svcStore.getServiceDefByName(rangerServiceDef.getName()))
+				.thenReturn(rangerServiceDef);
+		RangerServiceDef dbRangerServiceDef = serviceREST
+				.getServiceDefByName(rangerServiceDef.getName());
+		Assert.assertNotNull(dbRangerServiceDef);
+		Assert.assertEquals(dbRangerServiceDef.getName(),
+				rangerServiceDef.getName());
+		Mockito.verify(svcStore)
+				.getServiceDefByName(rangerServiceDef.getName());
+	}
+
+	@Test
+	public void test6getServiceDefs() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		RangerServiceDefList dbRangerServiceDef = serviceREST
+				.getServiceDefs(request);
+		Assert.assertNull(dbRangerServiceDef);
+	}
+
+	@Test
+	public void test7createService() throws Exception {
+
+		RangerService rangerService = rangerService();
+		Mockito.when(validatorFactory.getServiceValidator(svcStore))
+				.thenReturn(serviceValidator);
+		Mockito.when(
+				svcStore.createService((RangerService) Mockito.anyObject()))
+				.thenReturn(rangerService);
+
+		RangerService dbRangerService = serviceREST
+				.createService(rangerService);
+		Assert.assertNotNull(dbRangerService);
+		Assert.assertEquals(rangerService, dbRangerService);
+		Assert.assertEquals(rangerService.getId(), dbRangerService.getId());
+		Assert.assertEquals(rangerService.getConfigs(),
+				dbRangerService.getConfigs());
+		Assert.assertEquals(rangerService.getDescription(),
+				dbRangerService.getDescription());
+		Assert.assertEquals(rangerService.getGuid(), dbRangerService.getGuid());
+		Assert.assertEquals(rangerService.getName(), dbRangerService.getName());
+		Assert.assertEquals(rangerService.getPolicyVersion(),
+				dbRangerService.getPolicyVersion());
+		Assert.assertEquals(rangerService.getType(), dbRangerService.getType());
+		Assert.assertEquals(rangerService.getVersion(),
+				dbRangerService.getVersion());
+		Assert.assertEquals(rangerService.getCreateTime(),
+				dbRangerService.getCreateTime());
+		Assert.assertEquals(rangerService.getUpdateTime(),
+				dbRangerService.getUpdateTime());
+		Assert.assertEquals(rangerService.getUpdatedBy(),
+				dbRangerService.getUpdatedBy());
+
+		Mockito.verify(validatorFactory).getServiceValidator(svcStore);
+		Mockito.verify(svcStore).createService(rangerService);
+	}
+
+	@Test
+	public void test8updateServiceDef() throws Exception {
+
+		RangerService rangerService = rangerService();
+		Mockito.when(validatorFactory.getServiceValidator(svcStore))
+				.thenReturn(serviceValidator);
+
+		Mockito.when(
+				svcStore.updateService((RangerService) Mockito.anyObject()))
+				.thenReturn(rangerService);
+
+		RangerService dbRangerService = serviceREST
+				.updateService(rangerService);
+		Assert.assertNotNull(dbRangerService);
+		Assert.assertNotNull(dbRangerService);
+		Assert.assertEquals(rangerService, dbRangerService);
+		Assert.assertEquals(rangerService.getId(), dbRangerService.getId());
+		Assert.assertEquals(rangerService.getConfigs(),
+				dbRangerService.getConfigs());
+		Assert.assertEquals(rangerService.getDescription(),
+				dbRangerService.getDescription());
+		Assert.assertEquals(rangerService.getGuid(), dbRangerService.getGuid());
+		Assert.assertEquals(rangerService.getName(), dbRangerService.getName());
+		Assert.assertEquals(rangerService.getPolicyVersion(),
+				dbRangerService.getPolicyVersion());
+		Assert.assertEquals(rangerService.getType(), dbRangerService.getType());
+		Assert.assertEquals(rangerService.getVersion(),
+				dbRangerService.getVersion());
+		Assert.assertEquals(rangerService.getCreateTime(),
+				dbRangerService.getCreateTime());
+		Assert.assertEquals(rangerService.getUpdateTime(),
+				dbRangerService.getUpdateTime());
+		Assert.assertEquals(rangerService.getUpdatedBy(),
+				dbRangerService.getUpdatedBy());
+		Mockito.verify(validatorFactory).getServiceValidator(svcStore);
+		Mockito.verify(svcStore).updateService(rangerService);
+	}
+
+	@Test
+	public void test9deleteService() throws Exception {
+
+		RangerService rangerService = rangerService();
+		Mockito.when(validatorFactory.getServiceValidator(svcStore))
+				.thenReturn(serviceValidator);
+		serviceREST.deleteService(rangerService.getId());
+
+		Mockito.verify(validatorFactory).getServiceValidator(svcStore);
+	}
+
+	@Test
+	public void test10getServiceById() throws Exception {
+		RangerService rangerService = rangerService();
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+		serviceREST.deleteServiceDef(rangerServiceDef.getId());
+		Mockito.verify(validatorFactory).getServiceDefValidator(svcStore);
+		Mockito.when(svcStore.getService(rangerService.getId())).thenReturn(
+				rangerService);
+		RangerService dbRangerService = serviceREST.getService(rangerService
+				.getId());
+		Assert.assertNotNull(dbRangerService);
+		Assert.assertEquals(dbRangerService.getId(), dbRangerService.getId());
+		Mockito.verify(svcStore).getService(dbRangerService.getId());
+	}
+
+	@Test
+	public void test11getServiceByName() throws Exception {
+		RangerService rangerService = rangerService();
+		Mockito.when(svcStore.getServiceByName(rangerService.getName()))
+				.thenReturn(rangerService);
+		RangerService dbRangerService = serviceREST
+				.getServiceByName(rangerService.getName());
+		Assert.assertNotNull(dbRangerService);
+		Assert.assertEquals(dbRangerService.getName(),
+				dbRangerService.getName());
+		Mockito.verify(svcStore).getServiceByName(dbRangerService.getName());
+	}
+
+	@Test
+	public void test12deleteServiceDef() throws Exception {
+		RangerService rangerService = rangerService();
+		Mockito.when(serviceMgr.validateConfig(rangerService, svcStore))
+				.thenReturn(vXResponse);
+		VXResponse dbVXResponse = serviceREST.validateConfig(rangerService);
+		Assert.assertNotNull(dbVXResponse);
+		RangerServiceDef rangerServiceDef = rangerServiceDef();
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+		serviceREST.deleteServiceDef(rangerServiceDef.getId());
+		Mockito.verify(validatorFactory).getServiceDefValidator(svcStore);
+		Mockito.verify(serviceMgr).validateConfig(rangerService, svcStore);
+	}
+
+	@Test
+	public void test13lookupResource() throws Exception {
+		String serviceName = "HDFS_1";
+		ResourceLookupContext context = new ResourceLookupContext();
+		context.setResourceName(serviceName);
+		context.setUserInput("HDFS");
+		List<String> list = serviceREST.lookupResource(serviceName, context);
+		Assert.assertNotNull(list);
+	}
+
+	@Test
+	public void test14grantAccess() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		String serviceName = "HDFS_1";
+		GrantRevokeRequest grantRequestObj = new GrantRevokeRequest();
+		grantRequestObj.setAccessTypes(null);
+		grantRequestObj.setDelegateAdmin(true);
+		grantRequestObj.setEnableAudit(true);
+		grantRequestObj.setGrantor("read");
+		grantRequestObj.setIsRecursive(true);
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+		Mockito.when(
+				serviceUtil.isValidateHttpsAuthentication(serviceName, request))
+				.thenReturn(false);
+		RESTResponse restResponse = serviceREST.grantAccess(serviceName,
+				grantRequestObj, request);
+		Assert.assertNotNull(restResponse);
+		Mockito.verify(serviceUtil).isValidateHttpsAuthentication(serviceName,
+				request);
+	}
+
+	@Test
+	public void test15revokeAccess() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		String serviceName = "HDFS_1";
+		Set<String> userList = new HashSet<String>();
+		userList.add("user1");
+		userList.add("user2");
+		userList.add("user3");
+		Set<String> groupList = new HashSet<String>();
+		groupList.add("group1");
+		groupList.add("group2");
+		groupList.add("group3");
+		GrantRevokeRequest revokeRequest = new GrantRevokeRequest();
+		revokeRequest.setDelegateAdmin(true);
+		revokeRequest.setEnableAudit(true);
+		revokeRequest.setGrantor("read");
+		revokeRequest.setGroups(groupList);
+		revokeRequest.setUsers(userList);
+
+		Mockito.when(validatorFactory.getServiceDefValidator(svcStore))
+				.thenReturn(serviceDefValidator);
+
+		RESTResponse restResponse = serviceREST.revokeAccess(serviceName,
+				revokeRequest, request);
+		Assert.assertNotNull(restResponse);
+
+	}
+
+	@Test
+	public void test16createPolicy() throws Exception {
+		RangerPolicy rangerPolicy = rangerPolicy();
+		Mockito.when(svcStore.createPolicy(rangerPolicy)).thenReturn(
+				rangerPolicy);
+
+		RangerPolicy dbRangerPolicy = serviceREST.createPolicy(rangerPolicy);
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), rangerPolicy.getId());
+		Assert.assertEquals(dbRangerPolicy.getDescription(),
+				rangerPolicy.getDescription());
+		Assert.assertEquals(dbRangerPolicy.getGuid(), rangerPolicy.getGuid());
+		Assert.assertEquals(dbRangerPolicy.getName(), rangerPolicy.getName());
+		Assert.assertEquals(dbRangerPolicy.getVersion(),
+				rangerPolicy.getVersion());
+		Assert.assertEquals(dbRangerPolicy.getCreateTime(),
+				rangerPolicy.getCreateTime());
+		Assert.assertEquals(dbRangerPolicy.getUpdateTime(),
+				rangerPolicy.getUpdateTime());
+		Assert.assertEquals(dbRangerPolicy.getUpdatedBy(),
+				rangerPolicy.getUpdatedBy());
+		Assert.assertEquals(dbRangerPolicy.getService(),
+				rangerPolicy.getService());
+		Assert.assertEquals(dbRangerPolicy.getIsAuditEnabled(),
+				rangerPolicy.getIsAuditEnabled());
+		Assert.assertEquals(dbRangerPolicy.getPolicyItems(),
+				rangerPolicy.getPolicyItems());
+		Assert.assertEquals(dbRangerPolicy.getResources(),
+				rangerPolicy.getResources());
+		Mockito.verify(svcStore).createPolicy(rangerPolicy);
+	}
+
+	@Test
+	public void test17updatePolicy() throws Exception {
+		RangerPolicy rangerPolicy = rangerPolicy();
+		Mockito.when(svcStore.updatePolicy(rangerPolicy)).thenReturn(
+				rangerPolicy);
+		RangerPolicy dbRangerPolicy = serviceREST.updatePolicy(rangerPolicy);
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), rangerPolicy.getId());
+		Assert.assertEquals(dbRangerPolicy.getDescription(),
+				rangerPolicy.getDescription());
+		Assert.assertEquals(dbRangerPolicy.getGuid(), rangerPolicy.getGuid());
+		Assert.assertEquals(dbRangerPolicy.getName(), rangerPolicy.getName());
+		Assert.assertEquals(dbRangerPolicy.getVersion(),
+				rangerPolicy.getVersion());
+		Assert.assertEquals(dbRangerPolicy.getCreateTime(),
+				rangerPolicy.getCreateTime());
+		Assert.assertEquals(dbRangerPolicy.getUpdateTime(),
+				rangerPolicy.getUpdateTime());
+		Assert.assertEquals(dbRangerPolicy.getUpdatedBy(),
+				rangerPolicy.getUpdatedBy());
+		Assert.assertEquals(dbRangerPolicy.getService(),
+				rangerPolicy.getService());
+		Assert.assertEquals(dbRangerPolicy.getIsAuditEnabled(),
+				rangerPolicy.getIsAuditEnabled());
+		Assert.assertEquals(dbRangerPolicy.getPolicyItems(),
+				rangerPolicy.getPolicyItems());
+		Assert.assertEquals(dbRangerPolicy.getResources(),
+				rangerPolicy.getResources());
+		Mockito.verify(svcStore).updatePolicy(rangerPolicy);
+	}
+
+	@Test
+	public void test18deletePolicy() throws Exception {
+		RangerPolicy rangerPolicy = rangerPolicy();
+
+		Mockito.when(validatorFactory.getPolicyValidator(svcStore)).thenReturn(
+				policyValidator);
+		serviceREST.deletePolicy(rangerPolicy.getId());
+		Mockito.verify(validatorFactory).getPolicyValidator(svcStore);
+	}
+
+	@Test
+	public void test19getPolicy() throws Exception {
+		RangerPolicy rangerPolicy = rangerPolicy();
+		Mockito.when(svcStore.getPolicy(rangerPolicy.getId())).thenReturn(
+				rangerPolicy);
+		RangerPolicy dbRangerPolicy = serviceREST.getPolicy(rangerPolicy
+				.getId());
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), rangerPolicy.getId());
+		Mockito.verify(svcStore).getPolicy(rangerPolicy.getId());
+	}
+
+	@Test
+	public void test20getPolicies() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				searchUtil.getSearchFilter(request, policyService.sortFields))
+				.thenReturn(filter);
+		RangerPolicyList dbRangerPolicy = serviceREST.getPolicies(request);
+		Assert.assertNull(dbRangerPolicy);
+		Mockito.verify(searchUtil).getSearchFilter(request,
+				policyService.sortFields);
+	}
+
+	@Test
+	public void test21countPolicies() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		RangerPolicyList ret  = Mockito.mock(RangerPolicyList.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				searchUtil.getSearchFilter(request, policyService.sortFields))
+				.thenReturn(filter);
+		
+		Mockito.when(
+				svcStore.getPaginatedPolicies(filter))
+				.thenReturn(ret);
+		
+		Long data = serviceREST.countPolicies(request);
+		Assert.assertNotNull(data);
+		Mockito.verify(searchUtil).getSearchFilter(request,
+				policyService.sortFields);
+		Mockito.verify(svcStore).getPaginatedPolicies(filter);
+	}
+
+	
+
+	@Test
+	public void test22getServicePoliciesById() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		
+		RangerPolicyList ret  = Mockito.mock(RangerPolicyList.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				searchUtil.getSearchFilter(request, policyService.sortFields))
+				.thenReturn(filter);
+		
+		Mockito.when(
+				svcStore.getPaginatedServicePolicies(Id,filter))
+				.thenReturn(ret);
+		
+		
+		RangerPolicyList dbRangerPolicy = serviceREST.getServicePolicies(
+				rangerPolicy.getId(), request);
+		Assert.assertNotNull(dbRangerPolicy);
+		Mockito.verify(searchUtil).getSearchFilter(request,
+				policyService.sortFields);
+		Mockito.verify(svcStore).getPaginatedServicePolicies(Id,filter);
+	}
+
+	@Test
+	public void test23getServicePoliciesByName() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		RangerPolicyList ret  = Mockito.mock(RangerPolicyList.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				searchUtil.getSearchFilter(request, policyService.sortFields))
+				.thenReturn(filter);
+		
+		
+		Mockito.when(
+				svcStore.getPaginatedServicePolicies(rangerPolicy.getName(),filter))
+				.thenReturn(ret);
+		
+		RangerPolicyList dbRangerPolicy = serviceREST.getServicePolicies(
+				rangerPolicy.getName(), request);
+		Assert.assertNotNull(dbRangerPolicy);
+	}
+
+	@Test
+	public void test24getServicePoliciesIfUpdated() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		String serviceName = "HDFS_1";
+		Long lastKnownVersion = 1L;
+		String pluginId = "1";
+		ServicePolicies dbServicePolicies = serviceREST
+				.getServicePoliciesIfUpdated(serviceName, lastKnownVersion,
+						pluginId, request);
+		Assert.assertNull(dbServicePolicies);
+	}
+
+	@Test
+	public void test25getPolicies() throws Exception {
+		List<RangerPolicy> ret = new ArrayList<RangerPolicy>();
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				svcStore.getPolicies(filter))
+				.thenReturn(ret);
+		
+		
+		List<RangerPolicy> dbRangerPolicyList = serviceREST.getPolicies(filter);
+		Assert.assertNotNull(dbRangerPolicyList);
+		Mockito.verify(svcStore).getPolicies(filter);
+		
+	}
+
+	@Test
+	public void test26getServices() throws Exception {
+		List<RangerService> ret = new ArrayList<RangerService>();
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				svcStore.getServices(filter))
+				.thenReturn(ret);
+		
+		List<RangerService> dbRangerService = serviceREST.getServices(filter);				
+		Assert.assertNotNull(dbRangerService);
+		Mockito.verify(svcStore).getServices(filter);
+	}
+
+	@Test
+	public void test30getPolicyFromEventTime() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+
+		Mockito.when(request.getParameter("eventTime")).thenReturn(
+				new Date().toString());
+		Mockito.when(request.getParameter("policyId")).thenReturn("1");
+
+		RangerPolicy dbRangerPolicy = serviceREST
+				.getPolicyFromEventTime(request);
+		Assert.assertNull(dbRangerPolicy);
+		Mockito.verify(request).getParameter("eventTime");
+		Mockito.verify(request).getParameter("policyId");
+	}
+
+	@Test
+	public void test31getServices() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		RangerServiceList dbRangerService = serviceREST.getServices(request);
+		Assert.assertNull(dbRangerService);
+	}
+	
+	@Test
+	public void test32getPolicyVersionList() throws Exception {
+		VXString vXString = new VXString();
+		vXString.setValue("1");
+		Mockito.when(svcStore.getPolicyVersionList(Id)).thenReturn(vXString);
+		
+		VXString dbVXString = serviceREST.getPolicyVersionList(Id);
+		Assert.assertNotNull(dbVXString);
+		Mockito.verify(svcStore).getPolicyVersionList(Id);
+	}
+	
+	@Test
+	public void test33getPolicyForVersionNumber() throws Exception {
+		RangerPolicy rangerPolicy = rangerPolicy();		
+		Mockito.when(svcStore.getPolicyForVersionNumber(Id,1)).thenReturn(rangerPolicy);
+		RangerPolicy dbRangerPolicy = serviceREST.getPolicyForVersionNumber(Id, 1);
+		Assert.assertNotNull(dbRangerPolicy);
+		Mockito.verify(svcStore).getPolicyForVersionNumber(Id,1);
+	}
+	
+	@Test
+	public void test34countServices() throws Exception {
+		HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+		RangerServiceList ret  = Mockito.mock(RangerServiceList.class);
+		SearchFilter filter = new SearchFilter();
+		filter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+		Mockito.when(
+				searchUtil.getSearchFilter(request, policyService.sortFields))
+				.thenReturn(filter);
+		
+		Mockito.when(
+				svcStore.getPaginatedServices(filter))
+				.thenReturn(ret);	
+		Long data = serviceREST.countServices(request);
+		Assert.assertNotNull(data);
+		Mockito.verify(searchUtil).getSearchFilter(request, policyService.sortFields);
+		Mockito.verify(svcStore).getPaginatedServices(filter);
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/376d3249/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyService.java b/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyService.java
new file mode 100644
index 0000000..bac5261
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyService.java
@@ -0,0 +1,1007 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.JSONUtil;
+import org.apache.ranger.common.StringUtil;
+import org.apache.ranger.common.UserSessionBase;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.db.XXAccessTypeDefDao;
+import org.apache.ranger.db.XXGroupDao;
+import org.apache.ranger.db.XXPolicyConditionDefDao;
+import org.apache.ranger.db.XXPolicyItemAccessDao;
+import org.apache.ranger.db.XXPolicyItemConditionDao;
+import org.apache.ranger.db.XXPolicyItemDao;
+import org.apache.ranger.db.XXPolicyResourceDao;
+import org.apache.ranger.db.XXPolicyResourceMapDao;
+import org.apache.ranger.db.XXPortalUserDao;
+import org.apache.ranger.db.XXResourceDefDao;
+import org.apache.ranger.db.XXServiceConfigMapDao;
+import org.apache.ranger.db.XXServiceDao;
+import org.apache.ranger.db.XXServiceDefDao;
+import org.apache.ranger.db.XXUserDao;
+import org.apache.ranger.entity.XXAccessTypeDef;
+import org.apache.ranger.entity.XXPolicy;
+import org.apache.ranger.entity.XXPolicyConditionDef;
+import org.apache.ranger.entity.XXPolicyItem;
+import org.apache.ranger.entity.XXPolicyItemAccess;
+import org.apache.ranger.entity.XXPolicyItemCondition;
+import org.apache.ranger.entity.XXPolicyResource;
+import org.apache.ranger.entity.XXPolicyResourceMap;
+import org.apache.ranger.entity.XXPortalUser;
+import org.apache.ranger.entity.XXResourceDef;
+import org.apache.ranger.entity.XXService;
+import org.apache.ranger.entity.XXServiceConfigMap;
+import org.apache.ranger.entity.XXServiceDef;
+import org.apache.ranger.entity.XXTrxLog;
+import org.apache.ranger.plugin.model.RangerPolicy;
+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.security.context.RangerContextHolder;
+import org.apache.ranger.security.context.RangerSecurityContext;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestRangerPolicyService {
+
+	private static Long Id = 8L;
+
+	@InjectMocks
+	RangerPolicyService policyService = new RangerPolicyService();
+
+	@Mock
+	RangerDaoManager daoManager;
+
+	@Mock
+	RangerServiceService svcService;
+
+	@Mock
+	JSONUtil jsonUtil;
+
+	@Mock
+	RangerServiceDefService serviceDefService;
+
+	@Mock
+	StringUtil stringUtil;
+
+	@Mock
+	XUserService xUserService;
+
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+
+	public void setup() {
+		RangerSecurityContext context = new RangerSecurityContext();
+		context.setUserSession(new UserSessionBase());
+		RangerContextHolder.setSecurityContext(context);
+		UserSessionBase currentUserSession = ContextUtil
+				.getCurrentUserSession();
+		currentUserSession.setUserAdmin(true);
+	}
+
+	private RangerPolicy rangerPolicy() {
+		List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>();
+		List<String> users = new ArrayList<String>();
+		List<String> groups = new ArrayList<String>();
+		List<RangerPolicyItemCondition> conditions = new ArrayList<RangerPolicyItemCondition>();
+		List<RangerPolicyItem> policyItems = new ArrayList<RangerPolicyItem>();
+		RangerPolicyItem rangerPolicyItem = new RangerPolicyItem();
+		rangerPolicyItem.setAccesses(accesses);
+		rangerPolicyItem.setConditions(conditions);
+		rangerPolicyItem.setGroups(groups);
+		rangerPolicyItem.setUsers(users);
+		rangerPolicyItem.setDelegateAdmin(false);
+
+		policyItems.add(rangerPolicyItem);
+
+		Map<String, RangerPolicyResource> policyResource = new HashMap<String, RangerPolicyResource>();
+		RangerPolicyResource rangerPolicyResource = new RangerPolicyResource();
+		rangerPolicyResource.setIsExcludes(true);
+		rangerPolicyResource.setIsRecursive(true);
+		rangerPolicyResource.setValue("1");
+		rangerPolicyResource.setValues(users);
+		RangerPolicy policy = new RangerPolicy();
+		policy.setId(Id);
+		policy.setCreateTime(new Date());
+		policy.setDescription("policy");
+		policy.setGuid("policyguid");
+		policy.setIsEnabled(true);
+		policy.setName("HDFS_1-1-20150316062453");
+		policy.setUpdatedBy("Admin");
+		policy.setUpdateTime(new Date());
+		policy.setService("HDFS_1-1-20150316062453");
+		policy.setIsAuditEnabled(true);
+		policy.setPolicyItems(policyItems);
+		policy.setResources(policyResource);
+
+		return policy;
+	}
+
+	private XXPolicy policy() {
+		XXPolicy xxPolicy = new XXPolicy();
+		xxPolicy.setId(Id);
+		xxPolicy.setName("HDFS_1-1-20150316062453");
+		xxPolicy.setAddedByUserId(Id);
+		xxPolicy.setCreateTime(new Date());
+		xxPolicy.setDescription("test");
+		xxPolicy.setIsAuditEnabled(false);
+		xxPolicy.setIsEnabled(false);
+		xxPolicy.setService(1L);
+		xxPolicy.setUpdatedByUserId(Id);
+		xxPolicy.setUpdateTime(new Date());
+		return xxPolicy;
+	}
+
+	private XXService xService() {
+		XXService xService = new XXService();
+		xService.setAddedByUserId(Id);
+		xService.setCreateTime(new Date());
+		xService.setDescription("Hdfs service");
+		xService.setGuid("serviceguid");
+		xService.setId(Id);
+		xService.setIsEnabled(true);
+		xService.setName("Hdfs");
+		xService.setPolicyUpdateTime(new Date());
+		xService.setPolicyVersion(1L);
+		xService.setType(1L);
+		xService.setUpdatedByUserId(Id);
+		xService.setUpdateTime(new Date());
+		xService.setVersion(1L);
+
+		return xService;
+	}
+
+	@Test
+	public void test1ValidateForCreate() {
+		RangerPolicy rangerPolicy = rangerPolicy();
+		policyService.validateForCreate(rangerPolicy);
+		Assert.assertNotNull(rangerPolicy);
+	}
+
+	@Test
+	public void test2ValidateForUpdate() {
+		RangerPolicy rangerPolicy = rangerPolicy();
+		XXPolicy policy = policy();
+		policyService.validateForUpdate(rangerPolicy, policy);
+
+		Assert.assertNotNull(rangerPolicy);
+	}
+
+	@Test
+	public void test3PopulateViewBean() {
+		XXServiceConfigMapDao xServiceConfigMapDao = Mockito
+				.mock(XXServiceConfigMapDao.class);
+		XXPortalUserDao xPortalUserDao = Mockito.mock(XXPortalUserDao.class);
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXResourceDefDao xResourceDefDao = Mockito.mock(XXResourceDefDao.class);
+		XXPolicyResourceDao xPolicyResourceDao = Mockito
+				.mock(XXPolicyResourceDao.class);
+		XXPolicyResourceMapDao xPolicyResourceMapDao = Mockito
+				.mock(XXPolicyResourceMapDao.class);
+		XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class);
+		XXPolicyItemAccessDao xPolicyItemAccessDao = Mockito
+				.mock(XXPolicyItemAccessDao.class);
+		XXAccessTypeDefDao xAccessTypeDefDao = Mockito
+				.mock(XXAccessTypeDefDao.class);
+		XXAccessTypeDef xAccessTypeDef = Mockito.mock(XXAccessTypeDef.class);
+		XXPolicyConditionDefDao xPolicyConditionDefDao = Mockito
+				.mock(XXPolicyConditionDefDao.class);
+		XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
+				.mock(XXPolicyItemConditionDao.class);
+
+		XXUserDao xUserDao = Mockito.mock(XXUserDao.class);
+		XXGroupDao xGroupDao = Mockito.mock(XXGroupDao.class);
+
+		XXPolicy policy = policy();
+
+		XXService xService = xService();
+		String name = "fdfdfds";
+
+		List<XXServiceConfigMap> svcConfigMapList = new ArrayList<XXServiceConfigMap>();
+		XXServiceConfigMap xConfMap = new XXServiceConfigMap();
+		xConfMap.setAddedByUserId(null);
+		xConfMap.setConfigkey(name);
+		xConfMap.setConfigvalue(name);
+		xConfMap.setCreateTime(new Date());
+		xConfMap.setServiceId(null);
+
+		xConfMap.setUpdatedByUserId(null);
+		xConfMap.setUpdateTime(new Date());
+		svcConfigMapList.add(xConfMap);
+
+		XXPortalUser tUser = new XXPortalUser();
+		tUser.setAddedByUserId(Id);
+		tUser.setCreateTime(new Date());
+		tUser.setEmailAddress("test@gmail.com");
+		tUser.setFirstName(name);
+		tUser.setId(Id);
+		tUser.setLastName(name);
+
+		XXServiceDef xServiceDef = new XXServiceDef();
+		xServiceDef.setAddedByUserId(Id);
+		xServiceDef.setCreateTime(new Date());
+		xServiceDef.setDescription("test");
+		xServiceDef.setGuid("1427365526516_835_0");
+		xServiceDef.setId(Id);
+
+		List<XXResourceDef> resDefList = new ArrayList<XXResourceDef>();
+		XXResourceDef resourceDef = new XXResourceDef();
+		resourceDef.setAddedByUserId(Id);
+		resourceDef.setCreateTime(new Date());
+		resourceDef.setDefid(Id);
+		resourceDef.setDescription("test");
+		resourceDef.setId(Id);
+		resDefList.add(resourceDef);
+
+		XXPolicyResource policyResource = new XXPolicyResource();
+		policyResource.setId(Id);
+		policyResource.setCreateTime(new Date());
+		policyResource.setAddedByUserId(Id);
+		policyResource.setIsExcludes(false);
+		policyResource.setIsRecursive(false);
+		policyResource.setPolicyId(Id);
+		policyResource.setResDefId(Id);
+		policyResource.setUpdatedByUserId(Id);
+		policyResource.setUpdateTime(new Date());
+
+		List<XXPolicyResourceMap> policyResourceMapList = new ArrayList<XXPolicyResourceMap>();
+		XXPolicyResourceMap policyResourceMap = new XXPolicyResourceMap();
+		policyResourceMap.setAddedByUserId(Id);
+		policyResourceMap.setCreateTime(new Date());
+		policyResourceMap.setId(Id);
+		policyResourceMap.setOrder(1);
+		policyResourceMap.setResourceId(Id);
+		policyResourceMap.setUpdatedByUserId(Id);
+		policyResourceMap.setUpdateTime(new Date());
+		policyResourceMap.setValue("1L");
+		policyResourceMapList.add(policyResourceMap);
+
+		List<XXPolicyItem> xPolicyItemList = new ArrayList<XXPolicyItem>();
+		XXPolicyItem xPolicyItem = new XXPolicyItem();
+		xPolicyItem.setDelegateAdmin(false);
+		xPolicyItem.setAddedByUserId(null);
+		xPolicyItem.setCreateTime(new Date());
+		xPolicyItem.setGUID(null);
+		xPolicyItem.setId(Id);
+		xPolicyItem.setOrder(null);
+		xPolicyItem.setPolicyId(Id);
+		xPolicyItem.setUpdatedByUserId(null);
+		xPolicyItem.setUpdateTime(new Date());
+		xPolicyItemList.add(xPolicyItem);
+
+		List<XXPolicyItemAccess> policyItemAccessList = new ArrayList<XXPolicyItemAccess>();
+		XXPolicyItemAccess policyItemAccess = new XXPolicyItemAccess();
+		policyItemAccess.setAddedByUserId(Id);
+		policyItemAccess.setCreateTime(new Date());
+		policyItemAccess.setPolicyitemid(Id);
+		policyItemAccess.setId(Id);
+		policyItemAccess.setOrder(1);
+		policyItemAccess.setUpdatedByUserId(Id);
+		policyItemAccess.setUpdateTime(new Date());
+		policyItemAccessList.add(policyItemAccess);
+
+		List<XXPolicyConditionDef> xConditionDefList = new ArrayList<XXPolicyConditionDef>();
+		XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
+		policyConditionDefObj.setAddedByUserId(Id);
+		policyConditionDefObj.setCreateTime(new Date());
+		policyConditionDefObj.setDefid(Id);
+		policyConditionDefObj.setDescription("policy conditio");
+		policyConditionDefObj.setId(Id);
+		policyConditionDefObj.setName(name);
+		policyConditionDefObj.setOrder(1);
+		policyConditionDefObj.setLabel("label");
+		xConditionDefList.add(policyConditionDefObj);
+
+		List<XXPolicyItemCondition> policyItemConditionList = new ArrayList<XXPolicyItemCondition>();
+		XXPolicyItemCondition policyItemCondition = new XXPolicyItemCondition();
+		policyItemCondition.setAddedByUserId(Id);
+		policyItemCondition.setCreateTime(new Date());
+		policyItemCondition.setType(1L);
+		policyItemCondition.setId(Id);
+		policyItemCondition.setOrder(1);
+		policyItemCondition.setPolicyItemId(Id);
+		policyItemCondition.setUpdatedByUserId(Id);
+		policyItemCondition.setUpdateTime(new Date());
+		policyItemConditionList.add(policyItemCondition);
+
+		List<String> usersList = new ArrayList<String>();
+		List<String> groupsList = new ArrayList<String>();
+		Mockito.when(daoManager.getXXPortalUser()).thenReturn(xPortalUserDao);
+		Mockito.when(xPortalUserDao.getById(Id)).thenReturn(tUser);
+
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(xServiceDefDao.getById(xService.getType())).thenReturn(
+				xServiceDef);
+
+		Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn(
+				xServiceConfigMapDao);
+		Mockito.when(xServiceConfigMapDao.findByServiceId(xService.getId()))
+				.thenReturn(svcConfigMapList);
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.getById(policy.getService())).thenReturn(
+				xService);
+
+		Mockito.when(daoManager.getXXResourceDef()).thenReturn(xResourceDefDao);
+		Mockito.when(xResourceDefDao.findByPolicyId(policy.getId()))
+				.thenReturn(resDefList);
+
+		Mockito.when(daoManager.getXXPolicyResource()).thenReturn(
+				xPolicyResourceDao);
+		Mockito.when(
+				xPolicyResourceDao.findByResDefIdAndPolicyId(
+						resourceDef.getId(), policy.getId())).thenReturn(
+				policyResource);
+
+		Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn(
+				xPolicyResourceMapDao);
+		Mockito.when(
+				xPolicyResourceMapDao.findByPolicyResId(policyResource.getId()))
+				.thenReturn(policyResourceMapList);
+
+		Mockito.when(daoManager.getXXPolicyItem()).thenReturn(xPolicyItemDao);
+		Mockito.when(xPolicyItemDao.findByPolicyId(policy.getId())).thenReturn(
+				xPolicyItemList);
+
+		Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn(
+				xPolicyItemAccessDao);
+		Mockito.when(
+				xPolicyItemAccessDao.findByPolicyItemId(policyItemAccess
+						.getId())).thenReturn(policyItemAccessList);
+
+		Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn(
+				xAccessTypeDefDao);
+		Mockito.when(xAccessTypeDefDao.getById(policyItemAccess.getType()))
+				.thenReturn(xAccessTypeDef);
+
+		Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn(
+				xPolicyConditionDefDao);
+		Mockito.when(
+				xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(xConditionDefList);
+
+		Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
+				xPolicyItemConditionDao);
+		Mockito.when(
+				xPolicyItemConditionDao.findByPolicyItemAndDefId(
+						xPolicyItem.getId(), policyConditionDefObj.getId()))
+				.thenReturn(policyItemConditionList);
+
+		Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao);
+		Mockito.when(xUserDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(usersList);
+
+		Mockito.when(daoManager.getXXGroup()).thenReturn(xGroupDao);
+		Mockito.when(xGroupDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(groupsList);
+
+		RangerPolicy dbRangerPolicy = policyService.populateViewBean(policy);
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), policy.getId());
+		Assert.assertEquals(dbRangerPolicy.getName(), policy.getName());
+
+		Assert.assertEquals(dbRangerPolicy.getDescription(),
+				policy.getDescription());
+		Assert.assertEquals(dbRangerPolicy.getGuid(), policy.getGuid());
+
+		Assert.assertEquals(dbRangerPolicy.getVersion(), policy.getVersion());
+		Assert.assertEquals(dbRangerPolicy.getIsAuditEnabled(),
+				policy.getIsAuditEnabled());
+
+		Mockito.verify(daoManager).getXXService();
+		Mockito.verify(daoManager).getXXResourceDef();
+		Mockito.verify(daoManager).getXXPolicyResource();
+		Mockito.verify(daoManager).getXXPolicyResourceMap();
+		Mockito.verify(daoManager).getXXPolicyItem();
+		Mockito.verify(daoManager).getXXPolicyItemAccess();
+		Mockito.verify(daoManager).getXXAccessTypeDef();
+		Mockito.verify(daoManager).getXXPolicyConditionDef();
+		Mockito.verify(daoManager).getXXPolicyItemCondition();
+		Mockito.verify(daoManager).getXXUser();
+		Mockito.verify(daoManager).getXXGroup();
+	}
+
+	@Test
+	public void test4GetPolicyItemListForXXPolicy() {
+
+		XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class);
+		XXPolicyItemAccessDao xPolicyItemAccessDao = Mockito
+				.mock(XXPolicyItemAccessDao.class);
+		XXUserDao xUserDao = Mockito.mock(XXUserDao.class);
+		XXGroupDao xGroupDao = Mockito.mock(XXGroupDao.class);
+		XXAccessTypeDefDao xAccessTypeDefDao = Mockito
+				.mock(XXAccessTypeDefDao.class);
+		XXAccessTypeDef xAccessTypeDef = Mockito.mock(XXAccessTypeDef.class);
+		XXPolicyConditionDefDao xPolicyConditionDefDao = Mockito
+				.mock(XXPolicyConditionDefDao.class);
+		XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
+				.mock(XXPolicyItemConditionDao.class);
+
+		XXPolicy policy = policy();
+		String name = "fdfdfds";
+
+		List<XXPolicyItem> xPolicyItemList = new ArrayList<XXPolicyItem>();
+		XXPolicyItem xPolicyItem = new XXPolicyItem();
+		xPolicyItem.setDelegateAdmin(false);
+		xPolicyItem.setAddedByUserId(null);
+		xPolicyItem.setCreateTime(new Date());
+		xPolicyItem.setGUID(null);
+		xPolicyItem.setId(Id);
+		xPolicyItem.setOrder(null);
+		xPolicyItem.setPolicyId(Id);
+		xPolicyItem.setUpdatedByUserId(null);
+		xPolicyItem.setUpdateTime(new Date());
+		xPolicyItemList.add(xPolicyItem);
+
+		List<XXPolicyItemAccess> policyItemAccessList = new ArrayList<XXPolicyItemAccess>();
+		XXPolicyItemAccess policyItemAccess = new XXPolicyItemAccess();
+		policyItemAccess.setAddedByUserId(Id);
+		policyItemAccess.setCreateTime(new Date());
+		policyItemAccess.setPolicyitemid(Id);
+		policyItemAccess.setId(Id);
+		policyItemAccess.setOrder(1);
+		policyItemAccess.setUpdatedByUserId(Id);
+		policyItemAccess.setUpdateTime(new Date());
+		policyItemAccessList.add(policyItemAccess);
+
+		List<XXResourceDef> resDefList = new ArrayList<XXResourceDef>();
+		XXResourceDef resourceDef = new XXResourceDef();
+		resourceDef.setAddedByUserId(Id);
+		resourceDef.setCreateTime(new Date());
+		resourceDef.setDefid(Id);
+		resourceDef.setDescription("test");
+		resourceDef.setId(Id);
+		resDefList.add(resourceDef);
+
+		XXPolicyResource policyResource = new XXPolicyResource();
+		policyResource.setId(Id);
+		policyResource.setCreateTime(new Date());
+		policyResource.setAddedByUserId(Id);
+		policyResource.setIsExcludes(false);
+		policyResource.setIsRecursive(false);
+		policyResource.setPolicyId(Id);
+		policyResource.setResDefId(Id);
+		policyResource.setUpdatedByUserId(Id);
+		policyResource.setUpdateTime(new Date());
+
+		List<XXPolicyResourceMap> policyResourceMapList = new ArrayList<XXPolicyResourceMap>();
+		XXPolicyResourceMap policyResourceMap = new XXPolicyResourceMap();
+		policyResourceMap.setAddedByUserId(Id);
+		policyResourceMap.setCreateTime(new Date());
+		policyResourceMap.setId(Id);
+		policyResourceMap.setOrder(1);
+		policyResourceMap.setResourceId(Id);
+		policyResourceMap.setUpdatedByUserId(Id);
+		policyResourceMap.setUpdateTime(new Date());
+		policyResourceMap.setValue("1L");
+		policyResourceMapList.add(policyResourceMap);
+
+		List<XXPolicyConditionDef> xConditionDefList = new ArrayList<XXPolicyConditionDef>();
+		XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
+		policyConditionDefObj.setAddedByUserId(Id);
+		policyConditionDefObj.setCreateTime(new Date());
+		policyConditionDefObj.setDefid(Id);
+		policyConditionDefObj.setDescription("policy conditio");
+		policyConditionDefObj.setId(Id);
+		policyConditionDefObj.setName(name);
+		policyConditionDefObj.setOrder(1);
+		policyConditionDefObj.setLabel("label");
+		xConditionDefList.add(policyConditionDefObj);
+
+		List<XXPolicyItemCondition> policyItemConditionList = new ArrayList<XXPolicyItemCondition>();
+		XXPolicyItemCondition policyItemCondition = new XXPolicyItemCondition();
+		policyItemCondition.setAddedByUserId(Id);
+		policyItemCondition.setCreateTime(new Date());
+		policyItemCondition.setType(1L);
+		policyItemCondition.setId(Id);
+		policyItemCondition.setOrder(1);
+		policyItemCondition.setPolicyItemId(Id);
+		policyItemCondition.setUpdatedByUserId(Id);
+		policyItemCondition.setUpdateTime(new Date());
+		policyItemConditionList.add(policyItemCondition);
+
+		List<String> usersList = new ArrayList<String>();
+		List<String> groupsList = new ArrayList<String>();
+
+		Mockito.when(daoManager.getXXPolicyItem()).thenReturn(xPolicyItemDao);
+		Mockito.when(xPolicyItemDao.findByPolicyId(policy.getId())).thenReturn(
+				xPolicyItemList);
+
+		Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn(
+				xPolicyItemAccessDao);
+		Mockito.when(xPolicyItemAccessDao.findByPolicyItemId(policy.getId()))
+				.thenReturn(policyItemAccessList);
+
+		Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn(
+				xAccessTypeDefDao);
+		Mockito.when(xAccessTypeDefDao.getById(policyItemAccess.getType()))
+				.thenReturn(xAccessTypeDef);
+
+		Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn(
+				xPolicyConditionDefDao);
+		Mockito.when(
+				xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(xConditionDefList);
+
+		Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
+				xPolicyItemConditionDao);
+		Mockito.when(
+				xPolicyItemConditionDao.findByPolicyItemAndDefId(
+						xPolicyItem.getId(), policyConditionDefObj.getId()))
+				.thenReturn(policyItemConditionList);
+
+		Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao);
+		Mockito.when(xUserDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(usersList);
+
+		Mockito.when(daoManager.getXXGroup()).thenReturn(xGroupDao);
+		Mockito.when(xGroupDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(groupsList);
+
+		List<RangerPolicyItem> dbRangerPolicyItem = policyService
+				.getPolicyItemListForXXPolicy(policy);
+		Assert.assertNotNull(dbRangerPolicyItem);
+
+		Mockito.verify(daoManager).getXXPolicyItemAccess();
+		Mockito.verify(daoManager).getXXAccessTypeDef();
+		Mockito.verify(daoManager).getXXPolicyConditionDef();
+		Mockito.verify(daoManager).getXXPolicyItemCondition();
+		Mockito.verify(daoManager).getXXUser();
+		Mockito.verify(daoManager).getXXGroup();
+	}
+
+	@Test
+	public void test5PopulateXXToRangerPolicyItem() {
+		String name = "fdfdfds";
+
+		XXPolicyItemAccessDao xPolicyItemAccessDao = Mockito
+				.mock(XXPolicyItemAccessDao.class);
+		XXUserDao xUserDao = Mockito.mock(XXUserDao.class);
+		XXGroupDao xGroupDao = Mockito.mock(XXGroupDao.class);
+		XXAccessTypeDefDao xAccessTypeDefDao = Mockito
+				.mock(XXAccessTypeDefDao.class);
+		XXAccessTypeDef xAccessTypeDef = Mockito.mock(XXAccessTypeDef.class);
+		XXPolicyConditionDefDao xPolicyConditionDefDao = Mockito
+				.mock(XXPolicyConditionDefDao.class);
+		XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
+				.mock(XXPolicyItemConditionDao.class);
+
+		List<XXPolicyItem> xPolicyItemList = new ArrayList<XXPolicyItem>();
+		XXPolicyItem xPolicyItem = new XXPolicyItem();
+		xPolicyItem.setDelegateAdmin(false);
+		xPolicyItem.setAddedByUserId(null);
+		xPolicyItem.setCreateTime(new Date());
+		xPolicyItem.setGUID(null);
+		xPolicyItem.setId(Id);
+		xPolicyItem.setOrder(null);
+		xPolicyItem.setPolicyId(Id);
+		xPolicyItem.setUpdatedByUserId(null);
+		xPolicyItem.setUpdateTime(new Date());
+		xPolicyItemList.add(xPolicyItem);
+
+		List<XXPolicyItemAccess> policyItemAccessList = new ArrayList<XXPolicyItemAccess>();
+		XXPolicyItemAccess policyItemAccess = new XXPolicyItemAccess();
+		policyItemAccess.setAddedByUserId(Id);
+		policyItemAccess.setCreateTime(new Date());
+		policyItemAccess.setPolicyitemid(Id);
+		policyItemAccess.setId(Id);
+		policyItemAccess.setOrder(1);
+		policyItemAccess.setUpdatedByUserId(Id);
+		policyItemAccess.setUpdateTime(new Date());
+		policyItemAccessList.add(policyItemAccess);
+
+		List<XXPolicyConditionDef> xConditionDefList = new ArrayList<XXPolicyConditionDef>();
+		XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
+		policyConditionDefObj.setAddedByUserId(Id);
+		policyConditionDefObj.setCreateTime(new Date());
+		policyConditionDefObj.setDefid(Id);
+		policyConditionDefObj.setDescription("policy conditio");
+		policyConditionDefObj.setId(Id);
+		policyConditionDefObj.setName(name);
+		policyConditionDefObj.setOrder(1);
+		policyConditionDefObj.setLabel("label");
+		xConditionDefList.add(policyConditionDefObj);
+
+		List<XXPolicyItemCondition> policyItemConditionList = new ArrayList<XXPolicyItemCondition>();
+		XXPolicyItemCondition policyItemCondition = new XXPolicyItemCondition();
+		policyItemCondition.setAddedByUserId(Id);
+		policyItemCondition.setCreateTime(new Date());
+		policyItemCondition.setType(1L);
+		policyItemCondition.setId(Id);
+		policyItemCondition.setOrder(1);
+		policyItemCondition.setPolicyItemId(Id);
+		policyItemCondition.setUpdatedByUserId(Id);
+		policyItemCondition.setUpdateTime(new Date());
+		policyItemConditionList.add(policyItemCondition);
+
+		List<String> usersList = new ArrayList<String>();
+		List<String> groupsList = new ArrayList<String>();
+
+		Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn(
+				xPolicyItemAccessDao);
+		Mockito.when(xPolicyItemAccessDao.findByPolicyItemId(Id)).thenReturn(
+				policyItemAccessList);
+
+		Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn(
+				xAccessTypeDefDao);
+		Mockito.when(xAccessTypeDefDao.getById(policyItemAccess.getType()))
+				.thenReturn(xAccessTypeDef);
+
+		Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn(
+				xPolicyConditionDefDao);
+		Mockito.when(
+				xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(xConditionDefList);
+
+		Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
+				xPolicyItemConditionDao);
+		Mockito.when(
+				xPolicyItemConditionDao.findByPolicyItemAndDefId(
+						xPolicyItem.getId(), policyConditionDefObj.getId()))
+				.thenReturn(policyItemConditionList);
+
+		Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao);
+		Mockito.when(xUserDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(usersList);
+
+		Mockito.when(daoManager.getXXGroup()).thenReturn(xGroupDao);
+		Mockito.when(xGroupDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(groupsList);
+
+		RangerPolicyItem dbRangerPolicyItem = policyService
+				.populateXXToRangerPolicyItem(xPolicyItem);
+		Assert.assertNotNull(dbRangerPolicyItem);
+
+		Mockito.verify(daoManager).getXXPolicyItemAccess();
+		Mockito.verify(daoManager).getXXAccessTypeDef();
+		Mockito.verify(daoManager).getXXPolicyConditionDef();
+		Mockito.verify(daoManager).getXXPolicyItemCondition();
+		Mockito.verify(daoManager).getXXUser();
+		Mockito.verify(daoManager).getXXGroup();
+	}
+
+	@Test
+	public void test6GetResourcesForXXPolicy() {
+
+		XXResourceDefDao xResourceDefDao = Mockito.mock(XXResourceDefDao.class);
+		XXPolicyResourceDao xPolicyResourceDao = Mockito
+				.mock(XXPolicyResourceDao.class);
+		XXPolicyResourceMapDao xPolicyResourceMapDao = Mockito
+				.mock(XXPolicyResourceMapDao.class);
+
+		XXPolicy policy = policy();
+
+		List<XXResourceDef> resDefList = new ArrayList<XXResourceDef>();
+		XXResourceDef resourceDef = new XXResourceDef();
+		resourceDef.setAddedByUserId(Id);
+		resourceDef.setCreateTime(new Date());
+		resourceDef.setDefid(Id);
+		resourceDef.setDescription("test");
+		resourceDef.setId(Id);
+		resDefList.add(resourceDef);
+
+		XXPolicyResource policyResource = new XXPolicyResource();
+		policyResource.setId(Id);
+		policyResource.setCreateTime(new Date());
+		policyResource.setAddedByUserId(Id);
+		policyResource.setIsExcludes(false);
+		policyResource.setIsRecursive(false);
+		policyResource.setPolicyId(Id);
+		policyResource.setResDefId(Id);
+		policyResource.setUpdatedByUserId(Id);
+		policyResource.setUpdateTime(new Date());
+
+		List<XXPolicyResourceMap> policyResourceMapList = new ArrayList<XXPolicyResourceMap>();
+		XXPolicyResourceMap policyResourceMap = new XXPolicyResourceMap();
+		policyResourceMap.setAddedByUserId(Id);
+		policyResourceMap.setCreateTime(new Date());
+		policyResourceMap.setId(Id);
+		policyResourceMap.setOrder(1);
+		policyResourceMap.setResourceId(Id);
+		policyResourceMap.setUpdatedByUserId(Id);
+		policyResourceMap.setUpdateTime(new Date());
+		policyResourceMap.setValue("1L");
+		policyResourceMapList.add(policyResourceMap);
+
+		Mockito.when(daoManager.getXXResourceDef()).thenReturn(xResourceDefDao);
+		Mockito.when(xResourceDefDao.findByPolicyId(policy.getId()))
+				.thenReturn(resDefList);
+
+		Mockito.when(daoManager.getXXPolicyResource()).thenReturn(
+				xPolicyResourceDao);
+		Mockito.when(
+				xPolicyResourceDao.findByResDefIdAndPolicyId(
+						resourceDef.getId(), policy.getId())).thenReturn(
+				policyResource);
+
+		Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn(
+				xPolicyResourceMapDao);
+		Mockito.when(
+				xPolicyResourceMapDao.findByPolicyResId(policyResource.getId()))
+				.thenReturn(policyResourceMapList);
+
+		Map<String, RangerPolicyResource> dbListMap = policyService
+				.getResourcesForXXPolicy(policy);
+		Assert.assertNotNull(dbListMap);
+
+		Mockito.verify(daoManager).getXXResourceDef();
+		Mockito.verify(daoManager).getXXPolicyResource();
+		Mockito.verify(daoManager).getXXPolicyResourceMap();
+	}
+
+	@Test
+	public void test7GetPopulatedViewObject() {
+		XXPortalUserDao xPortalUserDao = Mockito.mock(XXPortalUserDao.class);
+		XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
+		XXServiceConfigMapDao xServiceConfigMapDao = Mockito
+				.mock(XXServiceConfigMapDao.class);
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXResourceDefDao xResourceDefDao = Mockito.mock(XXResourceDefDao.class);
+		XXPolicyResourceDao xPolicyResourceDao = Mockito
+				.mock(XXPolicyResourceDao.class);
+		XXPolicyResourceMapDao xPolicyResourceMapDao = Mockito
+				.mock(XXPolicyResourceMapDao.class);
+		XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class);
+		XXPolicyItemAccessDao xPolicyItemAccessDao = Mockito
+				.mock(XXPolicyItemAccessDao.class);
+		XXAccessTypeDefDao xAccessTypeDefDao = Mockito
+				.mock(XXAccessTypeDefDao.class);
+		XXAccessTypeDef xAccessTypeDef = Mockito.mock(XXAccessTypeDef.class);
+		XXPolicyConditionDefDao xPolicyConditionDefDao = Mockito
+				.mock(XXPolicyConditionDefDao.class);
+		XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
+				.mock(XXPolicyItemConditionDao.class);
+		XXUserDao xUserDao = Mockito.mock(XXUserDao.class);
+		XXGroupDao xGroupDao = Mockito.mock(XXGroupDao.class);
+
+		XXPolicy policy = policy();
+		XXService xService = xService();
+		String name = "fdfdfds";
+
+		XXPortalUser tUser = new XXPortalUser();
+		tUser.setAddedByUserId(Id);
+		tUser.setCreateTime(new Date());
+		tUser.setEmailAddress("test@gmail.com");
+		tUser.setFirstName(name);
+		tUser.setId(Id);
+		tUser.setLastName(name);
+
+		XXServiceDef xServiceDef = new XXServiceDef();
+		xServiceDef.setAddedByUserId(Id);
+		xServiceDef.setCreateTime(new Date());
+		xServiceDef.setDescription("test");
+		xServiceDef.setGuid("1427365526516_835_0");
+		xServiceDef.setId(Id);
+
+		List<XXServiceConfigMap> srcConfigMapList = new ArrayList<XXServiceConfigMap>();
+		XXServiceConfigMap xConfMap = new XXServiceConfigMap();
+		xConfMap.setAddedByUserId(null);
+		xConfMap.setConfigkey(name);
+		xConfMap.setConfigvalue(name);
+		xConfMap.setCreateTime(new Date());
+		xConfMap.setServiceId(null);
+		xConfMap.setUpdatedByUserId(null);
+		xConfMap.setUpdateTime(new Date());
+		srcConfigMapList.add(xConfMap);
+
+		List<XXResourceDef> resDefList = new ArrayList<XXResourceDef>();
+		XXResourceDef resourceDef = new XXResourceDef();
+		resourceDef.setAddedByUserId(Id);
+		resourceDef.setCreateTime(new Date());
+		resourceDef.setDefid(Id);
+		resourceDef.setDescription("test");
+		resourceDef.setId(Id);
+		resDefList.add(resourceDef);
+
+		XXPolicyResource policyResource = new XXPolicyResource();
+		policyResource.setId(Id);
+		policyResource.setCreateTime(new Date());
+		policyResource.setAddedByUserId(Id);
+		policyResource.setIsExcludes(false);
+		policyResource.setIsRecursive(false);
+		policyResource.setPolicyId(Id);
+		policyResource.setResDefId(Id);
+		policyResource.setUpdatedByUserId(Id);
+		policyResource.setUpdateTime(new Date());
+
+		List<XXPolicyResourceMap> policyResourceMapList = new ArrayList<XXPolicyResourceMap>();
+		XXPolicyResourceMap policyResourceMap = new XXPolicyResourceMap();
+		policyResourceMap.setAddedByUserId(Id);
+		policyResourceMap.setCreateTime(new Date());
+		policyResourceMap.setId(Id);
+		policyResourceMap.setOrder(1);
+		policyResourceMap.setResourceId(Id);
+		policyResourceMap.setUpdatedByUserId(Id);
+		policyResourceMap.setUpdateTime(new Date());
+		policyResourceMap.setValue("1L");
+		policyResourceMapList.add(policyResourceMap);
+
+		List<XXPolicyItem> xPolicyItemList = new ArrayList<XXPolicyItem>();
+		XXPolicyItem xPolicyItem = new XXPolicyItem();
+		xPolicyItem.setDelegateAdmin(false);
+		xPolicyItem.setAddedByUserId(null);
+		xPolicyItem.setCreateTime(new Date());
+		xPolicyItem.setGUID(null);
+		xPolicyItem.setId(Id);
+		xPolicyItem.setOrder(null);
+		xPolicyItem.setPolicyId(Id);
+		xPolicyItem.setUpdatedByUserId(null);
+		xPolicyItem.setUpdateTime(new Date());
+		xPolicyItemList.add(xPolicyItem);
+
+		List<XXPolicyItemAccess> policyItemAccessList = new ArrayList<XXPolicyItemAccess>();
+		XXPolicyItemAccess policyItemAccess = new XXPolicyItemAccess();
+		policyItemAccess.setAddedByUserId(Id);
+		policyItemAccess.setCreateTime(new Date());
+		policyItemAccess.setPolicyitemid(Id);
+		policyItemAccess.setId(Id);
+		policyItemAccess.setOrder(1);
+		policyItemAccess.setUpdatedByUserId(Id);
+		policyItemAccess.setUpdateTime(new Date());
+		policyItemAccessList.add(policyItemAccess);
+
+		List<XXPolicyConditionDef> xConditionDefList = new ArrayList<XXPolicyConditionDef>();
+		XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
+		policyConditionDefObj.setAddedByUserId(Id);
+		policyConditionDefObj.setCreateTime(new Date());
+		policyConditionDefObj.setDefid(Id);
+		policyConditionDefObj.setDescription("policy conditio");
+		policyConditionDefObj.setId(Id);
+		policyConditionDefObj.setName(name);
+		policyConditionDefObj.setOrder(1);
+		policyConditionDefObj.setLabel("label");
+		xConditionDefList.add(policyConditionDefObj);
+
+		List<XXPolicyItemCondition> policyItemConditionList = new ArrayList<XXPolicyItemCondition>();
+		XXPolicyItemCondition policyItemCondition = new XXPolicyItemCondition();
+		policyItemCondition.setAddedByUserId(Id);
+		policyItemCondition.setCreateTime(new Date());
+		policyItemCondition.setType(1L);
+		policyItemCondition.setId(Id);
+		policyItemCondition.setOrder(1);
+		policyItemCondition.setPolicyItemId(Id);
+		policyItemCondition.setUpdatedByUserId(Id);
+		policyItemCondition.setUpdateTime(new Date());
+		policyItemConditionList.add(policyItemCondition);
+
+		List<String> usersList = new ArrayList<String>();
+		List<String> groupsList = new ArrayList<String>();
+
+		Mockito.when(daoManager.getXXPortalUser()).thenReturn(xPortalUserDao);
+		Mockito.when(xPortalUserDao.getById(Id)).thenReturn(tUser);
+
+		Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao);
+		Mockito.when(xServiceDefDao.getById(xService.getType())).thenReturn(
+				xServiceDef);
+
+		Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn(
+				xServiceConfigMapDao);
+		Mockito.when(xServiceConfigMapDao.findByServiceId(xService.getId()))
+				.thenReturn(srcConfigMapList);
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.getById(policy.getService())).thenReturn(
+				xService);
+
+		Mockito.when(daoManager.getXXResourceDef()).thenReturn(xResourceDefDao);
+		Mockito.when(xResourceDefDao.findByPolicyId(policy.getId()))
+				.thenReturn(resDefList);
+
+		Mockito.when(daoManager.getXXPolicyResource()).thenReturn(
+				xPolicyResourceDao);
+		Mockito.when(
+				xPolicyResourceDao.findByResDefIdAndPolicyId(
+						resourceDef.getId(), policy.getId())).thenReturn(
+				policyResource);
+
+		Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn(
+				xPolicyResourceMapDao);
+		Mockito.when(
+				xPolicyResourceMapDao.findByPolicyResId(policyResource.getId()))
+				.thenReturn(policyResourceMapList);
+
+		Mockito.when(daoManager.getXXPolicyItem()).thenReturn(xPolicyItemDao);
+		Mockito.when(xPolicyItemDao.findByPolicyId(policy.getId())).thenReturn(
+				xPolicyItemList);
+
+		Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn(
+				xPolicyItemAccessDao);
+		Mockito.when(xPolicyItemAccessDao.findByPolicyItemId(policy.getId()))
+				.thenReturn(policyItemAccessList);
+
+		Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn(
+				xAccessTypeDefDao);
+		Mockito.when(xAccessTypeDefDao.getById(policyItemAccess.getType()))
+				.thenReturn(xAccessTypeDef);
+
+		Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn(
+				xPolicyConditionDefDao);
+		Mockito.when(
+				xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(xConditionDefList);
+
+		Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
+				xPolicyItemConditionDao);
+		Mockito.when(
+				xPolicyItemConditionDao.findByPolicyItemAndDefId(
+						xPolicyItem.getId(), policyConditionDefObj.getId()))
+				.thenReturn(policyItemConditionList);
+
+		Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao);
+		Mockito.when(xUserDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(usersList);
+
+		Mockito.when(daoManager.getXXGroup()).thenReturn(xGroupDao);
+		Mockito.when(xGroupDao.findByPolicyItemId(xPolicyItem.getId()))
+				.thenReturn(groupsList);
+
+		RangerPolicy dbRangerPolicy = policyService
+				.getPopulatedViewObject(policy);
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), policy.getId());
+		Assert.assertEquals(dbRangerPolicy.getName(), policy.getName());
+		Assert.assertEquals(dbRangerPolicy.getDescription(),
+				policy.getDescription());
+		Assert.assertEquals(dbRangerPolicy.getGuid(), policy.getGuid());
+		Assert.assertEquals(dbRangerPolicy.getVersion(), policy.getVersion());
+		Assert.assertEquals(dbRangerPolicy.getIsAuditEnabled(),
+				policy.getIsAuditEnabled());
+		Mockito.verify(daoManager).getXXPolicyItemAccess();
+		Mockito.verify(daoManager).getXXAccessTypeDef();
+		Mockito.verify(daoManager).getXXPolicyConditionDef();
+		Mockito.verify(daoManager).getXXPolicyItemCondition();
+		Mockito.verify(daoManager).getXXUser();
+		Mockito.verify(daoManager).getXXGroup();
+	}
+
+	@Test
+	public void test8getTransactionLog() {
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		XXService xService = xService();
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(rangerPolicy.getService()))
+				.thenReturn(xService);
+
+		List<XXTrxLog> dbXXTrxLogList = policyService.getTransactionLog(
+				rangerPolicy, 1);
+		Assert.assertNotNull(dbXXTrxLogList);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/376d3249/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyServiceBase.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyServiceBase.java b/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyServiceBase.java
new file mode 100644
index 0000000..75e2ebd
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/service/TestRangerPolicyServiceBase.java
@@ -0,0 +1,275 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.ws.rs.WebApplicationException;
+
+import org.apache.ranger.biz.RangerBizUtil;
+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.SearchField;
+import org.apache.ranger.common.UserSessionBase;
+import org.apache.ranger.common.db.BaseDao;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.db.XXServiceDao;
+import org.apache.ranger.entity.XXDBBase;
+import org.apache.ranger.entity.XXPolicy;
+import org.apache.ranger.entity.XXService;
+import org.apache.ranger.plugin.model.RangerPolicy;
+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.util.SearchFilter;
+import org.apache.ranger.security.context.RangerContextHolder;
+import org.apache.ranger.security.context.RangerSecurityContext;
+import org.apache.ranger.view.RangerPolicyList;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestRangerPolicyServiceBase {
+
+	private static Long Id = 8L;
+
+	@InjectMocks
+	RangerPolicyService policyService = new RangerPolicyService();
+
+	@Mock
+	RangerDaoManager daoManager;
+
+	@Mock
+	RESTErrorUtil restErrorUtil;
+
+	@Mock
+	ContextUtil contextUtil;
+
+	@Mock
+	RangerAuditFields<XXDBBase> rangerAuditFields;
+
+	@Mock
+	RangerBizUtil rangerBizUtil;
+
+	@Mock
+	RangerSearchUtil searchUtil;
+
+	@Rule
+	public ExpectedException thrown = ExpectedException.none();
+
+	public void setup() {
+		RangerSecurityContext context = new RangerSecurityContext();
+		context.setUserSession(new UserSessionBase());
+		RangerContextHolder.setSecurityContext(context);
+		UserSessionBase currentUserSession = ContextUtil
+				.getCurrentUserSession();
+		currentUserSession.setUserAdmin(true);
+	}
+
+	private RangerPolicy rangerPolicy() {
+		List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>();
+		List<String> users = new ArrayList<String>();
+		List<String> groups = new ArrayList<String>();
+		List<RangerPolicyItemCondition> conditions = new ArrayList<RangerPolicyItemCondition>();
+		List<RangerPolicyItem> policyItems = new ArrayList<RangerPolicyItem>();
+		RangerPolicyItem rangerPolicyItem = new RangerPolicyItem();
+		rangerPolicyItem.setAccesses(accesses);
+		rangerPolicyItem.setConditions(conditions);
+		rangerPolicyItem.setGroups(groups);
+		rangerPolicyItem.setUsers(users);
+		rangerPolicyItem.setDelegateAdmin(false);
+
+		policyItems.add(rangerPolicyItem);
+
+		Map<String, RangerPolicyResource> policyResource = new HashMap<String, RangerPolicyResource>();
+		RangerPolicyResource rangerPolicyResource = new RangerPolicyResource();
+		rangerPolicyResource.setIsExcludes(true);
+		rangerPolicyResource.setIsRecursive(true);
+		rangerPolicyResource.setValue("1");
+		rangerPolicyResource.setValues(users);
+		RangerPolicy policy = new RangerPolicy();
+		policy.setId(Id);
+		policy.setCreateTime(new Date());
+		policy.setDescription("policy");
+		policy.setGuid("policyguid");
+		policy.setIsEnabled(true);
+		policy.setName("HDFS_1-1-20150316062453");
+		policy.setUpdatedBy("Admin");
+		policy.setUpdateTime(new Date());
+		policy.setService("HDFS_1-1-20150316062453");
+		policy.setIsAuditEnabled(true);
+		policy.setPolicyItems(policyItems);
+		policy.setResources(policyResource);
+
+		return policy;
+	}
+
+	private XXPolicy policy() {
+		XXPolicy xxPolicy = new XXPolicy();
+		xxPolicy.setId(Id);
+		xxPolicy.setName("HDFS_1-1-20150316062453");
+		xxPolicy.setAddedByUserId(Id);
+		xxPolicy.setCreateTime(new Date());
+		xxPolicy.setDescription("test");
+		xxPolicy.setIsAuditEnabled(false);
+		xxPolicy.setIsEnabled(false);
+		xxPolicy.setService(1L);
+		xxPolicy.setUpdatedByUserId(Id);
+		xxPolicy.setUpdateTime(new Date());
+		return xxPolicy;
+	}
+
+	@Test
+	public void test1mapViewToEntityBean() {
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXService xService = Mockito.mock(XXService.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		XXPolicy policy = policy();
+		int OPERATION_CONTEXT = 0;
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(rangerPolicy.getService()))
+				.thenReturn(xService);
+
+		XXPolicy dbPolicy = policyService.mapViewToEntityBean(rangerPolicy,
+				policy, OPERATION_CONTEXT);
+		Assert.assertNotNull(dbPolicy);
+		Assert.assertEquals(dbPolicy.getId(), policy.getId());
+		Assert.assertEquals(dbPolicy.getGuid(), policy.getGuid());
+		Assert.assertEquals(dbPolicy.getName(), policy.getName());
+		Assert.assertEquals(dbPolicy.getAddedByUserId(),
+				policy.getAddedByUserId());
+		Assert.assertEquals(dbPolicy.getIsEnabled(), policy.getIsEnabled());
+		Assert.assertEquals(dbPolicy.getVersion(), policy.getVersion());
+		Assert.assertEquals(dbPolicy.getDescription(), policy.getDescription());
+
+		Mockito.verify(daoManager).getXXService();
+	}
+
+	@Test
+	public void test2mapViewToEntityBeanNullValue() {
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		XXPolicy policy = policy();
+		int OPERATION_CONTEXT = 0;
+
+		Mockito.when(
+				restErrorUtil.createRESTException(
+						"No corresponding service found for policyName: "
+								+ rangerPolicy.getName()
+								+ "Service Not Found : "
+								+ rangerPolicy.getName(),
+						MessageEnums.INVALID_INPUT_DATA)).thenThrow(
+				new WebApplicationException());
+
+		thrown.expect(WebApplicationException.class);
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.findByName(rangerPolicy.getService()))
+				.thenReturn(null);
+
+		XXPolicy dbPolicy = policyService.mapViewToEntityBean(rangerPolicy,
+				policy, OPERATION_CONTEXT);
+		Assert.assertNotNull(dbPolicy);
+		Assert.assertEquals(dbPolicy.getId(), policy.getId());
+		Assert.assertEquals(dbPolicy.getGuid(), policy.getGuid());
+		Assert.assertEquals(dbPolicy.getName(), policy.getName());
+		Assert.assertEquals(dbPolicy.getAddedByUserId(),
+				policy.getAddedByUserId());
+		Assert.assertEquals(dbPolicy.getIsEnabled(), policy.getIsEnabled());
+		Assert.assertEquals(dbPolicy.getVersion(), policy.getVersion());
+		Assert.assertEquals(dbPolicy.getDescription(), policy.getDescription());
+
+		Mockito.verify(daoManager).getXXService();
+	}
+
+	@Test
+	public void test3mapEntityToViewBean() {
+		XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class);
+		XXService xService = Mockito.mock(XXService.class);
+		RangerPolicy rangerPolicy = rangerPolicy();
+		XXPolicy policy = policy();
+
+		Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao);
+		Mockito.when(xServiceDao.getById(policy.getService())).thenReturn(
+				xService);
+
+		RangerPolicy dbRangerPolicy = policyService.mapEntityToViewBean(
+				rangerPolicy, policy);
+
+		Assert.assertNotNull(dbRangerPolicy);
+		Assert.assertEquals(dbRangerPolicy.getId(), rangerPolicy.getId());
+		Assert.assertEquals(dbRangerPolicy.getGuid(), rangerPolicy.getGuid());
+		Assert.assertEquals(dbRangerPolicy.getName(), rangerPolicy.getName());
+		Assert.assertEquals(dbRangerPolicy.getIsEnabled(),
+				rangerPolicy.getIsEnabled());
+		Assert.assertEquals(dbRangerPolicy.getVersion(),
+				rangerPolicy.getVersion());
+		Assert.assertEquals(dbRangerPolicy.getDescription(),
+				rangerPolicy.getDescription());
+
+		Mockito.verify(daoManager).getXXService();
+	}
+
+	@Test
+	public void test4searchRangerPolicies() {
+		EntityManager entityManager = Mockito.mock(EntityManager.class);
+		SearchFilter searchFilter = new SearchFilter();
+		searchFilter.setParam(SearchFilter.POLICY_NAME, "policyName");
+		searchFilter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
+
+		String searchString = "policyName";
+		String sortString = "asc";
+		List<SearchField> searchFieldList = new ArrayList<SearchField>();
+		boolean isCountQuery = false;
+
+		BaseDao baseDao = Mockito.mock(BaseDao.class);
+
+		Mockito.when(daoManager.getDaoForClassName(Mockito.anyString()))
+				.thenReturn(baseDao);
+		Mockito.when(daoManager.getEntityManager()).thenReturn(entityManager);
+		Mockito.when(
+				searchUtil
+						.createSearchQuery(entityManager, searchString,
+								sortString, searchFilter, searchFieldList,
+								isCountQuery)).thenReturn(null);
+
+		RangerPolicyList dbRangerPolicyList = policyService
+				.searchRangerPolicies(searchFilter);
+		Assert.assertNotNull(dbRangerPolicyList);
+		Mockito.verify(daoManager).getDaoForClassName(Mockito.anyString());
+	}
+
+}