You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ve...@apache.org on 2016/09/28 15:25:43 UTC
[3/5] incubator-ranger git commit: RANGER-1170 : Improvement of Unit
Test coverage in Ranger
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/1c441f79/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
new file mode 100644
index 0000000..ef59fba
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestXAuditREST.java
@@ -0,0 +1,219 @@
+/*
+ * 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.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.ranger.biz.XAuditMgr;
+import org.apache.ranger.common.SearchCriteria;
+import org.apache.ranger.common.SearchUtil;
+import org.apache.ranger.common.SortField;
+import org.apache.ranger.service.XAccessAuditService;
+import org.apache.ranger.service.XTrxLogService;
+import org.apache.ranger.view.VXAccessAuditList;
+import org.apache.ranger.view.VXLong;
+import org.apache.ranger.view.VXTrxLog;
+import org.apache.ranger.view.VXTrxLogList;
+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 TestXAuditREST {
+
+ @InjectMocks
+ XAuditREST auditREST = new XAuditREST();
+
+ @Mock
+ XAuditMgr xAuditMgr;
+
+ @Mock
+ SearchUtil searchUtil;
+
+ @Mock
+ XTrxLogService xLog;
+
+ @Mock
+ XAccessAuditService xAccessAuditSrv;
+
+ @Mock
+ VXTrxLogList vxExpList;
+
+ @Mock
+ HttpServletRequest request;
+
+ @Mock
+ SearchCriteria searchCriteria;
+
+ Long id = 5L;
+ String name = "test";
+
+ @Test
+ public void Test1getXTrxLog() {
+ VXTrxLog vxExp = new VXTrxLog();
+ vxExp.setId(id);
+ vxExp.setObjectName(name);
+ Mockito.when(xAuditMgr.getXTrxLog(id)).thenReturn(vxExp);
+ VXTrxLog vxAct = auditREST.getXTrxLog(id);
+ Assert.assertNotNull(vxAct);
+ Assert.assertEquals(vxExp, vxAct);
+ Assert.assertEquals(vxExp.getId(), vxAct.getId());
+ Assert.assertEquals(vxExp.getObjectName(), vxAct.getObjectName());
+ Mockito.verify(xAuditMgr).getXTrxLog(id);
+ }
+
+ @Test
+ public void Test2createXTrxLog() {
+ VXTrxLog vxExp = new VXTrxLog();
+ vxExp.setId(id);
+ vxExp.setObjectName(name);
+ Mockito.when(xAuditMgr.createXTrxLog(vxExp)).thenReturn(vxExp);
+ VXTrxLog vxAct = auditREST.createXTrxLog(vxExp);
+ Assert.assertNotNull(vxAct);
+ Assert.assertEquals(vxExp, vxAct);
+ Assert.assertEquals(vxExp.getId(), vxAct.getId());
+ Assert.assertEquals(vxExp.getObjectName(), vxAct.getObjectName());
+ Mockito.verify(xAuditMgr).createXTrxLog(vxExp);
+ }
+
+ @Test
+ public void Test3updateXTrxLog() {
+ VXTrxLog vxPrev = new VXTrxLog();
+ vxPrev.setId(id);
+ vxPrev.setObjectName(name);
+ VXTrxLog vxExp = new VXTrxLog();
+ vxExp.setId(id);
+ vxExp.setObjectName("test1");
+
+ Mockito.when(xAuditMgr.updateXTrxLog(vxPrev)).thenReturn(vxExp);
+
+ VXTrxLog vxAct = auditREST.updateXTrxLog(vxPrev);
+
+ Assert.assertNotNull(vxAct);
+ Assert.assertEquals(vxExp, vxAct);
+ Assert.assertEquals(vxExp.getObjectName(), vxAct.getObjectName());
+
+ Mockito.verify(xAuditMgr).updateXTrxLog(vxPrev);
+ }
+
+ @Test
+ public void Test4deleteXTrxLog() {
+ Mockito.doNothing().when(xAuditMgr).deleteXTrxLog(id, false);
+
+ auditREST.deleteXTrxLog(id, request);
+
+ Mockito.verify(xAuditMgr).deleteXTrxLog(id, false);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void Test5searchXTrxLog() {
+ VXTrxLogList vxExpList = new VXTrxLogList();
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ searchCriteria.addParam("name", name);
+
+ Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject())).thenReturn(searchCriteria);
+ Mockito.when(xAuditMgr.searchXTrxLogs(searchCriteria)).thenReturn(vxExpList);
+
+ VXTrxLogList vxActList = auditREST.searchXTrxLogs(request);
+
+ Assert.assertNotNull(vxActList);
+ Assert.assertEquals(vxExpList, vxActList);
+
+ Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject());
+ Mockito.verify(xAuditMgr).searchXTrxLogs(searchCriteria);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void Test6countXTrxLogs() {
+ VXLong vxLongExp = new VXLong();
+ vxLongExp.setValue(id);
+
+ Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject())).thenReturn(searchCriteria);
+ Mockito.when(xAuditMgr.getXTrxLogSearchCount(searchCriteria)).thenReturn(vxLongExp);
+
+ VXLong vxLongAct = auditREST.countXTrxLogs(request);
+
+ Assert.assertNotNull(vxLongAct);
+ Assert.assertEquals(vxLongExp, vxLongAct);
+ Assert.assertEquals(vxLongExp.getValue(), vxLongAct.getValue());
+
+ Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject());
+ Mockito.verify(xAuditMgr).getXTrxLogSearchCount(searchCriteria);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void Test7searchXAccessAudits() {
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ searchCriteria.addParam("name", name);
+ VXAccessAuditList vxAAListExp = new VXAccessAuditList();
+ vxAAListExp.setTotalCount(6L);
+
+ Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject())).thenReturn(searchCriteria);
+ Mockito.when(xAuditMgr.searchXAccessAudits(searchCriteria)).thenReturn(vxAAListExp);
+
+ VXAccessAuditList vxAAListAct = auditREST.searchXAccessAudits(request);
+
+ Assert.assertNotNull(vxAAListAct);
+ Assert.assertEquals(vxAAListExp, vxAAListAct);
+ Assert.assertEquals(vxAAListExp.getTotalCount(), vxAAListAct.getTotalCount());
+
+ Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject());
+ Mockito.verify(xAuditMgr).searchXAccessAudits(searchCriteria);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void Test8countXAccessAudits() {
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+ searchCriteria.addParam("name", name);
+ VXLong vxLongExp = new VXLong();
+ vxLongExp.setValue(id);
+
+ Mockito.when(searchUtil.extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject())).thenReturn(searchCriteria);
+ Mockito.when(xAuditMgr.getXAccessAuditSearchCount(searchCriteria)).thenReturn(vxLongExp);
+
+ VXLong vxLongAct = auditREST.countXAccessAudits(request);
+
+ Assert.assertNotNull(vxLongAct);
+ Assert.assertEquals(vxLongExp, vxLongAct);
+ Assert.assertEquals(vxLongExp.getValue(), vxLongAct.getValue());
+
+ Mockito.verify(searchUtil).extractCommonCriterias((HttpServletRequest) Mockito.anyObject(),
+ (List<SortField>) Mockito.anyObject());
+ Mockito.verify(xAuditMgr).getXAccessAuditSearchCount(searchCriteria);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/1c441f79/security-admin/src/test/java/org/apache/ranger/rest/TestXKeyREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestXKeyREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestXKeyREST.java
new file mode 100644
index 0000000..a82969c
--- /dev/null
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestXKeyREST.java
@@ -0,0 +1,236 @@
+/*
+ * 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 javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.WebApplicationException;
+import org.apache.ranger.biz.KmsKeyMgr;
+import org.apache.ranger.biz.XAuditMgr;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.SearchUtil;
+import org.apache.ranger.service.XAccessAuditService;
+import org.apache.ranger.service.XTrxLogService;
+import org.apache.ranger.view.VXKmsKey;
+import org.apache.ranger.view.VXKmsKeyList;
+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 TestXKeyREST {
+ @InjectMocks
+ XKeyREST keyREST = new XKeyREST();
+
+ @Mock
+ XAuditMgr xAuditMgr;
+
+ @Mock
+ SearchUtil searchUtil;
+
+ @Mock
+ XTrxLogService xLog;
+
+ @Mock
+ XAccessAuditService xAccessAuditSrv;
+
+ @Mock
+ KmsKeyMgr keyMgr;
+
+ @Mock
+ VXKmsKey vxKmsKey;
+
+ @Mock
+ RESTErrorUtil restErrorUtil;
+
+ @Mock
+ HttpServletRequest request;
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ String provider = "providerX";
+ String name = "xyz";
+ String nameNl = "";
+
+ @Test
+ public void Test1Searchkeys() throws Exception {
+ VXKmsKeyList vxKeyListExp = new VXKmsKeyList();
+
+ Mockito.when(keyMgr.searchKeys(request, provider)).thenReturn(vxKeyListExp);
+
+ VXKmsKeyList vxKeyListAct = keyREST.searchKeys(request, provider);
+
+ Assert.assertNotNull(vxKeyListAct);
+ Assert.assertEquals(vxKeyListExp, vxKeyListAct);
+
+ Mockito.verify(keyMgr).searchKeys(request, provider);
+ }
+
+ @Test
+ public void Test2RolloverKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+ vxKeyExp.setName(name);
+ vxKeyExp.setCipher("CipherX");
+
+ Mockito.when(keyMgr.rolloverKey(provider, vxKeyExp)).thenReturn(vxKeyExp);
+
+ VXKmsKey vxKeyAct = keyREST.rolloverKey(provider, vxKeyExp);
+
+ Assert.assertNotNull(vxKeyAct);
+ Assert.assertEquals(vxKeyExp, vxKeyAct);
+ Assert.assertEquals(vxKeyExp.getName(), vxKeyAct.getName());
+ Mockito.verify(keyMgr).rolloverKey(provider, vxKeyExp);
+ }
+
+ @Test
+ public void Test3RolloverKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+ vxKeyExp.setName(name);
+
+ Mockito.when(keyMgr.rolloverKey(provider, vxKeyExp)).thenReturn(vxKeyExp);
+
+ VXKmsKey vxKeyAct = keyREST.rolloverKey(provider, vxKeyExp);
+
+ Assert.assertNotNull(vxKeyAct);
+ Assert.assertEquals(vxKeyExp, vxKeyAct);
+ Assert.assertEquals(vxKeyExp.getName(), vxKeyAct.getName());
+ Assert.assertNull(vxKeyAct.getCipher());
+
+ Mockito.verify(keyMgr).rolloverKey(provider, vxKeyExp);
+ }
+
+ @Test
+ public void Test4RolloverKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+
+ Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject()))
+ .thenReturn(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ keyREST.rolloverKey(provider, vxKeyExp);
+
+ Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject());
+ }
+
+ @Test
+ public void Test5DeleteKey() throws Exception {
+ Mockito.doNothing().when(keyMgr).deleteKey(provider, name);
+
+ keyREST.deleteKey(name, provider, request);
+
+ Mockito.verify(keyMgr).deleteKey(provider, name);
+ }
+
+ @Test
+ public void Test6DeleteKey() throws Exception {
+ Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject()))
+ .thenReturn(new WebApplicationException());
+
+ thrown.expect(WebApplicationException.class);
+
+ keyREST.deleteKey(nameNl, provider, request);
+
+ Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject());
+ }
+
+ @Test
+ public void Test6CreateKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+ vxKeyExp.setName(name);
+ vxKeyExp.setCipher("CipherX");
+
+ Mockito.when(keyMgr.createKey(provider, vxKeyExp)).thenReturn(vxKeyExp);
+ VXKmsKey vxKeyAct = keyREST.createKey(provider, vxKeyExp);
+
+ Assert.assertNotNull(vxKeyAct);
+ Assert.assertEquals(vxKeyAct, vxKeyExp);
+ Assert.assertEquals(vxKeyExp.getName(), vxKeyAct.getName());
+ Assert.assertEquals(vxKeyExp.getCipher(), vxKeyAct.getCipher());
+
+ Mockito.verify(keyMgr).createKey(provider, vxKeyExp);
+ }
+
+ @Test
+ public void Test7CreateKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+ vxKeyExp.setName(name);
+
+ Mockito.when(keyMgr.createKey(provider, vxKeyExp)).thenReturn(vxKeyExp);
+
+ VXKmsKey vxKeyAct = keyREST.createKey(provider, vxKeyExp);
+
+ Assert.assertNotNull(vxKeyAct);
+ Assert.assertEquals(vxKeyAct, vxKeyExp);
+ Assert.assertEquals(vxKeyExp.getName(), vxKeyAct.getName());
+ Assert.assertNull(vxKeyAct.getCipher());
+
+ Mockito.verify(keyMgr).createKey(provider, vxKeyExp);
+ }
+
+ @Test
+ public void Test8CreateKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+
+ Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject()))
+ .thenReturn(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ VXKmsKey vxKeyAct = keyREST.createKey(provider, vxKeyExp);
+
+ Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject());
+
+ Assert.assertNull(vxKeyAct);
+ }
+
+ @Test
+ public void Test9GetKey() throws Exception {
+ VXKmsKey vxKeyExp = new VXKmsKey();
+
+ Mockito.when(keyMgr.getKey(provider, name)).thenReturn(vxKeyExp);
+
+ VXKmsKey vxKeyAct = keyREST.getKey(name, provider);
+
+ Assert.assertNotNull(vxKeyAct);
+ Assert.assertEquals(vxKeyAct, vxKeyExp);
+ Assert.assertEquals(vxKeyExp.getName(), vxKeyAct.getName());
+
+ Mockito.verify(keyMgr).getKey(provider, name);
+ }
+
+ @Test
+ public void Test10GetKey() throws Exception {
+ Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject()))
+ .thenReturn(new WebApplicationException());
+ thrown.expect(WebApplicationException.class);
+
+ VXKmsKey vxKeyAct = keyREST.getKey(nameNl, provider);
+
+ Assert.assertNull(vxKeyAct);
+
+ Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject());
+ }
+}