/*
* 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 org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXServiceVersionInfoDao;
import org.apache.ranger.db.XXTagAttributeDefDao;
import org.apache.ranger.db.XXTagDefDao;
import org.apache.ranger.entity.XXTagAttributeDef;
import org.apache.ranger.entity.XXTagDef;
import org.apache.ranger.plugin.model.RangerTagDef;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
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 TestRangerTagDefService {
Long id = 1L;
String guid = "989898_01_1";
String name = "test";
Long serviceId = 5L;
@InjectMocks
RangerTagDefService rangerTagDefService = new RangerTagDefService();
@Mock
RangerDaoManager daoMgr;
@Test
public void test1ValidateForCreate() {
RangerTagDef rangerServiceDef = new RangerTagDef();
rangerTagDefService.validateForCreate(rangerServiceDef);
Assert.assertNotNull(rangerServiceDef);
}
@Test
public void test2validateForUpdate() {
RangerTagDef rangerServiceDef = new RangerTagDef();
XXTagDef xXTagDef = new XXTagDef();
rangerTagDefService.validateForUpdate(rangerServiceDef, xXTagDef);
Assert.assertNotNull(rangerServiceDef);
}
@Test
public void test3postUpdate(){
XXTagDef tagDef = new XXTagDef();
tagDef.setId(id);
tagDef.setName(name);
tagDef.setUpdateTime(new Date());
List<XXTagAttributeDef> tagAttrDefList = new ArrayList<XXTagAttributeDef>();
XXTagAttributeDef xxTagAttributeDef = new XXTagAttributeDef();
xxTagAttributeDef.setId(id);
xxTagAttributeDef.setName(name);
tagAttrDefList.add(xxTagAttributeDef);
XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class);
XXServiceVersionInfoDao xxServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class);
Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao);
Mockito.when(xxTagAttributeDefDao.findByTagDefId(tagDef.getId())).thenReturn(tagAttrDefList);
Mockito.when(daoMgr.getXXServiceVersionInfo()).thenReturn(xxServiceVersionInfoDao);
Mockito.doNothing().when(xxServiceVersionInfoDao).updateServiceVersionInfoForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime());
RangerTagDef result = rangerTagDefService.postUpdate(tagDef);
Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId());
Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName());
Mockito.verify(daoMgr).getXXTagAttributeDef();
Mockito.verify(xxTagAttributeDefDao).findByTagDefId(tagDef.getId());
Mockito.verify(daoMgr).getXXServiceVersionInfo();
Mockito.verify(xxServiceVersionInfoDao).updateServiceVersionInfoForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime());
}
@Test
public void test4getTagDefByGuid(){
XXTagDef xxTagDef = new XXTagDef();
xxTagDef.setId(id);
xxTagDef.setName(name);
xxTagDef.setUpdateTime(new Date());
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByGuid(guid)).thenReturn(xxTagDef);
List<XXTagAttributeDef> tagAttrDefList = new ArrayList<XXTagAttributeDef>();
XXTagAttributeDef xxTagAttributeDef = new XXTagAttributeDef();
xxTagAttributeDef.setId(id);
xxTagAttributeDef.setName(name);
tagAttrDefList.add(xxTagAttributeDef);
XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class);
Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao);
Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList);
RangerTagDef result = rangerTagDefService.getTagDefByGuid(guid);
Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId());
Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName());
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByGuid(guid);
Mockito.verify(daoMgr).getXXTagAttributeDef();
Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId());
}
@Test
public void test5getTagDefByGuid(){
XXTagDef xxTagDef = null;
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByGuid(guid)).thenReturn(xxTagDef);
RangerTagDef result = rangerTagDefService.getTagDefByGuid(guid);
Assert.assertNull(result);
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByGuid(guid);
}
@Test
public void test6getTagDefByName(){
RangerTagDef oldTagDef = new RangerTagDef();
oldTagDef.setId(id);
oldTagDef.setName(name);
XXTagDef xxTagDef = new XXTagDef();
xxTagDef.setId(id);
xxTagDef.setName(name);
xxTagDef.setUpdateTime(new Date());
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByName(name)).thenReturn(xxTagDef);
List<XXTagAttributeDef> tagAttrDefList = new ArrayList<XXTagAttributeDef>();
XXTagAttributeDef xxTagAttributeDef = new XXTagAttributeDef();
xxTagAttributeDef.setId(id);
xxTagAttributeDef.setName(name);
tagAttrDefList.add(xxTagAttributeDef);
XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class);
Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao);
Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList);
RangerTagDef result = rangerTagDefService.getTagDefByName(name);
Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId());
Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName());
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByName(name);
Mockito.verify(daoMgr).getXXTagAttributeDef();
Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId());
}
@Test
public void test7getTagDefByName(){
XXTagDef xxTagDef = null;
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByName(name)).thenReturn(xxTagDef);
RangerTagDef result = rangerTagDefService.getTagDefByName(name);
Assert.assertNull(result);
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByName(name);
}
@Test
public void test8getTagDefsByServiceId(){
List<XXTagDef> xxTagDefs = new ArrayList<XXTagDef>();
XXTagDef xxTagDef = new XXTagDef();
xxTagDef.setId(id);
xxTagDef.setName(name);
xxTagDefs.add(xxTagDef);
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByServiceId(serviceId)).thenReturn(xxTagDefs);
List<XXTagAttributeDef> tagAttrDefList = new ArrayList<XXTagAttributeDef>();
XXTagAttributeDef xxTagAttributeDef = new XXTagAttributeDef();
xxTagAttributeDef.setId(id);
xxTagAttributeDef.setName(name);
tagAttrDefList.add(xxTagAttributeDef);
XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class);
Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao);
Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList);
List<RangerTagDef> result = rangerTagDefService.getTagDefsByServiceId(serviceId);
Assert.assertEquals(result.get(0).getId(), tagAttrDefList.get(0).getId());
Assert.assertEquals(result.get(0).getName(), tagAttrDefList.get(0).getName());
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByServiceId(serviceId);
Mockito.verify(daoMgr).getXXTagAttributeDef();
Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId());
}
@Test
public void test9getTagDefsByServiceId(){
List<XXTagDef> xxTagDefs = new ArrayList<XXTagDef>();
XXTagDefDao xXTagDefDao = Mockito.mock(XXTagDefDao.class);
Mockito.when(daoMgr.getXXTagDef()).thenReturn(xXTagDefDao);
Mockito.when(xXTagDefDao.findByServiceId(serviceId)).thenReturn(xxTagDefs);
List<RangerTagDef> result = rangerTagDefService.getTagDefsByServiceId(serviceId);
Assert.assertNotNull(result);
Mockito.verify(daoMgr).getXXTagDef();
Mockito.verify(xXTagDefDao).findByServiceId(serviceId);
}
@Test
public void test10getPopulatedViewObject(){
XXTagDef xxTagDef = new XXTagDef();
xxTagDef.setId(id);
xxTagDef.setName(name);
xxTagDef.setUpdateTime(new Date());
List<XXTagAttributeDef> tagAttrDefList = new ArrayList<XXTagAttributeDef>();
XXTagAttributeDef xxTagAttributeDef = new XXTagAttributeDef();
xxTagAttributeDef.setId(id);
xxTagAttributeDef.setName(name);
tagAttrDefList.add(xxTagAttributeDef);
XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class);
Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao);
Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList);
RangerTagDef result = rangerTagDefService.getPopulatedViewObject(xxTagDef);
Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId());
Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName());
Mockito.verify(daoMgr).getXXTagAttributeDef();
Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId());
}
}