You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/05/31 00:08:25 UTC
[ranger] branch master updated: RANGER-4168: added unit tests for Metrics and TagDBStore the missing classes
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new ce3c3b8b0 RANGER-4168: added unit tests for Metrics and TagDBStore the missing classes
ce3c3b8b0 is described below
commit ce3c3b8b03dc51b6b3de6809f7d0d46b0f34aa06
Author: Ramachandran Krishnan <ra...@gmail.com>
AuthorDate: Thu Apr 20 21:43:06 2023 +0530
RANGER-4168: added unit tests for Metrics and TagDBStore the missing classes
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
.../java/org/apache/ranger/rest/MetricsREST.java | 10 +-
.../org/apache/ranger/util/RangerMetricsUtil.java | 17 +-
.../java/org/apache/ranger/biz/TestTagDBStore.java | 1178 ++++++++++++++++++++
.../org/apache/ranger/rest/TestMetricsREST.java | 87 ++
.../apache/ranger/util/TestRangerMetricsUtil.java | 51 +
5 files changed, 1329 insertions(+), 14 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/MetricsREST.java b/security-admin/src/main/java/org/apache/ranger/rest/MetricsREST.java
index 5b3638b98..b34a795b4 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/MetricsREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/MetricsREST.java
@@ -77,7 +77,7 @@ public class MetricsREST {
jvm.put("jvm",vmDetails);
if (LOG.isDebugEnabled()) {
- LOG.debug("<== MetricsREST.getStatus() " + jvm);
+ LOG.debug("<== MetricsREST.getStatus(): jvm=" + jvm);
}
return new RangerMetrics(jvm);
@@ -88,7 +88,7 @@ public class MetricsREST {
@Produces(MediaType.TEXT_PLAIN)
public String getMetricsPrometheus() {
if (LOG.isDebugEnabled()) {
- LOG.debug("MetricsREST.getMetricsPrometheus() ===>>");
+ LOG.debug("==> MetricsREST.getMetricsPrometheus()");
}
String ret = "";
try {
@@ -98,7 +98,7 @@ public class MetricsREST {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("MetricsREST.getMetricsPrometheus() <<=== {}", ret);
+ LOG.debug("<== MetricsREST.getMetricsPrometheus(): ret=" + ret);
}
return ret;
}
@@ -108,7 +108,7 @@ public class MetricsREST {
@Produces(MediaType.APPLICATION_JSON)
public Map<String, Map<String, Object>> getMetricsJson() {
if (LOG.isDebugEnabled()) {
- LOG.debug("MetricsREST.getMetricsJson() ===>>");
+ LOG.debug("==> MetricsREST.getMetricsJson()");
}
Map<String, Map<String, Object>> ret = null;
@@ -119,7 +119,7 @@ public class MetricsREST {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("MetricsREST.getMetricsJson() <<=== {}", ret);
+ LOG.debug("<== MetricsREST.getMetricsJson(): ret=" + ret);
}
return ret;
}
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java b/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
index d76be225d..b50a1a838 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerMetricsUtil.java
@@ -44,7 +44,6 @@ public class RangerMetricsUtil {
private static final Logger LOG = LoggerFactory.getLogger(RangerMetricsUtil.class);
private static final OperatingSystemMXBean OS;
private static final MemoryMXBean MEM_BEAN;
- public static final String NL = System.getProperty("line.separator");
static {
OS = ManagementFactory.getOperatingSystemMXBean();
@@ -53,7 +52,7 @@ public class RangerMetricsUtil {
public Map<String, Object> getValues() {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> RangerJVMMetricUtil.getValues()");
+ LOG.debug("==> RangerMetricsUtil.getValues()");
}
Map<String, Object> values = new LinkedHashMap<>();
@@ -62,7 +61,7 @@ public class RangerMetricsUtil {
values.put("memory", addMemoryDetails());
if (LOG.isDebugEnabled()) {
- LOG.debug("<== RangerJVMMetricUtil.getValues()" + values);
+ LOG.debug("<== RangerMetricsUtil.getValues()" + values);
}
return values;
@@ -73,7 +72,7 @@ public class RangerMetricsUtil {
*/
protected Map<String, Object> getPoolDivision() {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> RangerJVMMetricUtil.getPoolDivision()");
+ LOG.debug("==> RangerMetricsUtil.getPoolDivision()");
}
Map<String, Object> poolDivisionValues = new LinkedHashMap<>();
@@ -84,7 +83,7 @@ public class RangerMetricsUtil {
}
if (LOG.isDebugEnabled()) {
- LOG.debug("<== RangerJVMMetricUtil.getPoolDivision()" + poolDivisionValues);
+ LOG.debug("<== RangerMetricsUtil.getPoolDivision()" + poolDivisionValues);
}
return poolDivisionValues;
@@ -95,7 +94,7 @@ public class RangerMetricsUtil {
*/
protected Map<String, Object> addMemoryDetails() {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> RangerJVMMetricUtil.addMemoryDetails()");
+ LOG.debug("==> RangerMetricsUtil.addMemoryDetails()");
}
Map<String, Object> memory = new LinkedHashMap<>();
@@ -112,7 +111,7 @@ public class RangerMetricsUtil {
memory.put("memory_pool_usages", getPoolDivision());
if (LOG.isDebugEnabled()) {
- LOG.debug("<== RangerJVMMetricUtil.addMemoryDetails()" + memory);
+ LOG.debug("<== RangerMetricsUtil.addMemoryDetails()" + memory);
}
return memory;
@@ -123,12 +122,12 @@ public class RangerMetricsUtil {
*/
protected String[] addSystemInfo() {
if (LOG.isDebugEnabled()) {
- LOG.debug("==> RangerJVMMetricUtil.addSystemInfo()");
+ LOG.debug("==> RangerMetricsUtil.addSystemInfo()");
}
String[] osInfo = { OS.getName(), OS.getArch(), OS.getVersion() };
if (LOG.isDebugEnabled()) {
- LOG.debug("<== RangerJVMMetricUtil.addSystemInfo()" + osInfo);
+ LOG.debug("<== RangerMetricsUtil.addSystemInfo()" + osInfo);
}
return osInfo;
diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
new file mode 100644
index 000000000..99858a568
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
@@ -0,0 +1,1178 @@
+/*
+ * 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.biz;
+
+import static org.mockito.ArgumentMatchers.any;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import javax.ws.rs.WebApplicationException;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.RangerServiceTagsCache;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.db.XXServiceDao;
+import org.apache.ranger.db.XXServiceResourceDao;
+import org.apache.ranger.db.XXServiceVersionInfoDao;
+import org.apache.ranger.db.XXTagDao;
+import org.apache.ranger.db.XXTagResourceMapDao;
+import org.apache.ranger.entity.XXService;
+import org.apache.ranger.entity.XXServiceResource;
+import org.apache.ranger.entity.XXServiceVersionInfo;
+import org.apache.ranger.entity.XXTag;
+import org.apache.ranger.entity.XXTagResourceMap;
+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.RangerPolicyConditionDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerResourceDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerServiceConfigDef;
+import org.apache.ranger.plugin.model.RangerServiceResource;
+import org.apache.ranger.plugin.model.RangerTag;
+import org.apache.ranger.plugin.model.RangerTagDef;
+import org.apache.ranger.plugin.model.RangerTagResourceMap;
+import org.apache.ranger.plugin.store.PList;
+import org.apache.ranger.plugin.util.SearchFilter;
+import org.apache.ranger.plugin.util.ServiceTags;
+import org.apache.ranger.service.RangerServiceResourceService;
+import org.apache.ranger.service.RangerTagDefService;
+import org.apache.ranger.service.RangerTagResourceMapService;
+import org.apache.ranger.service.RangerTagService;
+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 TestTagDBStore {
+ private final static Long id = 1L;
+ private final static String name = "test";
+ private final static String gId = "1427365526516_835_0";
+ private final static Long lastKnownVersion = 10L;
+ private final static String resourceSignature = "testResourceSign";
+ private final static String serviceName = "HDFS";
+
+ @InjectMocks
+ TagDBStore tagDBStore = new TagDBStore();
+
+ @Mock
+ RangerTagDefService rangerTagDefService;
+
+ @Mock
+ RangerServiceResourceService rangerServiceResourceService;
+
+ @Mock
+ RangerTagResourceMapService rangerTagResourceMapService;
+
+ @Mock
+ RESTErrorUtil errorUtil;
+
+ @Mock
+ RangerTagService rangerTagService;
+
+ @Mock
+ RangerDaoManager daoManager;
+
+ @Mock
+ ServiceDBStore svcStore;
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Test
+ public void testCreateTagDef() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.create(any())).thenReturn(rangerTagDef);
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDef);
+
+ RangerTagDef returnedRangerTagDef = tagDBStore.createTagDef(rangerTagDef);
+
+ Assert.assertNotNull(returnedRangerTagDef);
+ Assert.assertEquals(returnedRangerTagDef.getId(), id);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testUpdateTagDef() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.update(any())).thenReturn(rangerTagDef);
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDef);
+
+ RangerTagDef returnedRangerTagDef = tagDBStore.updateTagDef(rangerTagDef);
+
+ Assert.assertNotNull(returnedRangerTagDef);
+ Assert.assertEquals(returnedRangerTagDef.getId(), id);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testUpdateTagDefWhenItIsNotAvailable() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(null).thenReturn(rangerTagDef);
+ Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ tagDBStore.updateTagDef(rangerTagDef);
+ }
+
+ @Test
+ public void testUpdateTagDefForTheSameName() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+ RangerTagDef rangerTagDefInDB = createRangerTagDef();
+
+ rangerTagDefInDB.setName("test1");
+
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDefInDB);
+ Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ tagDBStore.updateTagDef(rangerTagDef);
+ }
+
+ @Test
+ public void testGetTagDefByName() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.getTagDefByName(any())).thenReturn(rangerTagDef);
+
+ RangerTagDef returnedRangerTagDef = tagDBStore.getTagDefByName(rangerTagDef.getName());
+
+ Assert.assertNotNull(returnedRangerTagDef);
+ Assert.assertEquals(returnedRangerTagDef.getId(), id);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testGetTagDefByGuid() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.getTagDefByGuid(any())).thenReturn(rangerTagDef);
+
+ RangerTagDef returnedRangerTagDef = tagDBStore.getTagDefByGuid(rangerTagDef.getGuid());
+
+ Assert.assertNotNull(returnedRangerTagDef);
+ Assert.assertEquals(returnedRangerTagDef.getId(), id);
+ Assert.assertEquals(returnedRangerTagDef.getGuid(), gId);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testGetTagDefById() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDef);
+
+ RangerTagDef returnedRangerTagDef = tagDBStore.getTagDef(rangerTagDef.getId());
+
+ Assert.assertNotNull(returnedRangerTagDef);
+ Assert.assertEquals(returnedRangerTagDef.getId(), id);
+ Assert.assertEquals(returnedRangerTagDef.getGuid(), gId);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testDeleteTagDefById() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDef);
+ Mockito.when(rangerTagDefService.delete(Mockito.any())).thenReturn(true);
+
+ tagDBStore.deleteTagDef(id);
+ }
+
+ @Test
+ public void testDeleteTagDefByName() throws Exception {
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ Mockito.when(rangerTagDefService.getTagDefByName(any())).thenReturn(rangerTagDef);
+ Mockito.when(rangerTagDefService.delete(Mockito.any())).thenReturn(true);
+
+ tagDBStore.deleteTagDefByName(name);
+ }
+
+ @Test
+ public void testGetTagDefs() throws Exception {
+ PList<RangerTagDef> rangerTagDefPList = createRangerTagDefPList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerTagDefService.searchRangerTagDefs(searchFilter)).thenReturn(rangerTagDefPList);
+
+ List<RangerTagDef> rangerTagDefList = tagDBStore.getTagDefs(searchFilter);
+
+ Assert.assertNotNull(rangerTagDefList);
+
+ RangerTagDef rangerTagDef = rangerTagDefList.get(0);
+
+ Assert.assertEquals(rangerTagDef.getId(), id);
+ Assert.assertEquals(rangerTagDef.getGuid(), gId);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testGetPaginatedTagDefs() throws Exception {
+ PList<RangerTagDef> rangerTagDefPList = createRangerTagDefPList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerTagDefService.searchRangerTagDefs(searchFilter)).thenReturn(rangerTagDefPList);
+
+ PList<RangerTagDef> returnedRangerTagDefList = tagDBStore.getPaginatedTagDefs(searchFilter);
+
+ Assert.assertNotNull(returnedRangerTagDefList);
+
+ RangerTagDef rangerTagDef = returnedRangerTagDefList.getList().get(0);
+
+ Assert.assertEquals(returnedRangerTagDefList.getList().size(), 1);
+ Assert.assertEquals(rangerTagDef.getId(), id);
+ Assert.assertEquals(rangerTagDef.getGuid(), gId);
+ Assert.assertEquals(rangerTagDef.getName(), name);
+ }
+
+ @Test
+ public void testCreateTag() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.create(any())).thenReturn(rangerTag);
+ Mockito.when(rangerTagService.read(id)).thenReturn(rangerTag);
+
+ RangerTag returnedRangerTag = tagDBStore.createTag(rangerTag);
+
+ Assert.assertNotNull(returnedRangerTag);
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testUpdateTag() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.update(any())).thenReturn(rangerTag);
+ Mockito.when(rangerTagService.read(id)).thenReturn(rangerTag);
+
+ RangerTag returnedRangerTag = tagDBStore.updateTag(rangerTag);
+
+ Assert.assertNotNull(returnedRangerTag);
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testUpdateTagWhenItIsNotAvailable() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.read(id)).thenReturn(null).thenReturn(rangerTag);
+ Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ tagDBStore.updateTag(rangerTag);
+ }
+
+ @Test
+ public void testDeleteTagById() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.read(id)).thenReturn(rangerTag);
+ Mockito.when(rangerTagService.delete(Mockito.any())).thenReturn(true);
+
+ tagDBStore.deleteTag(id);
+ }
+
+ @Test
+ public void testGetTagById() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.read(id)).thenReturn(rangerTag);
+
+ RangerTag returnedRangerTag = tagDBStore.getTag(id);
+
+ Assert.assertNotNull(returnedRangerTag);
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagByGuid() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.getTagByGuid(gId)).thenReturn(rangerTag);
+
+ RangerTag returnedRangerTag = tagDBStore.getTagByGuid(gId);
+
+ Assert.assertNotNull(returnedRangerTag);
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+
+ @Test
+ public void testGetTagsByType() throws Exception {
+ String type = "file";
+ RangerTag rangerTag = createRangerTag();
+ List<RangerTag> rangerTags = new ArrayList<>();
+
+ rangerTags.add(rangerTag);
+
+ Mockito.when(rangerTagService.getTagsByType(type)).thenReturn(rangerTags);
+
+ List<RangerTag> returnedRangerTags = tagDBStore.getTagsByType(type);
+
+ Assert.assertNotNull(returnedRangerTags);
+
+ RangerTag returnedRangerTag = returnedRangerTags.get(0);
+
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagsForResourceId() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+ List<RangerTag> rangerTags = new ArrayList<>();
+
+ rangerTags.add(rangerTag);
+
+ Mockito.when(rangerTagService.getTagsForResourceId(id)).thenReturn(rangerTags);
+
+ List<RangerTag> returnedRangerTags = tagDBStore.getTagsForResourceId(id);
+
+ Assert.assertNotNull(returnedRangerTags);
+
+ RangerTag returnedRangerTag = returnedRangerTags.get(0);
+
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagsForResourceGuid() throws Exception {
+ RangerTag rangerTag = createRangerTag();
+ List<RangerTag> rangerTags = new ArrayList<>();
+
+ rangerTags.add(rangerTag);
+ Mockito.when(rangerTagService.getTagsForResourceGuid(gId)).thenReturn(rangerTags);
+
+ List<RangerTag> returnedRangerTags = tagDBStore.getTagsForResourceGuid(gId);
+
+ Assert.assertNotNull(returnedRangerTags);
+
+ RangerTag returnedRangerTag = returnedRangerTags.get(0);
+
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTags() throws Exception {
+ SearchFilter filter = new SearchFilter();
+ PList<RangerTag> rangerTagPList = createRangerTagPList();
+
+ Mockito.when(rangerTagService.searchRangerTags(filter)).thenReturn(rangerTagPList);
+
+ List<RangerTag> returnedRangerTags = tagDBStore.getTags(filter);
+
+ Assert.assertNotNull(returnedRangerTags);
+
+ RangerTag returnedRangerTag = returnedRangerTags.get(0);
+
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetPaginatedTags() throws Exception {
+ SearchFilter filter = new SearchFilter();
+ PList<RangerTag> rangerTagPList = createRangerTagPList();
+
+ Mockito.when(rangerTagService.searchRangerTags(filter)).thenReturn(rangerTagPList);
+
+ PList<RangerTag> returnedRangerTagPList = tagDBStore.getPaginatedTags(filter);
+
+ Assert.assertNotNull(returnedRangerTagPList);
+ Assert.assertEquals(returnedRangerTagPList.getListSize(), 1);
+
+ RangerTag returnedRangerTag = returnedRangerTagPList.getList().get(0);
+
+ Assert.assertEquals(returnedRangerTag.getId(), id);
+ Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ }
+
+ @Test
+ public void testResetTagCache() throws Exception {
+ RangerServiceTagsCache rangerServiceTagsCache = Mockito.mock(RangerServiceTagsCache.class);
+
+ tagDBStore.resetTagCache(name);
+ }
+
+ @Test
+ public void testCreateServiceResource() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.create(rangerServiceResource)).thenReturn(rangerServiceResource);
+ Mockito.when(rangerServiceResourceService.read(id)).thenReturn(rangerServiceResource);
+
+ RangerServiceResource returnedRangerServiceResource = tagDBStore.createServiceResource(rangerServiceResource);
+
+ Assert.assertNotNull(returnedRangerServiceResource);
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void testUpdateServiceResource() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.update(rangerServiceResource)).thenReturn(rangerServiceResource);
+ Mockito.when(rangerServiceResourceService.read(id)).thenReturn(rangerServiceResource);
+
+ RangerServiceResource returnedRangerServiceResource = tagDBStore.updateServiceResource(rangerServiceResource);
+
+ Assert.assertNotNull(returnedRangerServiceResource);
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void testUpdateServiceResourceWhenItIsNotAvailable() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.read(id)).thenReturn(null).thenReturn(rangerServiceResource);
+ Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ tagDBStore.updateServiceResource(rangerServiceResource);
+ }
+
+ @Test
+ public void testRefreshServiceResource() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+ XXServiceResource serviceResourceEntity = createXXServiceResource();
+ XXServiceResourceDao xxServiceResourceDao = Mockito.mock(XXServiceResourceDao.class);
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByResourceId(id)).thenReturn(rangerTagResourceMapList);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(xxServiceResourceDao);
+ Mockito.when(xxServiceResourceDao.getById(Mockito.any())).thenReturn(serviceResourceEntity);
+ Mockito.when(xxServiceResourceDao.update(serviceResourceEntity)).thenReturn(serviceResourceEntity);
+
+ tagDBStore.refreshServiceResource(id);
+ }
+
+ @Test
+ public void testDeleteServiceResourceByGuid() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.delete(rangerServiceResource)).thenReturn(true);
+ Mockito.when(rangerServiceResourceService.getServiceResourceByGuid(gId)).thenReturn(rangerServiceResource);
+
+ tagDBStore.deleteServiceResourceByGuid(gId);
+ }
+
+ @Test
+ public void tesGetServiceResourceByGuid() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.getServiceResourceByGuid(gId)).thenReturn(rangerServiceResource);
+
+ RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResourceByGuid(gId);
+
+ Assert.assertNotNull(returnedRangerServiceResource);
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void tesGetServiceResourceById() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+
+ Mockito.when(rangerServiceResourceService.read(id)).thenReturn(rangerServiceResource);
+
+ RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResource(id);
+
+ Assert.assertNotNull(returnedRangerServiceResource);
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void tesGetServiceResourcesByService() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+ List<RangerServiceResource> rangerServiceResourceList = new ArrayList<>();
+
+ rangerServiceResourceList.add(rangerServiceResource);
+
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(xxServiceDao.findIdByName(serviceName)).thenReturn(id);
+ Mockito.when(rangerServiceResourceService.getByServiceId(id)).thenReturn(rangerServiceResourceList);
+
+ List<RangerServiceResource> returnedRangerServiceResourceList = tagDBStore.getServiceResourcesByService(serviceName);
+
+ Assert.assertNotNull(returnedRangerServiceResourceList);
+
+ RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourceList.get(0);
+
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void tesGetServiceResourceGuidsByService() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+ List<String> result = new ArrayList<>();
+ XXServiceResourceDao xxServiceResourceDao = Mockito.mock(XXServiceResourceDao.class);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+
+ result.add(rangerServiceResource.getGuid());
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(xxServiceResourceDao);
+ Mockito.when(xxServiceDao.findIdByName(serviceName)).thenReturn(id);
+ Mockito.when(xxServiceResourceDao.findServiceResourceGuidsInServiceId(id)).thenReturn(result);
+
+ List<String> returnedServiceResourceGuidsInServiceId = tagDBStore.getServiceResourceGuidsByService(serviceName);
+
+ Assert.assertNotNull(returnedServiceResourceGuidsInServiceId);
+ Assert.assertEquals(returnedServiceResourceGuidsInServiceId.get(0), gId);
+ }
+
+ @Test
+ public void tesGetServiceResourceByServiceAndResourceSignature() throws Exception {
+ RangerServiceResource rangerServiceResource = createRangerServiceResource();
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(xxServiceDao.findIdByName(serviceName)).thenReturn(id);
+ Mockito.when(rangerServiceResourceService.getByServiceAndResourceSignature(id, resourceSignature)).thenReturn(rangerServiceResource);
+
+ RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResourceByServiceAndResourceSignature(serviceName, resourceSignature);
+
+ Assert.assertNotNull(returnedRangerServiceResource);
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ }
+
+ @Test
+ public void tesGetServiceResources() throws Exception {
+ PList<RangerServiceResource> rangerServiceResourcePList = createRangerServiceResourcePList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerServiceResourceService.searchServiceResources(searchFilter)).thenReturn(rangerServiceResourcePList);
+
+ List<RangerServiceResource> returnedRangerServiceResourceList = tagDBStore.getServiceResources(searchFilter);
+
+ Assert.assertNotNull(returnedRangerServiceResourceList);
+ Assert.assertEquals(returnedRangerServiceResourceList.size(), 1);
+
+ RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourceList.get(0);
+
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ }
+
+ @Test
+ public void tesGetPaginatedServiceResources() throws Exception {
+ PList<RangerServiceResource> rangerServiceResourcePList = createRangerServiceResourcePList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerServiceResourceService.searchServiceResources(searchFilter)).thenReturn(rangerServiceResourcePList);
+
+ PList<RangerServiceResource> returnedRangerServiceResourcePList = tagDBStore.getPaginatedServiceResources(searchFilter);
+
+ Assert.assertNotNull(returnedRangerServiceResourcePList);
+ Assert.assertEquals(returnedRangerServiceResourcePList.getList().size(), 1);
+
+ RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourcePList.getList().get(0);
+
+ Assert.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ }
+
+ @Test
+ public void tesCreateTagResourceMap() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+ XXServiceResource serviceResourceEntity = createXXServiceResource();
+ XXServiceResourceDao xxServiceResourceDao = Mockito.mock(XXServiceResourceDao.class);
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.create(rangerTagResourceMap)).thenReturn(rangerTagResourceMap);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(xxServiceResourceDao);
+ Mockito.when(xxServiceResourceDao.getById(Mockito.any())).thenReturn(serviceResourceEntity);
+ Mockito.when(xxServiceResourceDao.update(serviceResourceEntity)).thenReturn(serviceResourceEntity);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.createTagResourceMap(rangerTagResourceMap);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testDeleteTagResourceMap() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+ XXServiceResource serviceResourceEntity = createXXServiceResource();
+ XXServiceResourceDao xxServiceResourceDao = Mockito.mock(XXServiceResourceDao.class);
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByResourceId(id)).thenReturn(rangerTagResourceMapList);
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(xxServiceResourceDao);
+ Mockito.when(xxServiceResourceDao.getById(Mockito.any())).thenReturn(serviceResourceEntity);
+ Mockito.when(xxServiceResourceDao.update(serviceResourceEntity)).thenReturn(serviceResourceEntity);
+
+ RangerTag rangerTag = createRangerTag();
+
+ Mockito.when(rangerTagService.read(id)).thenReturn(rangerTag);
+ Mockito.when(rangerTagResourceMapService.read(id)).thenReturn(rangerTagResourceMap);
+ Mockito.when(rangerTagResourceMapService.delete(rangerTagResourceMap)).thenReturn(true);
+
+ tagDBStore.deleteTagResourceMap(id);
+ }
+
+ @Test
+ public void tesGetTagResourceMap() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+
+ Mockito.when(rangerTagResourceMapService.read(id)).thenReturn(rangerTagResourceMap);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMap(id);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void tesGetTagResourceMapByGuid() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+
+ Mockito.when(rangerTagResourceMapService.getByGuid(gId)).thenReturn(rangerTagResourceMap);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapByGuid(gId);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void tesGetTagResourceMapsForTagId() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByTagId(id)).thenReturn(rangerTagResourceMapList);
+
+ List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForTagId(id);
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void tesGetTagResourceMapsForTagGuid() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByTagGuid(gId)).thenReturn(rangerTagResourceMapList);
+
+ List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForTagGuid(gId);
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void tesGetTagIdsForResourceId() throws Exception {
+ List<Long> tagIds = new ArrayList<>();
+
+ tagIds.add(id);
+
+ Mockito.when(rangerTagResourceMapService.getTagIdsForResourceId(id)).thenReturn(tagIds);
+
+ List<Long> returnedTagIdsList = tagDBStore.getTagIdsForResourceId(id);
+
+ Assert.assertNotNull(returnedTagIdsList);
+ Assert.assertEquals(returnedTagIdsList.size(), 1);
+ Assert.assertEquals(returnedTagIdsList.get(0), id);
+ }
+
+
+ @Test
+ public void testGetTagResourceMapsForResourceId() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByResourceId(id)).thenReturn(rangerTagResourceMapList);
+
+ List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForResourceId(id);
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagResourceMapsForResourceGuid() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ Mockito.when(rangerTagResourceMapService.getByResourceGuid(gId)).thenReturn(rangerTagResourceMapList);
+
+ List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForResourceGuid(gId);
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+
+ @Test
+ public void testGetTagResourceMapForTagAndResourceId() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+
+ Mockito.when(rangerTagResourceMapService.getByTagAndResourceId(id,id)).thenReturn(rangerTagResourceMap);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapForTagAndResourceId(id,id);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagResourceMapForTagAndResourceGuid() throws Exception {
+ RangerTagResourceMap rangerTagResourceMap = createRangerTagResourceMap();
+
+ Mockito.when(rangerTagResourceMapService.getByTagAndResourceGuid(gId,gId)).thenReturn(rangerTagResourceMap);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapForTagAndResourceGuid(gId,gId);
+
+ Assert.assertNotNull(returnedRangerTagResourceMap);
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetPaginatedTagResourceMaps() throws Exception {
+ PList<RangerTagResourceMap> rangerTagResourceMapPList = createRangerTagResourceMapPList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerTagResourceMapService.searchRangerTaggedResources(searchFilter)).thenReturn(rangerTagResourceMapPList);
+
+ PList<RangerTagResourceMap> returnedRangerTagResourceMapPList = tagDBStore.getPaginatedTagResourceMaps(searchFilter);
+
+ Assert.assertNotNull(returnedRangerTagResourceMapPList);
+ Assert.assertEquals(returnedRangerTagResourceMapPList.getList().size(), 1);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapPList.getList().get(0);
+
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetTagResourceMaps() throws Exception {
+ PList<RangerTagResourceMap> rangerTagResourceMapPList = createRangerTagResourceMapPList();
+ SearchFilter searchFilter = new SearchFilter();
+
+ Mockito.when(rangerTagResourceMapService.searchRangerTaggedResources(searchFilter)).thenReturn(rangerTagResourceMapPList);
+
+ List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMaps(searchFilter);
+
+ Assert.assertNotNull(returnedRangerTagResourceMapList);
+ Assert.assertEquals(returnedRangerTagResourceMapList.size(), 1);
+
+ RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
+
+ Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ }
+
+ @Test
+ public void testGetServiceTagsIfUpdated() throws Exception {
+ XXServiceVersionInfo serviceVersionInfoDbObj = createXXServiceVersionInfo();
+ XXServiceVersionInfoDao xxServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXService xxService = createXXService();
+ RangerServiceDef rangerServiceDef = createRangerServiceDef();
+
+ Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xxServiceVersionInfoDao);
+ Mockito.when(xxServiceVersionInfoDao.findByServiceName(serviceName)).thenReturn(serviceVersionInfoDbObj);
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(xxServiceDao.findIdByName(serviceName)).thenReturn(id);
+ Mockito.when(xxServiceDao.findByName(serviceName)).thenReturn(xxService);
+ Mockito.when(svcStore.getServiceDef(Mockito.any())).thenReturn(rangerServiceDef);
+
+ ServiceTags serviceTags = tagDBStore.getServiceTagsIfUpdated(serviceName, -1L, true);
+
+ Assert.assertNotNull(serviceTags);
+ Assert.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
+ Assert.assertEquals(serviceTags.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void testGetServiceTags() throws Exception {
+ XXServiceVersionInfo serviceVersionInfoDbObj = createXXServiceVersionInfo();
+ XXServiceVersionInfoDao xxServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXService xxService = createXXService();
+ RangerServiceDef rangerServiceDef = createRangerServiceDef();
+
+ Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xxServiceVersionInfoDao);
+ Mockito.when(xxServiceVersionInfoDao.findByServiceName(serviceName)).thenReturn(serviceVersionInfoDbObj);
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(xxServiceDao.findByName(serviceName)).thenReturn(xxService);
+ Mockito.when(svcStore.getServiceDef(Mockito.any())).thenReturn(rangerServiceDef);
+
+ ServiceTags serviceTags = tagDBStore.getServiceTags(serviceName, -1L);
+
+ Assert.assertNotNull(serviceTags);
+ Assert.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
+ Assert.assertEquals(serviceTags.getServiceName(), serviceName);
+ }
+
+ @Test
+ public void testDeleteAllTagObjectsForService() throws Exception {
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXTagDao xxTagDao = Mockito.mock(XXTagDao.class);
+ XXTagResourceMapDao xxTagResourceMapDao = Mockito.mock(XXTagResourceMapDao.class);
+ XXServiceResourceDao xxServiceResourceDao = Mockito.mock(XXServiceResourceDao.class);
+ XXService xxService = createXXService();
+ XXTag xxTag = createXXTag();
+ XXTagResourceMap xxTagResourceMap = createXXTagResourceMap();
+ XXServiceResource xxServiceResource = createXXServiceResource();
+ List<XXTag> xxTagList = new ArrayList<>();
+ List<XXTagResourceMap> xxTagResourceMapList = new ArrayList<>();
+ List<XXServiceResource> xxServiceResources = new ArrayList<>();
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXTag()).thenReturn(xxTagDao);
+ Mockito.when(daoManager.getXXTagResourceMap()).thenReturn(xxTagResourceMapDao);
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(xxServiceResourceDao);
+ Mockito.when(xxServiceDao.findByName(serviceName)).thenReturn(xxService);
+
+ xxTagList.add(xxTag);
+
+ xxTagResourceMapList.add(xxTagResourceMap);
+
+ xxServiceResources.add(xxServiceResource);
+
+ Mockito.when(xxTagDao.findByServiceIdAndOwner(Mockito.any(), Mockito.any())).thenReturn(xxTagList);
+ Mockito.when(xxServiceResourceDao.findByServiceId(Mockito.any())).thenReturn(xxServiceResources);
+ Mockito.when(xxTagResourceMapDao.findByServiceId(Mockito.any())).thenReturn(xxTagResourceMapList);
+ Mockito.when(xxTagDao.remove(xxTag)).thenReturn(true);
+ Mockito.when(xxTagResourceMapDao.remove(xxTagResourceMap)).thenReturn(true);
+
+ tagDBStore.deleteAllTagObjectsForService(serviceName);
+ }
+
+ @Test
+ public void testGetServiceTagsDeltaWhenTagDeltaSupportsDisabled() throws Exception {
+ ServiceTags serviceTags = tagDBStore.getServiceTagsDelta(serviceName, lastKnownVersion);
+
+ Assert.assertNull(serviceTags);
+ }
+
+ @Test
+ public void testIsSupportsTagDeltas() throws Exception {
+ boolean isSupportsTagDeltas = tagDBStore.isSupportsTagDeltas();
+
+ Assert.assertFalse(isSupportsTagDeltas);
+ }
+
+ @Test
+ public void testIsInPlaceTagUpdateSupported() throws Exception {
+ boolean isInPlaceTagUpdateSupported = tagDBStore.isInPlaceTagUpdateSupported();
+
+ Assert.assertFalse(isInPlaceTagUpdateSupported);
+ }
+
+ @Test
+ public void testGetTagVersion() throws Exception {
+ XXServiceVersionInfo serviceVersionInfoDbObj = createXXServiceVersionInfo();
+ XXServiceVersionInfoDao xxServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class);
+
+ Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xxServiceVersionInfoDao);
+ Mockito.when(xxServiceVersionInfoDao.findByServiceName(serviceName)).thenReturn(serviceVersionInfoDbObj);
+
+ Long tagVersion = tagDBStore.getTagVersion(serviceName);
+
+ Assert.assertEquals(tagVersion, lastKnownVersion);
+ }
+
+ private RangerTagDef createRangerTagDef() {
+ RangerTagDef rangerTagDef = new RangerTagDef();
+
+ rangerTagDef.setId(id);
+ rangerTagDef.setName(name);
+ rangerTagDef.setCreateTime(new Date());
+ rangerTagDef.setGuid(gId);
+ rangerTagDef.setVersion(lastKnownVersion);
+
+ return rangerTagDef;
+ }
+
+ private PList<RangerTagDef> createRangerTagDefPList() {
+ PList<RangerTagDef> rangerTagDefPList = new PList<>();
+ List<RangerTagDef> rangerTagDefList = new ArrayList<>();
+ RangerTagDef rangerTagDef = createRangerTagDef();
+
+ rangerTagDefList.add(rangerTagDef);
+
+ rangerTagDefPList.setList(rangerTagDefList);
+ rangerTagDefPList.setPageSize(0);
+ rangerTagDefPList.setResultSize(1);
+ rangerTagDefPList.setSortBy("asc");
+ rangerTagDefPList.setSortType("1");
+ rangerTagDefPList.setStartIndex(0);
+ rangerTagDefPList.setTotalCount(10);
+
+ return rangerTagDefPList;
+ }
+
+ private RangerTag createRangerTag() {
+ RangerTag rangerTag = new RangerTag();
+
+ rangerTag.setId(id);
+ rangerTag.setCreatedBy(name);
+ rangerTag.setOwner((short)0);
+ rangerTag.setCreateTime(new Date());
+ rangerTag.setGuid(gId);
+ rangerTag.setVersion(lastKnownVersion);
+
+ return rangerTag;
+ }
+
+ private PList<RangerTag> createRangerTagPList() {
+ PList<RangerTag> rangerTagPList = new PList<>();
+ List<RangerTag> rangerTagList = new ArrayList<>();
+ RangerTag rangerTag = createRangerTag();
+
+ rangerTagList.add(rangerTag);
+ rangerTagPList.setList(rangerTagList);
+ rangerTagPList.setPageSize(0);
+ rangerTagPList.setResultSize(1);
+ rangerTagPList.setSortBy("asc");
+ rangerTagPList.setSortType("1");
+ rangerTagPList.setStartIndex(0);
+ rangerTagPList.setTotalCount(10);
+
+ return rangerTagPList;
+ }
+
+ private RangerServiceResource createRangerServiceResource() {
+ RangerServiceResource rangerServiceResource = new RangerServiceResource();
+
+ rangerServiceResource.setId(id);
+ rangerServiceResource.setCreateTime(new Date());
+ rangerServiceResource.setGuid(gId);
+ rangerServiceResource.setVersion(lastKnownVersion);
+ rangerServiceResource.setResourceSignature(resourceSignature);
+ rangerServiceResource.setServiceName(serviceName);
+
+ return rangerServiceResource;
+ }
+
+ private PList<RangerServiceResource> createRangerServiceResourcePList() {
+ PList<RangerServiceResource> rangerServiceResourcePList = new PList<>();
+ List<RangerServiceResource> rangerServiceResourceList = new ArrayList<>();
+ RangerServiceResource rangerServiceResource = new RangerServiceResource();
+
+ rangerServiceResource.setId(id);
+ rangerServiceResource.setCreateTime(new Date());
+ rangerServiceResource.setGuid(gId);
+ rangerServiceResource.setVersion(lastKnownVersion);
+ rangerServiceResource.setResourceSignature(resourceSignature);
+ rangerServiceResource.setServiceName(serviceName);
+
+ rangerServiceResourceList.add(rangerServiceResource);
+
+ rangerServiceResourcePList.setList(rangerServiceResourceList);
+ rangerServiceResourcePList.setPageSize(0);
+ rangerServiceResourcePList.setResultSize(1);
+ rangerServiceResourcePList.setSortBy("asc");
+ rangerServiceResourcePList.setSortType("1");
+ rangerServiceResourcePList.setStartIndex(0);
+ rangerServiceResourcePList.setTotalCount(10);
+
+ return rangerServiceResourcePList;
+ }
+
+ private RangerTagResourceMap createRangerTagResourceMap() {
+ RangerTagResourceMap rangerTagResourceMap = new RangerTagResourceMap();
+
+ rangerTagResourceMap.setId(id);
+ rangerTagResourceMap.setTagId(id);
+ rangerTagResourceMap.setGuid(gId);
+ rangerTagResourceMap.setVersion(lastKnownVersion);
+ rangerTagResourceMap.setResourceId(id);
+
+ return rangerTagResourceMap;
+ }
+
+ private XXServiceResource createXXServiceResource() {
+ XXServiceResource xxServiceResource = new XXServiceResource();
+
+ xxServiceResource.setId(id);
+ xxServiceResource.setCreateTime(new Date());
+ xxServiceResource.setGuid(gId);
+ xxServiceResource.setVersion(lastKnownVersion);
+ xxServiceResource.setResourceSignature(resourceSignature);
+ xxServiceResource.setServiceId(id);
+
+ return xxServiceResource;
+ }
+
+ private PList<RangerTagResourceMap> createRangerTagResourceMapPList() {
+ PList<RangerTagResourceMap> rangerTagResourceMapPList = new PList<>();
+ List<RangerTagResourceMap> rangerTagResourceMapList = new ArrayList<>();
+ RangerTagResourceMap rangerTagResourceMap = new RangerTagResourceMap();
+
+ rangerTagResourceMap.setId(id);
+ rangerTagResourceMap.setGuid(gId);
+ rangerTagResourceMap.setVersion(lastKnownVersion);
+ rangerTagResourceMap.setResourceId(id);
+
+ rangerTagResourceMapList.add(rangerTagResourceMap);
+
+ rangerTagResourceMapPList.setList(rangerTagResourceMapList);
+ rangerTagResourceMapPList.setPageSize(0);
+ rangerTagResourceMapPList.setResultSize(1);
+ rangerTagResourceMapPList.setSortBy("asc");
+ rangerTagResourceMapPList.setSortType("1");
+ rangerTagResourceMapPList.setStartIndex(0);
+ rangerTagResourceMapPList.setTotalCount(10);
+
+ return rangerTagResourceMapPList;
+ }
+
+ private XXServiceVersionInfo createXXServiceVersionInfo() {
+ XXServiceVersionInfo serviceVersionInfoDbObj = new XXServiceVersionInfo();
+
+ serviceVersionInfoDbObj.setId(id);
+ serviceVersionInfoDbObj.setRoleVersion(lastKnownVersion);
+ serviceVersionInfoDbObj.setPolicyVersion(lastKnownVersion);
+ serviceVersionInfoDbObj.setTagVersion(lastKnownVersion);
+
+ return serviceVersionInfoDbObj;
+ }
+
+ private XXService createXXService() {
+ XXService xxService = new XXService();
+
+ xxService.setId(id);
+ xxService.setName(serviceName);
+ xxService.setType(5L);
+
+ return xxService;
+ }
+
+ private RangerServiceDef createRangerServiceDef() {
+ List<RangerServiceConfigDef> configs = new ArrayList<>();
+ List<RangerResourceDef> resources = new ArrayList<>();
+ List<RangerAccessTypeDef> accessTypes = new ArrayList<>();
+ List<RangerPolicyConditionDef> policyConditions = new ArrayList<>();
+ List<RangerContextEnricherDef> contextEnrichers = new ArrayList<>();
+ List<RangerEnumDef> enums = new ArrayList<>();
+ 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 XXTag createXXTag() {
+ XXTag xxTag = new XXTag();
+
+ xxTag.setGuid(gId);
+ xxTag.setId(id);
+ xxTag.setVersion(lastKnownVersion);
+ xxTag.setType(1L);
+
+ return xxTag;
+ }
+
+ private XXTagResourceMap createXXTagResourceMap() {
+ XXTagResourceMap xxTagResourceMap = new XXTagResourceMap();
+
+ xxTagResourceMap.setTagId(id);
+ xxTagResourceMap.setResourceId(id);
+ xxTagResourceMap.setId(id);
+ xxTagResourceMap.setGuid(gId);
+
+ return xxTagResourceMap;
+ }
+}
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestMetricsREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestMetricsREST.java
new file mode 100644
index 000000000..3b2a0c3e1
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestMetricsREST.java
@@ -0,0 +1,87 @@
+/*
+ * 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.LinkedHashMap;
+import java.util.Map;
+import org.apache.ranger.plugin.model.RangerMetrics;
+import org.apache.ranger.util.RangerMetricsUtil;
+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.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestMetricsREST {
+ @InjectMocks
+ MetricsREST metricsREST = new MetricsREST();
+
+ @Mock
+ RangerMetricsUtil jvmMetricUtil;
+
+
+ @Test
+ public void testGetStatus() throws Exception {
+ Map<String, Object> rangerMetricsValues = getRangerMetricsValues();
+
+ Mockito.when(jvmMetricUtil.getValues()).thenReturn(rangerMetricsValues);
+
+ RangerMetrics rangerMetrics = metricsREST.getStatus();
+
+ Assert.assertNotNull(rangerMetrics);
+ Assert.assertNotNull(rangerMetrics.getData());
+ Assert.assertNotNull(rangerMetrics.getData().get("jvm"));
+
+ Map<String, Object> jvmMetricsMap = (Map<String, Object>)rangerMetrics.getData().get("jvm");
+
+ Assert.assertNotNull(jvmMetricsMap.get("JVM Machine Actual Name"));
+ Assert.assertNotNull(jvmMetricsMap.get("version"));
+ Assert.assertNotNull(jvmMetricsMap.get("JVM Vendor Name"));
+ Assert.assertEquals("Mac OS X, x86_64, 12.6.3", jvmMetricsMap.get("os.spec"));
+ Assert.assertEquals("8", jvmMetricsMap.get("os.vcpus"));
+ Assert.assertNotNull(jvmMetricsMap.get("memory"));
+
+ Map<String, Object> memoryDetailsMap = (Map<String, Object>)jvmMetricsMap.get("memory");
+
+ Assert.assertEquals("7635730432", memoryDetailsMap.get("heapMax"));
+ Assert.assertEquals("40424768", memoryDetailsMap.get("heapUsed"));
+ }
+
+
+ private Map<String, Object> getRangerMetricsValues() {
+ Map<String, Object> rangerMetricsMap = new LinkedHashMap<>();
+ rangerMetricsMap.put("os.spec", "Mac OS X, x86_64, 12.6.3");
+ rangerMetricsMap.put("os.vcpus", "8");
+
+ Map<String, Object> memoryDetailsMap = new LinkedHashMap<>();
+ memoryDetailsMap.put("heapMax", String.valueOf(7635730432L));
+ memoryDetailsMap.put("heapCommitted", String.valueOf(514850816L));
+ memoryDetailsMap.put("heapUsed", String.valueOf(40424768L));
+ rangerMetricsMap.put("memory", memoryDetailsMap);
+
+ return rangerMetricsMap;
+ }
+}
diff --git a/security-admin/src/test/java/org/apache/ranger/util/TestRangerMetricsUtil.java b/security-admin/src/test/java/org/apache/ranger/util/TestRangerMetricsUtil.java
new file mode 100644
index 000000000..ff306c1ee
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/util/TestRangerMetricsUtil.java
@@ -0,0 +1,51 @@
+/*
+ * 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.util;
+
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+
+public class TestRangerMetricsUtil {
+ @InjectMocks
+ RangerMetricsUtil rangerMetricsUtil = new RangerMetricsUtil();
+
+ @Test
+ public void testGetRangerMetricsValues() throws Exception {
+ Map<String, Object> rangerMetricsMap = rangerMetricsUtil.getValues();
+
+ Assert.assertNotNull(rangerMetricsMap);
+ Assert.assertNotNull(rangerMetricsMap.get("os.spec"));
+ Assert.assertNotNull(rangerMetricsMap.get("os.vcpus"));
+ Assert.assertNotNull(rangerMetricsMap.get("memory"));
+
+ Map<String, Object> memoryDetailsMap = (Map<String, Object>)rangerMetricsMap.get("memory");
+
+ Assert.assertNotNull(memoryDetailsMap.get("heapMax"));
+ Assert.assertNotNull(memoryDetailsMap.get("heapCommitted"));
+ Assert.assertNotNull(memoryDetailsMap.get("heapUsed"));
+ Assert.assertNotNull(memoryDetailsMap.get("memory_pool_usages"));
+
+ Map<String, Object> poolDivisionDetailsMap = (Map<String, Object>)memoryDetailsMap.get("memory_pool_usages");
+
+ Assert.assertTrue(poolDivisionDetailsMap.size() > 0);
+ }
+}