Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 5072E200B92 for ; Wed, 28 Sep 2016 17:25:47 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4F136160AD4; Wed, 28 Sep 2016 15:25:47 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 46B02160AB4 for ; Wed, 28 Sep 2016 17:25:46 +0200 (CEST) Received: (qmail 94700 invoked by uid 500); 28 Sep 2016 15:25:45 -0000 Mailing-List: contact commits-help@ranger.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ranger.incubator.apache.org Delivered-To: mailing list commits@ranger.incubator.apache.org Received: (qmail 94686 invoked by uid 99); 28 Sep 2016 15:25:45 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Sep 2016 15:25:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 00B64C0CC2 for ; Wed, 28 Sep 2016 15:25:45 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id G14eUv1QXLir for ; Wed, 28 Sep 2016 15:25:42 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with SMTP id BE1D15FC8D for ; Wed, 28 Sep 2016 15:25:41 +0000 (UTC) Received: (qmail 94603 invoked by uid 99); 28 Sep 2016 15:25:41 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Sep 2016 15:25:41 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 31634E0B16; Wed, 28 Sep 2016 15:25:41 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: vel@apache.org To: commits@ranger.incubator.apache.org Date: Wed, 28 Sep 2016 15:25:43 -0000 Message-Id: <08e0c62becb9410cb511570fd481abea@git.apache.org> In-Reply-To: <98536b19305643ba99d7941c441e8519@git.apache.org> References: <98536b19305643ba99d7941c441e8519@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/5] incubator-ranger git commit: RANGER-1170 : Improvement of Unit Test coverage in Ranger archived-at: Wed, 28 Sep 2016 15:25:47 -0000 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) 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) 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) 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) 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) 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) 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) 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) 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()); + } +}