/*
* 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.List;
import javax.ws.rs.WebApplicationException;
import org.apache.ranger.biz.RangerBizUtil;
import org.apache.ranger.common.ContextUtil;
import org.apache.ranger.common.GUIDUtil;
import org.apache.ranger.common.JSONUtil;
import org.apache.ranger.common.MessageEnums;
import org.apache.ranger.common.RESTErrorUtil;
import org.apache.ranger.common.RangerSearchUtil;
import org.apache.ranger.common.UserSessionBase;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXAccessTypeDefGrantsDao;
import org.apache.ranger.db.XXEnumElementDefDao;
import org.apache.ranger.db.XXResourceDefDao;
import org.apache.ranger.entity.XXAccessTypeDef;
import org.apache.ranger.entity.XXContextEnricherDef;
import org.apache.ranger.entity.XXEnumDef;
import org.apache.ranger.entity.XXEnumElementDef;
import org.apache.ranger.entity.XXPolicyConditionDef;
import org.apache.ranger.entity.XXResourceDef;
import org.apache.ranger.entity.XXServiceConfigDef;
import org.apache.ranger.entity.XXServiceDef;
import org.apache.ranger.plugin.model.RangerServiceDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumElementDef;
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.util.SearchFilter;
import org.apache.ranger.security.context.RangerContextHolder;
import org.apache.ranger.security.context.RangerSecurityContext;
import org.apache.ranger.view.RangerServiceDefList;
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 TestRangerServiceDefServiceBase {
private static Long Id = 8L;
@InjectMocks
RangerServiceDefService rangerServiceDefService = new RangerServiceDefService();
@Mock
RangerDaoManager daoManager;
@Mock
RESTErrorUtil restErrorUtil;
@Mock
ContextUtil contextUtil;
@Mock
RangerAuditFields rangerAuditFields;
@Mock
RangerBizUtil rangerBizUtil;
@Mock
RangerSearchUtil searchUtil;
@Mock
GUIDUtil guidUtil;
@Mock
JSONUtil jsonUtil;
@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 XXServiceDef serviceDef() {
XXServiceDef xServiceDef = new XXServiceDef();
xServiceDef.setAddedByUserId(Id);
xServiceDef.setCreateTime(new Date());
xServiceDef.setDescription("HDFS Repository");
xServiceDef.setGuid("0d047247-bafe-4cf8-8e9b-d5d377284b2d");
xServiceDef.setId(Id);
xServiceDef.setImplclassname("RangerServiceHdfs");
xServiceDef.setIsEnabled(true);
xServiceDef.setLabel("HDFS Repository");
xServiceDef.setName("hdfs");
xServiceDef.setRbkeydescription(null);
xServiceDef.setRbkeylabel(null);
xServiceDef.setUpdatedByUserId(Id);
xServiceDef.setUpdateTime(new Date());
return xServiceDef;
}
@Test
public void test1MapViewToEntityBean() {
RangerServiceDef rangerServiceDef = rangerServiceDef();
XXServiceDef serviceDef = serviceDef();
int operationContext = 1;
XXServiceDef dbServiceDef = rangerServiceDefService
.mapViewToEntityBean(rangerServiceDef, serviceDef,
operationContext);
Assert.assertNotNull(dbServiceDef);
Assert.assertEquals(dbServiceDef, serviceDef);
Assert.assertEquals(dbServiceDef.getDescription(),
serviceDef.getDescription());
Assert.assertEquals(dbServiceDef.getGuid(), serviceDef.getGuid());
Assert.assertEquals(dbServiceDef.getName(), serviceDef.getName());
Assert.assertEquals(dbServiceDef.getAddedByUserId(),
serviceDef.getAddedByUserId());
Assert.assertEquals(dbServiceDef.getId(), serviceDef.getId());
Assert.assertEquals(dbServiceDef.getVersion(), serviceDef.getVersion());
Assert.assertEquals(dbServiceDef.getImplclassname(),
serviceDef.getImplclassname());
Assert.assertEquals(dbServiceDef.getUpdatedByUserId(),
serviceDef.getUpdatedByUserId());
}
@Test
public void test2MapEntityToViewBean() {
RangerServiceDef rangerServiceDef = rangerServiceDef();
XXServiceDef serviceDef = serviceDef();
RangerServiceDef dbRangerServiceDef = rangerServiceDefService
.mapEntityToViewBean(rangerServiceDef, serviceDef);
Assert.assertNotNull(dbRangerServiceDef);
Assert.assertEquals(dbRangerServiceDef, rangerServiceDef);
Assert.assertEquals(dbRangerServiceDef.getDescription(),
rangerServiceDef.getDescription());
Assert.assertEquals(dbRangerServiceDef.getGuid(),
rangerServiceDef.getGuid());
Assert.assertEquals(dbRangerServiceDef.getName(),
rangerServiceDef.getName());
Assert.assertEquals(dbRangerServiceDef.getId(),
rangerServiceDef.getId());
Assert.assertEquals(dbRangerServiceDef.getVersion(),
rangerServiceDef.getVersion());
}
@Test
public void test3populateRangerServiceConfigDefToXX() {
RangerServiceConfigDef serviceConfigDefObj = new RangerServiceConfigDef();
XXServiceConfigDef configDefObj = new XXServiceConfigDef();
XXServiceDef serviceDefObj = new XXServiceDef();
Mockito.when(
(XXServiceConfigDef) rangerAuditFields.populateAuditFields(
configDefObj, serviceDefObj)).thenReturn(configDefObj);
XXServiceConfigDef dbServiceConfigDef = rangerServiceDefService
.populateRangerServiceConfigDefToXX(serviceConfigDefObj,
configDefObj, serviceDefObj, 1);
Assert.assertNotNull(dbServiceConfigDef);
}
@Test
public void test4populateXXToRangerServiceConfigDef() {
XXServiceConfigDef serviceConfigDefObj = new XXServiceConfigDef();
RangerServiceConfigDef dbserviceConfigDefObj = rangerServiceDefService
.populateXXToRangerServiceConfigDef(serviceConfigDefObj);
Assert.assertNotNull(dbserviceConfigDefObj);
}
@Test
public void test5populateRangerResourceDefToXX() {
RangerResourceDef rangerResourceDefObj = new RangerResourceDef();
rangerResourceDefObj.setDescription("HDFS Repository");
rangerResourceDefObj.setExcludesSupported(false);
rangerResourceDefObj.setLabel("HDFS Repository");
rangerResourceDefObj.setName("HDFs");
XXResourceDef resourceDefObj = new XXResourceDef();
resourceDefObj.setAddedByUserId(Id);
resourceDefObj.setCreateTime(new Date());
resourceDefObj.setDefid(Id);
resourceDefObj.setDescription("HDFS Repository");
resourceDefObj.setId(Id);
XXServiceDef serviceDefObj = new XXServiceDef();
serviceDefObj.setAddedByUserId(Id);
serviceDefObj.setCreateTime(new Date());
serviceDefObj.setDescription("HDFS Repository");
serviceDefObj.setGuid("1427365526516_835_0");
serviceDefObj.setId(Id);
Mockito.when(
(XXResourceDef) rangerAuditFields.populateAuditFields(
resourceDefObj, serviceDefObj)).thenReturn(
resourceDefObj);
XXResourceDef dbResourceDef = rangerServiceDefService
.populateRangerResourceDefToXX(rangerResourceDefObj,
resourceDefObj, serviceDefObj, 1);
Assert.assertNotNull(dbResourceDef);
Assert.assertEquals(dbResourceDef, resourceDefObj);
Assert.assertEquals(dbResourceDef.getId(), resourceDefObj.getId());
Assert.assertEquals(dbResourceDef.getLabel(), resourceDefObj.getLabel());
Assert.assertEquals(dbResourceDef.getName(), resourceDefObj.getName());
Assert.assertEquals(dbResourceDef.getDescription(),
resourceDefObj.getDescription());
}
@Test
public void test6populateXXToRangerResourceDef() {
XXResourceDefDao xResourceDefDao = Mockito.mock(XXResourceDefDao.class);
XXResourceDef resourceDefObj = new XXResourceDef();
resourceDefObj.setAddedByUserId(Id);
resourceDefObj.setCreateTime(new Date());
resourceDefObj.setDefid(Id);
resourceDefObj.setDescription("HDFS Repository");
resourceDefObj.setId(Id);
Mockito.when(daoManager.getXXResourceDef()).thenReturn(xResourceDefDao);
RangerResourceDef dbRangerResourceDef = rangerServiceDefService
.populateXXToRangerResourceDef(resourceDefObj);
Assert.assertNotNull(dbRangerResourceDef);
Assert.assertEquals(dbRangerResourceDef.getName(),
resourceDefObj.getName());
Assert.assertEquals(dbRangerResourceDef.getDescription(),
resourceDefObj.getDescription());
Assert.assertEquals(dbRangerResourceDef.getType(),
resourceDefObj.getType());
Assert.assertEquals(dbRangerResourceDef.getRbKeyDescription(),
resourceDefObj.getRbkeydescription());
Mockito.verify(daoManager).getXXResourceDef();
}
@Test
public void test7populateRangerAccessTypeDefToXX() {
RangerAccessTypeDef rangerAccessTypeDefObj = new RangerAccessTypeDef();
rangerAccessTypeDefObj.setLabel("Read");
rangerAccessTypeDefObj.setName("read");
rangerAccessTypeDefObj.setRbKeyLabel(null);
XXAccessTypeDef accessTypeDefObj = new XXAccessTypeDef();
accessTypeDefObj.setAddedByUserId(Id);
accessTypeDefObj.setCreateTime(new Date());
accessTypeDefObj.setDefid(Id);
accessTypeDefObj.setId(Id);
accessTypeDefObj.setLabel("Read");
accessTypeDefObj.setName("read");
accessTypeDefObj.setOrder(null);
accessTypeDefObj.setRbkeylabel(null);
accessTypeDefObj.setUpdatedByUserId(Id);
accessTypeDefObj.setUpdateTime(new Date());
XXServiceDef serviceDefObj = new XXServiceDef();
serviceDefObj.setAddedByUserId(Id);
serviceDefObj.setCreateTime(new Date());
serviceDefObj.setDescription("HDFS Repository");
serviceDefObj.setGuid("1427365526516_835_0");
serviceDefObj.setId(Id);
Mockito.when(
(XXAccessTypeDef) rangerAuditFields.populateAuditFields(
accessTypeDefObj, serviceDefObj)).thenReturn(
accessTypeDefObj);
XXAccessTypeDef dbAccessTypeDef = rangerServiceDefService
.populateRangerAccessTypeDefToXX(rangerAccessTypeDefObj,
accessTypeDefObj, serviceDefObj, 1);
Assert.assertNotNull(dbAccessTypeDef);
Assert.assertEquals(dbAccessTypeDef, accessTypeDefObj);
Assert.assertEquals(dbAccessTypeDef.getName(),
accessTypeDefObj.getName());
Assert.assertEquals(dbAccessTypeDef.getLabel(),
accessTypeDefObj.getLabel());
Assert.assertEquals(dbAccessTypeDef.getRbkeylabel(),
accessTypeDefObj.getRbkeylabel());
Assert.assertEquals(dbAccessTypeDef.getDefid(),
accessTypeDefObj.getDefid());
Assert.assertEquals(dbAccessTypeDef.getId(), accessTypeDefObj.getId());
Assert.assertEquals(dbAccessTypeDef.getCreateTime(),
accessTypeDefObj.getCreateTime());
Assert.assertEquals(dbAccessTypeDef.getOrder(),
accessTypeDefObj.getOrder());
}
@Test
public void test8populateRangerAccessTypeDefToXXNullValue() {
RangerAccessTypeDef rangerAccessTypeDefObj = null;
XXAccessTypeDef accessTypeDefObj = null;
XXServiceDef serviceDefObj = null;
Mockito.when(
restErrorUtil.createRESTException(
"RangerServiceDef cannot be null.",
MessageEnums.DATA_NOT_FOUND)).thenThrow(
new WebApplicationException());
thrown.expect(WebApplicationException.class);
XXAccessTypeDef dbAccessTypeDef = rangerServiceDefService
.populateRangerAccessTypeDefToXX(rangerAccessTypeDefObj,
accessTypeDefObj, serviceDefObj, 1);
Assert.assertNull(dbAccessTypeDef);
}
@Test
public void test9populateXXToRangerAccessTypeDef() {
XXAccessTypeDefGrantsDao xAccessTypeDefGrantsDao = Mockito
.mock(XXAccessTypeDefGrantsDao.class);
List<String> lists = new ArrayList<String>();
XXAccessTypeDef accessTypeDefObj = new XXAccessTypeDef();
accessTypeDefObj.setAddedByUserId(Id);
accessTypeDefObj.setCreateTime(new Date());
accessTypeDefObj.setDefid(Id);
accessTypeDefObj.setId(Id);
accessTypeDefObj.setLabel("Read");
accessTypeDefObj.setName("read");
accessTypeDefObj.setOrder(null);
accessTypeDefObj.setRbkeylabel(null);
accessTypeDefObj.setUpdatedByUserId(Id);
accessTypeDefObj.setUpdateTime(new Date());
Mockito.when(daoManager.getXXAccessTypeDefGrants()).thenReturn(
xAccessTypeDefGrantsDao);
Mockito.when(
xAccessTypeDefGrantsDao
.findImpliedGrantsByATDId(accessTypeDefObj.getId()))
.thenReturn(lists);
RangerAccessTypeDef dbRangerAccessTypeDef = rangerServiceDefService
.populateXXToRangerAccessTypeDef(accessTypeDefObj);
Assert.assertNotNull(dbRangerAccessTypeDef);
Assert.assertEquals(dbRangerAccessTypeDef.getName(),
accessTypeDefObj.getName());
Assert.assertEquals(dbRangerAccessTypeDef.getLabel(),
accessTypeDefObj.getLabel());
Assert.assertEquals(dbRangerAccessTypeDef.getRbKeyLabel(),
accessTypeDefObj.getRbkeylabel());
}
@Test
public void test10populateRangerPolicyConditionDefToXX() {
RangerPolicyConditionDef rangerConditionDefvObj = new RangerPolicyConditionDef();
rangerConditionDefvObj.setDescription("Countries");
rangerConditionDefvObj.setEvaluator("COUNTRY");
rangerConditionDefvObj.setLabel("Countries");
rangerConditionDefvObj.setName("country");
rangerConditionDefvObj.setRbKeyDescription(null);
rangerConditionDefvObj.setRbKeyLabel(null);
XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
policyConditionDefObj.setAddedByUserId(Id);
policyConditionDefObj.setCreateTime(new Date());
policyConditionDefObj.setDefid(Id);
policyConditionDefObj.setDescription("policy");
policyConditionDefObj.setId(Id);
policyConditionDefObj.setName("country");
policyConditionDefObj.setOrder(0);
policyConditionDefObj.setUpdatedByUserId(Id);
policyConditionDefObj.setUpdateTime(new Date());
XXServiceDef serviceDefObj = new XXServiceDef();
serviceDefObj.setAddedByUserId(Id);
serviceDefObj.setCreateTime(new Date());
serviceDefObj.setDescription("HDFS Repository");
serviceDefObj.setGuid("1427365526516_835_0");
serviceDefObj.setId(Id);
Mockito.when(
(XXPolicyConditionDef) rangerAuditFields.populateAuditFields(
policyConditionDefObj, serviceDefObj)).thenReturn(
policyConditionDefObj);
XXPolicyConditionDef dbPolicyConditionDef = rangerServiceDefService
.populateRangerPolicyConditionDefToXX(rangerConditionDefvObj,
policyConditionDefObj, serviceDefObj, 1);
Assert.assertNotNull(dbPolicyConditionDef);
Assert.assertEquals(dbPolicyConditionDef.getName(),
policyConditionDefObj.getName());
Assert.assertEquals(dbPolicyConditionDef.getDescription(),
policyConditionDefObj.getDescription());
Assert.assertEquals(dbPolicyConditionDef.getEvaluator(),
policyConditionDefObj.getEvaluator());
Assert.assertEquals(dbPolicyConditionDef.getLabel(),
policyConditionDefObj.getLabel());
Assert.assertEquals(dbPolicyConditionDef.getId(),
policyConditionDefObj.getId());
Assert.assertEquals(dbPolicyConditionDef.getRbkeydescription(),
policyConditionDefObj.getRbkeydescription());
Assert.assertEquals(dbPolicyConditionDef.getOrder(),
policyConditionDefObj.getOrder());
Assert.assertEquals(dbPolicyConditionDef.getUpdatedByUserId(),
policyConditionDefObj.getUpdatedByUserId());
Assert.assertEquals(dbPolicyConditionDef.getUpdateTime(),
policyConditionDefObj.getUpdateTime());
}
@Test
public void test11populateRangerPolicyConditionDefToXXnullValue() {
RangerPolicyConditionDef rangerConditionDefvObj = null;
XXPolicyConditionDef policyConditionDefObj = null;
XXServiceDef serviceDefObj = null;
Mockito.when(
restErrorUtil.createRESTException(
"RangerServiceDef cannot be null.",
MessageEnums.DATA_NOT_FOUND)).thenThrow(
new WebApplicationException());
thrown.expect(WebApplicationException.class);
XXPolicyConditionDef dbPolicyConditionDef = rangerServiceDefService
.populateRangerPolicyConditionDefToXX(rangerConditionDefvObj,
policyConditionDefObj, serviceDefObj, 1);
Assert.assertNull(dbPolicyConditionDef);
}
@Test
public void test12populateXXToRangerPolicyConditionDef() {
XXPolicyConditionDef policyConditionDefObj = new XXPolicyConditionDef();
policyConditionDefObj.setAddedByUserId(Id);
policyConditionDefObj.setCreateTime(new Date());
policyConditionDefObj.setDefid(Id);
policyConditionDefObj.setDescription("policy");
policyConditionDefObj.setId(Id);
policyConditionDefObj.setName("country");
policyConditionDefObj.setOrder(0);
policyConditionDefObj.setUpdatedByUserId(Id);
policyConditionDefObj.setUpdateTime(new Date());
RangerPolicyConditionDef dbRangerPolicyConditionDef = rangerServiceDefService
.populateXXToRangerPolicyConditionDef(policyConditionDefObj);
Assert.assertNotNull(dbRangerPolicyConditionDef);
Assert.assertEquals(dbRangerPolicyConditionDef.getName(),
policyConditionDefObj.getName());
Assert.assertEquals(dbRangerPolicyConditionDef.getDescription(),
policyConditionDefObj.getDescription());
Assert.assertEquals(dbRangerPolicyConditionDef.getEvaluator(),
policyConditionDefObj.getEvaluator());
Assert.assertEquals(dbRangerPolicyConditionDef.getLabel(),
policyConditionDefObj.getLabel());
}
@Test
public void test13populateRangerContextEnricherDefToXX() {
RangerContextEnricherDef rangerContextEnricherDefObj = new RangerContextEnricherDef();
rangerContextEnricherDefObj.setName("country-provider");
rangerContextEnricherDefObj.setEnricher("RangerCountryProvider");
XXContextEnricherDef contextEnricherDefObj = new XXContextEnricherDef();
contextEnricherDefObj.setAddedByUserId(Id);
contextEnricherDefObj.setCreateTime(new Date());
contextEnricherDefObj.setDefid(Id);
contextEnricherDefObj.setId(Id);
contextEnricherDefObj.setName("country-provider");
contextEnricherDefObj
.setEnricherOptions("contextName=COUNTRY;dataFile=/etc/ranger/data/userCountry.properties");
contextEnricherDefObj.setEnricher("RangerCountryProvider");
contextEnricherDefObj.setOrder(null);
contextEnricherDefObj.setUpdatedByUserId(Id);
contextEnricherDefObj.setUpdateTime(new Date());
XXServiceDef serviceDefObj = new XXServiceDef();
serviceDefObj.setAddedByUserId(Id);
serviceDefObj.setCreateTime(new Date());
serviceDefObj.setDescription("HDFS Repository");
serviceDefObj.setGuid("1427365526516_835_0");
serviceDefObj.setId(Id);
Mockito.when(
(XXContextEnricherDef) rangerAuditFields.populateAuditFields(
contextEnricherDefObj, serviceDefObj)).thenReturn(
contextEnricherDefObj);
XXContextEnricherDef dbContextEnricherDef = rangerServiceDefService
.populateRangerContextEnricherDefToXX(
rangerContextEnricherDefObj, contextEnricherDefObj,
serviceDefObj, 1);
Assert.assertNotNull(dbContextEnricherDef);
Assert.assertEquals(dbContextEnricherDef.getEnricher(),
contextEnricherDefObj.getEnricher());
Assert.assertEquals(dbContextEnricherDef.getEnricherOptions(),
contextEnricherDefObj.getEnricherOptions());
Assert.assertEquals(dbContextEnricherDef.getName(),
contextEnricherDefObj.getName());
Assert.assertEquals(dbContextEnricherDef.getCreateTime(),
contextEnricherDefObj.getCreateTime());
Assert.assertEquals(dbContextEnricherDef.getId(),
contextEnricherDefObj.getId());
Assert.assertEquals(dbContextEnricherDef.getOrder(),
contextEnricherDefObj.getOrder());
Assert.assertEquals(dbContextEnricherDef.getUpdatedByUserId(),
contextEnricherDefObj.getUpdatedByUserId());
Assert.assertEquals(dbContextEnricherDef.getUpdateTime(),
contextEnricherDefObj.getUpdateTime());
}
@Test
public void test14populateRangerContextEnricherDefToXXnullValue() {
RangerContextEnricherDef rangerContextEnricherDefObj = null;
XXContextEnricherDef contextEnricherDefObj = null;
XXServiceDef serviceDefObj = null;
Mockito.when(
restErrorUtil.createRESTException(
"RangerServiceDef cannot be null.",
MessageEnums.DATA_NOT_FOUND)).thenThrow(
new WebApplicationException());
thrown.expect(WebApplicationException.class);
XXContextEnricherDef dbContextEnricherDef = rangerServiceDefService
.populateRangerContextEnricherDefToXX(
rangerContextEnricherDefObj, contextEnricherDefObj,
serviceDefObj, 1);
Assert.assertNull(dbContextEnricherDef);
}
@Test
public void test15populateXXToRangerContextEnricherDef() {
XXContextEnricherDef contextEnricherDefObj = new XXContextEnricherDef();
contextEnricherDefObj.setAddedByUserId(Id);
contextEnricherDefObj.setCreateTime(new Date());
contextEnricherDefObj.setDefid(Id);
contextEnricherDefObj.setId(Id);
contextEnricherDefObj.setName("country-provider");
contextEnricherDefObj
.setEnricherOptions("contextName=COUNTRY;dataFile=/etc/ranger/data/userCountry.properties");
contextEnricherDefObj.setEnricher("RangerCountryProvider");
contextEnricherDefObj.setOrder(null);
contextEnricherDefObj.setUpdatedByUserId(Id);
contextEnricherDefObj.setUpdateTime(new Date());
RangerContextEnricherDef dbRangerContextEnricherDef = rangerServiceDefService
.populateXXToRangerContextEnricherDef(contextEnricherDefObj);
Assert.assertNotNull(dbRangerContextEnricherDef);
Assert.assertEquals(dbRangerContextEnricherDef.getEnricher(),
contextEnricherDefObj.getEnricher());
Assert.assertEquals(dbRangerContextEnricherDef.getName(),
contextEnricherDefObj.getName());
}
@Test
public void test16populateRangerEnumDefToXX() {
RangerEnumDef rangerEnumDefObj = new RangerEnumDef();
rangerEnumDefObj.setName("authnType");
rangerEnumDefObj.setDefaultIndex(0);
XXEnumDef enumDefObj = new XXEnumDef();
enumDefObj.setAddedByUserId(Id);
enumDefObj.setCreateTime(new Date());
enumDefObj.setDefaultindex(0);
enumDefObj.setDefid(Id);
enumDefObj.setId(Id);
enumDefObj.setName("authnType");
enumDefObj.setUpdatedByUserId(Id);
enumDefObj.setUpdateTime(new Date());
XXServiceDef serviceDefObj = new XXServiceDef();
serviceDefObj.setAddedByUserId(Id);
serviceDefObj.setCreateTime(new Date());
serviceDefObj.setDescription("HDFS Repository");
serviceDefObj.setGuid("1427365526516_835_0");
serviceDefObj.setId(Id);
Mockito.when(
(XXEnumDef) rangerAuditFields.populateAuditFields(enumDefObj,
serviceDefObj)).thenReturn(enumDefObj);
XXEnumDef dbEnumDef = rangerServiceDefService
.populateRangerEnumDefToXX(rangerEnumDefObj, enumDefObj,
serviceDefObj,1);
Assert.assertNotNull(dbEnumDef);
Assert.assertEquals(dbEnumDef, enumDefObj);
Assert.assertEquals(dbEnumDef.getName(), enumDefObj.getName());
Assert.assertEquals(dbEnumDef.getDefid(), enumDefObj.getDefid());
Assert.assertEquals(dbEnumDef.getId(), enumDefObj.getId());
Assert.assertEquals(dbEnumDef.getCreateTime(),
enumDefObj.getCreateTime());
}
@Test
public void test17populateRangerEnumDefToXXnullValue() {
RangerEnumDef rangerEnumDefObj = null;
XXEnumDef enumDefObj = null;
XXServiceDef serviceDefObj = null;
Mockito.when(
restErrorUtil.createRESTException(
"RangerServiceDef cannot be null.",
MessageEnums.DATA_NOT_FOUND)).thenThrow(
new WebApplicationException());
thrown.expect(WebApplicationException.class);
XXEnumDef dbEnumDef = rangerServiceDefService
.populateRangerEnumDefToXX(rangerEnumDefObj, enumDefObj,
serviceDefObj, 1);
Assert.assertNull(dbEnumDef);
}
@Test
public void test18populateXXToRangerEnumDef() {
XXEnumElementDefDao xEnumElementDefDao = Mockito
.mock(XXEnumElementDefDao.class);
List<XXEnumElementDef> enumElementDefList = new ArrayList<XXEnumElementDef>();
XXEnumElementDef enumElementDefObj = new XXEnumElementDef();
enumElementDefObj.setAddedByUserId(Id);
enumElementDefObj.setCreateTime(new Date());
enumElementDefObj.setEnumdefid(Id);
enumElementDefObj.setId(Id);
enumElementDefObj.setLabel("Simple");
enumElementDefObj.setName("simple");
enumElementDefObj.setOrder(0);
enumElementDefObj.setUpdatedByUserId(Id);
enumElementDefObj.setUpdateTime(new Date());
enumElementDefList.add(enumElementDefObj);
XXEnumDef enumDefObj = new XXEnumDef();
enumDefObj.setAddedByUserId(Id);
enumDefObj.setCreateTime(new Date());
enumDefObj.setDefaultindex(0);
enumDefObj.setDefid(Id);
enumDefObj.setId(Id);
enumDefObj.setName("authnType");
enumDefObj.setUpdatedByUserId(Id);
enumDefObj.setUpdateTime(new Date());
Mockito.when(daoManager.getXXEnumElementDef()).thenReturn(
xEnumElementDefDao);
Mockito.when(xEnumElementDefDao.findByEnumDefId(enumDefObj.getId()))
.thenReturn(enumElementDefList);
RangerEnumDef dbRangerEnumDef = rangerServiceDefService
.populateXXToRangerEnumDef(enumDefObj);
Assert.assertNotNull(dbRangerEnumDef);
Assert.assertEquals(dbRangerEnumDef.getName(), enumDefObj.getName());
Mockito.verify(daoManager).getXXEnumElementDef();
}
@Test
public void test19populateRangerEnumElementDefToXX() {
RangerEnumElementDef rangerEnumElementDefObj = new RangerEnumElementDef();
rangerEnumElementDefObj.setLabel("Simple");
rangerEnumElementDefObj.setName("simple");
rangerEnumElementDefObj.setRbKeyLabel(null);
XXEnumElementDef enumElementDefObj = new XXEnumElementDef();
enumElementDefObj.setAddedByUserId(Id);
enumElementDefObj.setCreateTime(new Date());
enumElementDefObj.setEnumdefid(Id);
enumElementDefObj.setId(Id);
enumElementDefObj.setLabel("Simple");
enumElementDefObj.setName("simple");
enumElementDefObj.setOrder(0);
enumElementDefObj.setUpdatedByUserId(Id);
enumElementDefObj.setUpdateTime(new Date());
XXEnumDef enumDefObj = new XXEnumDef();
enumDefObj.setAddedByUserId(Id);
enumDefObj.setCreateTime(new Date());
enumDefObj.setDefaultindex(0);
enumDefObj.setDefid(Id);
enumDefObj.setId(Id);
enumDefObj.setName("authnType");
enumDefObj.setUpdatedByUserId(Id);
enumDefObj.setUpdateTime(new Date());
Mockito.when(
(XXEnumElementDef) rangerAuditFields.populateAuditFields(
enumElementDefObj, enumDefObj)).thenReturn(
enumElementDefObj);
XXEnumElementDef dbEnumElementDef = rangerServiceDefService
.populateRangerEnumElementDefToXX(rangerEnumElementDefObj,
enumElementDefObj, enumDefObj, 1);
Assert.assertNotNull(dbEnumElementDef);
Assert.assertEquals(dbEnumElementDef.getId(), enumElementDefObj.getId());
Assert.assertEquals(dbEnumElementDef.getName(),
enumElementDefObj.getName());
Assert.assertEquals(dbEnumElementDef.getLabel(),
enumElementDefObj.getLabel());
Assert.assertEquals(dbEnumElementDef.getCreateTime(),
enumElementDefObj.getCreateTime());
Assert.assertEquals(dbEnumElementDef.getAddedByUserId(),
enumElementDefObj.getAddedByUserId());
Assert.assertEquals(dbEnumElementDef.getUpdateTime(),
enumElementDefObj.getUpdateTime());
Assert.assertEquals(dbEnumElementDef.getUpdatedByUserId(),
enumElementDefObj.getUpdatedByUserId());
Mockito.verify(rangerAuditFields).populateAuditFields(
enumElementDefObj, enumDefObj);
}
@Test
public void test20populateXXToRangerEnumElementDef() {
XXEnumElementDef enumElementDefObj = new XXEnumElementDef();
enumElementDefObj.setAddedByUserId(Id);
enumElementDefObj.setCreateTime(new Date());
enumElementDefObj.setEnumdefid(Id);
enumElementDefObj.setId(Id);
enumElementDefObj.setLabel("Simple");
enumElementDefObj.setName("simple");
enumElementDefObj.setOrder(0);
enumElementDefObj.setUpdatedByUserId(Id);
enumElementDefObj.setUpdateTime(new Date());
RangerEnumElementDef dbRangerEnumElementDef = rangerServiceDefService
.populateXXToRangerEnumElementDef(enumElementDefObj);
Assert.assertNotNull(dbRangerEnumElementDef);
Assert.assertEquals(dbRangerEnumElementDef.getLabel(),
enumElementDefObj.getLabel());
Assert.assertEquals(dbRangerEnumElementDef.getName(),
enumElementDefObj.getName());
}
@Test
public void test21searchRangerServiceDefs() {
setup();
SearchFilter searchFilter = new SearchFilter();
searchFilter.setParam(SearchFilter.POLICY_NAME, "policyName");
searchFilter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
BaseDao baseDao = Mockito.mock(BaseDao.class);
Mockito.when(daoManager.getDaoForClassName(Mockito.anyString()))
.thenReturn(baseDao);
RangerServiceDefList dbRangerServiceDefList = rangerServiceDefService
.searchRangerServiceDefs(searchFilter);
Assert.assertNotNull(dbRangerServiceDefList);
Mockito.verify(daoManager).getDaoForClassName(Mockito.anyString());
}
}