RANGER-1170 : Improvement of Unit Test coverage in Ranger Signed-off-by: Velmurugan Periasamy <v...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/26bfd131 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/26bfd131 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/26bfd131 Branch: refs/heads/ranger-0.6 Commit: 26bfd13115db5ce45d192c8291af3363c087950f Parents: 1b728eb Author: Ankita Sinha <ankita.si...@freestoneinfotech.com> Authored: Thu Oct 13 10:17:53 2016 +0530 Committer: Velmurugan Periasamy <v...@apache.org> Committed: Fri Oct 14 15:44:48 2016 -0400 ---------------------------------------------------------------------- .../org/apache/ranger/rest/TestTagREST.java | 1816 ++++++++++++++ .../org/apache/ranger/rest/TestUserREST.java | 495 ++++ .../org/apache/ranger/rest/TestXAuditREST.java | 219 ++ .../org/apache/ranger/rest/TestXKeyREST.java | 236 ++ .../org/apache/ranger/rest/TestXUserREST.java | 2238 ++++++++++++++++++ .../ranger/service/TestRangerTagDefService.java | 274 +++ .../service/TestRangerTagDefServiceBase.java | 77 + 7 files changed, 5355 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26bfd131/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java new file mode 100644 index 0000000..fabd384 --- /dev/null +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java @@ -0,0 +1,1816 @@ +/* + * 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.ArrayList; +import java.util.List; + +import javax.ws.rs.WebApplicationException; + +import org.apache.ranger.biz.RangerBizUtil; +import org.apache.ranger.biz.ServiceDBStore; +import org.apache.ranger.biz.TagDBStore; +import org.apache.ranger.common.RESTErrorUtil; +import org.apache.ranger.db.RangerDaoManager; +import org.apache.ranger.db.XXServiceDao; +import org.apache.ranger.db.XXServiceDefDao; +import org.apache.ranger.entity.XXService; +import org.apache.ranger.entity.XXServiceDef; +import org.apache.ranger.plugin.model.RangerService; +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.TagValidator; +import org.apache.ranger.plugin.util.SearchFilter; +import org.apache.ranger.plugin.util.ServiceTags; +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 TestTagREST { + private static Long id = 1L; + private static String gId = "1427365526516_835_0"; + private static String name = "test"; + private static String serviceName = "HDFS"; + private static String resourceSignature = "testResourceSign"; + private static String tagGuid = "8787878787_09_1"; + private static String resourceGuid = "9898989898_09_1"; + private static Long lastKnownVersion = 10L; + private static String pluginId = "1"; + private static String Allowed_User_List_For_Tag_Download = "tag.download.auth.users"; + + @InjectMocks + TagREST tagREST = new TagREST(); + + @Mock + TagValidator validator; + + @Mock + TagDBStore tagStore; + + @Mock + RESTErrorUtil restErrorUtil; + + @Mock + RangerBizUtil bizUtil; + + @Mock + RangerDaoManager daoManager; + + @Mock + ServiceDBStore svcStore; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void test1createTagDef() { + RangerTagDef oldTagDef = null; + RangerTagDef newTagDef = new RangerTagDef(); + newTagDef.setId(id); + newTagDef.setName(name); + + try { + Mockito.when(validator.preCreateTagDef(oldTagDef, false)).thenReturn(null); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.createTagDef(oldTagDef)).thenReturn(newTagDef); + } catch (Exception e) { + } + RangerTagDef rangerTagDef = tagREST.createTagDef(oldTagDef, false); + + Assert.assertEquals(rangerTagDef.getId(), newTagDef.getId()); + Assert.assertNotNull(rangerTagDef); + Assert.assertEquals(rangerTagDef.getName(), newTagDef.getName()); + + try { + Mockito.verify(validator).preCreateTagDef(oldTagDef, false); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).createTagDef(oldTagDef); + } catch (Exception e) { + } + } + + @Test + public void test2createTagDef() { + RangerTagDef oldTagDef = new RangerTagDef(); + RangerTagDef newTagDef = new RangerTagDef(); + oldTagDef.setId(id); + newTagDef.setId(id); + newTagDef.setName(name); + + try { + Mockito.when(validator.preCreateTagDef(oldTagDef, true)).thenReturn( + oldTagDef); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.updateTagDef(oldTagDef)).thenReturn(newTagDef); + } catch (Exception e) { + } + + RangerTagDef rangerTagDef = tagREST.createTagDef(oldTagDef, true); + Assert.assertEquals(rangerTagDef.getName(), newTagDef.getName()); + Assert.assertEquals(rangerTagDef.getId(), newTagDef.getId()); + Assert.assertNotEquals(oldTagDef.getName(), rangerTagDef.getName()); + + try { + Mockito.verify(validator).preCreateTagDef(oldTagDef, true); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).updateTagDef(oldTagDef); + } catch (Exception e) { + } + } + + @Test + public void test3createTagDef() { + RangerTagDef oldTagDef = new RangerTagDef(); + RangerTagDef newTagDef = new RangerTagDef(); + oldTagDef.setId(null); + newTagDef.setId(id); + newTagDef.setName(name); + + try { + Mockito.when(validator.preCreateTagDef(oldTagDef, true)).thenReturn(oldTagDef); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.updateTagDef(oldTagDef)).thenReturn(newTagDef); + } catch (Exception e) { + } + + RangerTagDef rangerTagDef = tagREST.createTagDef(oldTagDef, true); + + Assert.assertNotNull(rangerTagDef); + Assert.assertEquals(rangerTagDef.getId(), newTagDef.getId()); + Assert.assertEquals(rangerTagDef.getName(), newTagDef.getName()); + Assert.assertNotEquals(rangerTagDef.getName(), oldTagDef.getName()); + + try { + Mockito.verify(validator).preCreateTagDef(oldTagDef, true); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).updateTagDef(oldTagDef); + } catch (Exception e) { + } + } + + @Test + public void test4createTagDef() { + RangerTagDef oldtagDef = new RangerTagDef(); + oldtagDef.setId(id); + + try { + Mockito.when(validator.preCreateTagDef(oldtagDef, false)).thenReturn( + oldtagDef); + } catch (Exception e) { + } + Mockito.when( + restErrorUtil.createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean())).thenThrow( + new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.createTagDef(oldtagDef, false); + + try { + Mockito.verify(validator).preCreateTagDef(oldtagDef, false); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test5deleteTagDef(){ + try { + Mockito.doNothing().when(tagStore).deleteTagDef(id); + } catch (Exception e) { + } + tagREST.deleteTagDef(id); + try { + Mockito.verify(tagStore).deleteTagDef(id); + } catch (Exception e) { + } + } + + @Test + public void test6deleteTagDefByGuid() { + RangerTagDef oldTagDef = new RangerTagDef(); + oldTagDef.setId(id); + oldTagDef.setGuid(gId); + + try { + Mockito.when(tagStore.getTagDefByGuid(oldTagDef.getGuid())).thenReturn(oldTagDef); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteTagDef(oldTagDef.getId()); + } catch (Exception e) { + } + + tagREST.deleteTagDefByGuid(oldTagDef.getGuid()); + Assert.assertNotNull(oldTagDef.getId()); + Assert.assertNotNull(oldTagDef.getGuid()); + + try { + Mockito.verify(tagStore).getTagDefByGuid(oldTagDef.getGuid()); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteTagDef(oldTagDef.getId()); + } catch (Exception e) { + } + } + + @Test + public void test7deleteTagDefByGuid() { + try { + Mockito.when(tagStore.getTagDefByGuid(gId)).thenReturn(null); + } catch (Exception e) { + } + tagREST.deleteTagDefByGuid(gId); + try { + Mockito.verify(tagStore).getTagDefByGuid(gId); + } catch (Exception e) { + } + } + + @Test + public void test8getTagDef() { + RangerTagDef oldTagDef = new RangerTagDef(); + oldTagDef.setId(id); + oldTagDef.setName(name); + + try { + Mockito.when(tagStore.getTagDef(id)).thenReturn(oldTagDef); + } catch (Exception e) { + } + + RangerTagDef rangerTagDef = tagREST.getTagDef(id); + Assert.assertNotNull(rangerTagDef.getId()); + Assert.assertEquals(rangerTagDef.getId(), oldTagDef.getId()); + Assert.assertEquals(rangerTagDef.getName(), oldTagDef.getName()); + + try { + Mockito.verify(tagStore).getTagDef(id); + } catch (Exception e) { + } + } + + @Test + public void test9getTagDef() { + try { + Mockito.when(tagStore.getTagDef(id)).thenReturn(null); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.getTagDef(id); + + try { + Mockito.verify(tagStore).getTagDef(id); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test10getTagDefByGuid() { + RangerTagDef oldTagDef = new RangerTagDef(); + oldTagDef.setId(id); + oldTagDef.setGuid(gId); + + try { + Mockito.when(tagStore.getTagDefByGuid(gId)).thenReturn(oldTagDef); + } catch (Exception e) { + } + + RangerTagDef rangerTagDef = tagREST.getTagDefByGuid(gId); + Assert.assertNotNull(oldTagDef.getGuid()); + Assert.assertEquals(rangerTagDef.getGuid(), oldTagDef.getGuid()); + Assert.assertEquals(rangerTagDef.getId(), oldTagDef.getId()); + + try { + Mockito.verify(tagStore).getTagDefByGuid(gId); + } catch (Exception e) { + } + } + + @Test + public void test11getTagDefByGuid() { + try { + Mockito.when(tagStore.getTagDefByGuid(gId)).thenReturn(null); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.getTagDefByGuid(gId); + + try { + Mockito.verify(tagStore).getTagDefByGuid(gId); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test12getTagDefByName() { + RangerTagDef oldTagDef = new RangerTagDef(); + oldTagDef.setId(id); + oldTagDef.setName(name); + + try { + Mockito.when(tagStore.getTagDefByName(name)).thenReturn(oldTagDef); + } catch (Exception e) { + } + + RangerTagDef rangerTagDef = tagREST.getTagDefByName(name); + Assert.assertNotNull(rangerTagDef.getName()); + Assert.assertEquals(rangerTagDef.getName(), oldTagDef.getName()); + Assert.assertEquals(rangerTagDef.getId(), oldTagDef.getId()); + + try { + Mockito.verify(tagStore).getTagDefByName(name); + } catch (Exception e) { + } + } + + @Test + public void test13getTagDefByName() { + try { + Mockito.when(tagStore.getTagDefByName(name)).thenReturn(null); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.getTagDefByName(name); + + try { + Mockito.verify(tagStore).getTagDefByName(name); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test14getAllTagDefs() { + List<RangerTagDef> ret = new ArrayList<RangerTagDef>(); + RangerTagDef rangerTagDef = new RangerTagDef(); + rangerTagDef.setId(id); + rangerTagDef.setVersion(5L); + ret.add(rangerTagDef); + + try { + Mockito.when(tagStore.getTagDefs((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + List<RangerTagDef> result = tagREST.getAllTagDefs(); + + Assert.assertNotNull(result); + Assert.assertEquals(result.get(0).getId(), ret.get(0).getId()); + Assert.assertEquals(result.get(0).getVersion(), ret.get(0).getVersion()); + + try { + Mockito.verify(tagStore).getTagDefs((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test15getAllTagDefs() { + try { + Mockito.when(tagStore.getTagDefs((SearchFilter)Mockito.anyObject())).thenReturn(null); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.getAllTagDefs(); + + try { + Mockito.verify(tagStore).getTagDefs((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), + Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test16getTagTypes(){ + List<String> ret = new ArrayList<String>(); + ret.add(name); + + try { + Mockito.when(tagStore.getTagTypes()).thenReturn(ret); + } catch (Exception e) { + } + List<String> result = tagREST.getTagTypes(); + Assert.assertNotNull(result); + + try { + Mockito.verify(tagStore).getTagTypes(); + } catch (Exception e) { + } + } + + @Test + public void test17createTag() { + RangerTag oldTag = null; + RangerTag newTag = new RangerTag(); + newTag.setId(id); + newTag.setGuid(gId); + + try { + Mockito.when(validator.preCreateTag(oldTag)).thenReturn(oldTag); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.createTag(oldTag)).thenReturn(newTag); + } catch (Exception e) { + } + RangerTag rangerTag = tagREST.createTag(oldTag, false); + + Assert.assertEquals(rangerTag.getId(),newTag.getId()); + Assert.assertEquals(rangerTag.getGuid(), newTag.getGuid()); + + try { + Mockito.verify(validator).preCreateTag(oldTag); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).createTag(oldTag); + } catch (Exception e) { + } + } + + @Test + public void test18createTag(){ + RangerTag oldTag = new RangerTag(); + RangerTag newTag = new RangerTag(); + oldTag.setId(id); + newTag.setId(id); + newTag.setVersion(5L); + + try { + Mockito.when(validator.preCreateTag(oldTag)).thenReturn(oldTag); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(validator).preUpdateTag(oldTag.getId(), oldTag); + } catch (Exception e1) { + } + try { + Mockito.when(tagStore.updateTag(oldTag)).thenReturn(newTag); + } catch (Exception e) { + } + + RangerTag rangerTag = tagREST.createTag(oldTag,true); + Assert.assertEquals(rangerTag.getVersion(), newTag.getVersion()); + Assert.assertNotNull(newTag.getVersion()); + Assert.assertNotEquals(oldTag.getVersion(), newTag.getVersion()); + Assert.assertEquals(oldTag.getId(), newTag.getId()); + + try { + Mockito.verify(validator).preCreateTag(oldTag); + } catch (Exception e) { + } + try { + Mockito.verify(validator).preUpdateTag(oldTag.getId(), oldTag); + } catch (Exception e1) { + } + try { + Mockito.verify(tagStore).updateTag(oldTag); + } catch (Exception e) { + } + } + + @Test + public void test19createTag(){ + RangerTag oldTag = new RangerTag(); + oldTag.setId(id); + + try { + Mockito.when(validator.preCreateTag(oldTag)).thenReturn(oldTag); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.createTag(oldTag,false); + + try { + Mockito.verify(validator).preCreateTag(oldTag); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test20updateTagByGuid() { + RangerTag oldTag = new RangerTag(); + RangerTag newTag = new RangerTag(); + oldTag.setGuid(gId); + newTag.setGuid(gId); + newTag.setVersion(5L); + + try { + Mockito.doNothing().when(validator).preUpdateTagByGuid(gId, oldTag); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.updateTag(oldTag)).thenReturn(newTag); + } catch (Exception e) { + } + + RangerTag rangerTag = tagREST.updateTagByGuid(gId, oldTag); + Assert.assertEquals(oldTag.getGuid(), newTag.getGuid()); + Assert.assertNotEquals(rangerTag.getVersion(), oldTag.getVersion()); + Assert.assertEquals(rangerTag.getVersion(), newTag.getVersion()); + + try { + Mockito.verify(validator).preUpdateTagByGuid(gId, oldTag); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).updateTag(oldTag); + } catch (Exception e) { + } + } + + @Test + public void test21deleteTag() { + RangerTag oldTag = new RangerTag(); + oldTag.setId(id); + + try { + Mockito.when(validator.preDeleteTag(id)).thenReturn(oldTag); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteTag(id); + } catch (Exception e) { + } + + tagREST.deleteTag(id); + Assert.assertNotNull(oldTag.getId()); + + try { + Mockito.verify(validator).preDeleteTag(id); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteTag(id); + } catch (Exception e) { + } + } + + @Test + public void test22deleteTagByGuid() { + RangerTag oldTag = new RangerTag(); + oldTag.setId(id); + oldTag.setGuid(gId); + + try { + Mockito.when(validator.preDeleteTagByGuid(gId)).thenReturn(oldTag); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteTag(oldTag.getId()); + } catch (Exception e) { + } + + tagREST.deleteTagByGuid(gId); + Assert.assertNotNull(oldTag.getId()); + Assert.assertNotNull(oldTag.getGuid()); + + try { + Mockito.verify(validator).preDeleteTagByGuid(gId); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteTag(oldTag.getId()); + } catch (Exception e) { + } + } + + @Test + public void test23getTag() { + RangerTag oldTag = new RangerTag(); + oldTag.setId(id); + oldTag.setGuid(gId); + + try { + Mockito.when(tagStore.getTag(id)).thenReturn(oldTag); + } catch (Exception e) { + } + RangerTag rangerTag = tagREST.getTag(id); + Assert.assertNotNull(oldTag.getId()); + Assert.assertEquals(rangerTag.getId(), oldTag.getId()); + Assert.assertEquals(rangerTag.getGuid(), oldTag.getGuid()); + + try { + Mockito.verify(tagStore).getTag(id); + } catch (Exception e) { + } + } + + @Test + public void test24getTagByGuid() { + RangerTag oldTag = new RangerTag(); + oldTag.setId(id); + oldTag.setGuid(gId); + + try { + Mockito.when(tagStore.getTagByGuid(gId)).thenReturn(oldTag); + } catch (Exception e) { + } + RangerTag rangerTag = tagREST.getTagByGuid(gId); + Assert.assertNotNull(oldTag.getGuid()); + Assert.assertEquals(rangerTag.getGuid(), oldTag.getGuid()); + Assert.assertEquals(rangerTag.getId(), oldTag.getId()); + Assert.assertNotNull(rangerTag.getId()); + + try { + Mockito.verify(tagStore).getTagByGuid(gId); + } catch (Exception e) { + } + } + + @Test + public void test25getTagsByType() { + String type = "file"; + List<RangerTag> tag = new ArrayList<RangerTag>(); + RangerTag rTag = new RangerTag(); + rTag.setType(type); + tag.add(rTag); + + try { + Mockito.when(tagStore.getTagsByType(type)).thenReturn(tag); + } catch (Exception e) { + } + List<RangerTag> rangerTag = tagREST.getTagsByType(type); + Assert.assertEquals(rangerTag.get(0).getType(), tag.get(0).getType()); + + try { + Mockito.verify(tagStore).getTagsByType(type); + } catch (Exception e) { + } + } + + @Test + public void test26getAllTags() { + List<RangerTag> ret = new ArrayList<RangerTag>(); + RangerTag rangerTag = new RangerTag(); + rangerTag.setId(id); + rangerTag.setGuid(gId); + ret.add(rangerTag); + + try { + Mockito.when(tagStore.getTags((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + + List<RangerTag> result = tagREST.getAllTags(); + Assert.assertEquals(result.get(0).getId(), ret.get(0).getId()); + Assert.assertEquals(result.get(0).getVersion(), ret.get(0).getVersion()); + Assert.assertNotNull(result.get(0).getId()); + + try { + Mockito.verify(tagStore).getTags((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test60getAllTags() { + List<RangerTag> ret = new ArrayList<RangerTag>(); + + try { + Mockito.when(tagStore.getTags((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + + List<RangerTag> result = tagREST.getAllTags(); + Assert.assertNotNull(result); + + try { + Mockito.verify(tagStore).getTags((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test27createServiceResource() { + RangerServiceResource oldRSR = null; + RangerServiceResource newRSR = new RangerServiceResource(); + newRSR.setId(id); + newRSR.setGuid(gId); + + try { + Mockito.when(validator.preCreateServiceResource(oldRSR)).thenReturn(oldRSR); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.createServiceResource(oldRSR)).thenReturn(newRSR); + } catch (Exception e) { + } + + RangerServiceResource rangerServiceResource = tagREST.createServiceResource(oldRSR, false); + Assert.assertNotNull(rangerServiceResource.getId()); + Assert.assertEquals(rangerServiceResource.getId(), newRSR.getId()); + Assert.assertEquals(rangerServiceResource.getGuid(), newRSR.getGuid()); + + try { + Mockito.verify(validator).preCreateServiceResource(oldRSR); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).createServiceResource(oldRSR); + } catch (Exception e) { + } + } + + @Test + public void test28createServiceResource() { + RangerServiceResource oldRSR = new RangerServiceResource(); + RangerServiceResource newRSR = new RangerServiceResource(); + oldRSR.setId(id); + newRSR.setId(id); + newRSR.setVersion(5L); + + try { + Mockito.when(validator.preCreateServiceResource(oldRSR)).thenReturn(oldRSR); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(validator).preUpdateServiceResource(oldRSR.getId(), oldRSR); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.updateServiceResource(oldRSR)).thenReturn(newRSR); + } catch (Exception e) { + } + + RangerServiceResource rangerServiceResource = tagREST.createServiceResource(oldRSR, true); + Assert.assertNotEquals(oldRSR.getVersion(), newRSR.getVersion()); + Assert.assertEquals(rangerServiceResource.getId(), newRSR.getId()); + Assert.assertEquals(rangerServiceResource.getId(), oldRSR.getId()); + + try { + Mockito.verify(validator).preCreateServiceResource(oldRSR); + } catch (Exception e) { + } + try { + Mockito.verify(validator).preUpdateServiceResource(oldRSR.getId(), oldRSR); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).updateServiceResource(oldRSR); + } catch (Exception e) { + } + } + + @Test + public void test29createServiceResource(){ + RangerServiceResource oldRSR = new RangerServiceResource(); + + try { + Mockito.when(validator.preCreateServiceResource(oldRSR)).thenReturn(oldRSR); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.createServiceResource(oldRSR, false); + + try { + Mockito.verify(validator).preCreateServiceResource(oldRSR); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test30updateServiceResourceByGuid() { + RangerServiceResource oldSRS = new RangerServiceResource(); + RangerServiceResource newSRS = new RangerServiceResource(); + oldSRS.setId(id); + oldSRS.setGuid(gId); + newSRS.setId(id); + newSRS.setGuid(gId); + newSRS.setVersion(5L); + + try { + Mockito.doNothing().when(validator).preUpdateServiceResourceByGuid(gId, oldSRS); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.updateServiceResource(oldSRS)).thenReturn(newSRS); + } catch (Exception e) { + } + + RangerServiceResource rangerServiceResource = tagREST.updateServiceResourceByGuid(gId, oldSRS); + Assert.assertEquals(oldSRS.getId(), newSRS.getId()); + Assert.assertEquals(oldSRS.getGuid(), newSRS.getGuid()); + Assert.assertNotEquals(oldSRS.getVersion(), newSRS.getVersion()); + Assert.assertEquals(rangerServiceResource.getVersion(), newSRS.getVersion()); + + try { + Mockito.verify(validator).preUpdateServiceResourceByGuid(gId, oldSRS); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).updateServiceResource(oldSRS); + } catch (Exception e) { + } + } + + @Test + public void test31deleteServiceResource() { + RangerServiceResource oldSRS = new RangerServiceResource(); + oldSRS.setId(id); + + try { + Mockito.when(validator.preDeleteServiceResource(id)).thenReturn(oldSRS); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteServiceResource(id); + } catch (Exception e) { + } + + tagREST.deleteServiceResource(id); + Assert.assertNotNull(oldSRS.getId()); + + try { + Mockito.verify(validator).preDeleteServiceResource(id); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteServiceResource(id); + } catch (Exception e) { + } + } + + @Test + public void test32getServiceResource() { + RangerServiceResource oldSRS = new RangerServiceResource(); + oldSRS.setId(id); + oldSRS.setGuid(gId); + + try { + Mockito.when(tagStore.getServiceResource(id)).thenReturn(oldSRS); + } catch (Exception e) { + } + RangerServiceResource rangerServiceResource = tagREST.getServiceResource(id); + + Assert.assertNotNull(rangerServiceResource); + Assert.assertEquals(rangerServiceResource.getId(), oldSRS.getId()); + Assert.assertEquals(rangerServiceResource.getGuid(), oldSRS.getGuid()); + try { + Mockito.verify(tagStore).getServiceResource(id); + } catch (Exception e) { + } + } + + @Test + public void test33getServiceResourceByGuid() { + RangerServiceResource oldSRS = new RangerServiceResource(); + oldSRS.setId(id); + oldSRS.setGuid(gId); + + try { + Mockito.when(tagStore.getServiceResourceByGuid(gId)).thenReturn(oldSRS); + } catch (Exception e) { + } + RangerServiceResource rangerServiceResource = tagREST.getServiceResourceByGuid(gId); + + Assert.assertNotNull(rangerServiceResource); + Assert.assertEquals(rangerServiceResource.getGuid(), oldSRS.getGuid()); + Assert.assertEquals(rangerServiceResource.getId(), oldSRS.getId()); + try { + Mockito.verify(tagStore).getServiceResourceByGuid(gId); + } catch (Exception e) { + } + } + + @Test + public void test34getServiceResourcesByService() { + List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); + RangerServiceResource rangerServiceResource = new RangerServiceResource(); + rangerServiceResource.setId(id); + rangerServiceResource.setServiceName(serviceName); + ret.add(rangerServiceResource); + + try { + Mockito.when(tagStore.getServiceResourcesByService(serviceName)).thenReturn(ret); + } catch (Exception e) { + } + + List<RangerServiceResource> reslut = tagREST.getServiceResourcesByService(serviceName); + Assert.assertNotNull(reslut.get(0).getId()); + Assert.assertEquals(reslut.get(0).getId(), ret.get(0).getId()); + Assert.assertEquals(reslut.get(0).getServiceName(), ret.get(0).getServiceName()); + + try { + Mockito.verify(tagStore).getServiceResourcesByService(serviceName); + } catch (Exception e) { + } + } + + @Test + public void test35getServiceResourcesByService() { + List<RangerServiceResource> oldSRS = new ArrayList<RangerServiceResource>(); + RangerServiceResource rangerServiceResource = new RangerServiceResource(); + rangerServiceResource.setId(id); + rangerServiceResource.setServiceName(serviceName); + oldSRS.add(rangerServiceResource); + + try { + Mockito.when(tagStore.getServiceResourcesByService(serviceName)).thenReturn(oldSRS); + } catch (Exception e) { + } + + List<RangerServiceResource> result = tagREST.getServiceResourcesByService(serviceName); + Assert.assertNotNull(result); + Assert.assertEquals(result.size(), 1); + Assert.assertEquals(result.get(0).getId(), id); + Assert.assertEquals(result.get(0).getServiceName(), serviceName); + + try { + Mockito.verify(tagStore).getServiceResourcesByService(serviceName); + } catch (Exception e) { + } + } + + @Test + public void test59getServiceResourcesByService() { + List<RangerServiceResource> oldSRS = new ArrayList<RangerServiceResource>(); + + try { + Mockito.when(tagStore.getServiceResourcesByService(serviceName)).thenReturn(oldSRS); + } catch (Exception e) { + } + + List<RangerServiceResource> result = tagREST.getServiceResourcesByService(serviceName); + Assert.assertNotNull(result); + + try { + Mockito.verify(tagStore).getServiceResourcesByService(serviceName); + } catch (Exception e) { + } + } + + @Test + public void test36getServiceResourceByServiceAndResourceSignature() { + RangerServiceResource oldSRS = new RangerServiceResource(); + oldSRS.setId(id); + oldSRS.setResourceSignature(resourceSignature); + oldSRS.setServiceName(serviceName); + + try { + Mockito.when(tagStore.getServiceResourceByServiceAndResourceSignature(serviceName, resourceSignature)).thenReturn(oldSRS); + } catch (Exception e) { + } + + RangerServiceResource rangerServiceResource = tagREST.getServiceResourceByServiceAndResourceSignature(serviceName, resourceSignature); + Assert.assertEquals(rangerServiceResource.getId(), oldSRS.getId()); + Assert.assertEquals(rangerServiceResource.getServiceName(), oldSRS.getServiceName()); + Assert.assertEquals(rangerServiceResource.getResourceSignature(), oldSRS.getResourceSignature()); + + try { + Mockito.verify(tagStore).getServiceResourceByServiceAndResourceSignature(serviceName, resourceSignature); + } catch (Exception e) { + } + } + + @Test + public void test37getAllServiceResources() { + List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); + RangerServiceResource rangerServiceResource = new RangerServiceResource(); + rangerServiceResource.setId(id); + rangerServiceResource.setServiceName(serviceName); + ret.add(rangerServiceResource); + + try { + Mockito.when(tagStore.getServiceResources((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + List<RangerServiceResource> result = tagREST.getAllServiceResources(); + Assert.assertNotNull(result.get(0).getId()); + Assert.assertEquals(result.get(0).getId(), ret.get(0).getId()); + Assert.assertEquals(result.get(0).getServiceName(), ret.get(0).getServiceName()); + + try { + Mockito.verify(tagStore).getServiceResources((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test38createTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = null; + RangerTagResourceMap newTagResourceMap = new RangerTagResourceMap(); + newTagResourceMap.setTagId(id); + newTagResourceMap.setResourceId(id); + + try { + Mockito.when(tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.when(validator.preCreateTagResourceMap(tagGuid, resourceGuid)).thenReturn(newTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.createTagResourceMap(newTagResourceMap)).thenReturn(newTagResourceMap); + } catch (Exception e) { + } + + RangerTagResourceMap rangerTagResourceMap = tagREST.createTagResourceMap(tagGuid, resourceGuid, false); + Assert.assertEquals(rangerTagResourceMap.getTagId(), newTagResourceMap.getTagId()); + Assert.assertEquals(rangerTagResourceMap.getResourceId(), newTagResourceMap.getResourceId()); + + try { + Mockito.verify(tagStore).getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid); + } catch (Exception e) { + } + try { + Mockito.verify(validator).preCreateTagResourceMap(tagGuid, resourceGuid); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).createTagResourceMap(newTagResourceMap); + } catch (Exception e) { + } + } + + @Test + public void test39createTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + + try { + Mockito.when(tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(),Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + tagREST.createTagResourceMap(tagGuid, resourceGuid, false); + + try { + Mockito.verify(tagStore).getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(),Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test40createTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = null; + RangerTagResourceMap newTagResourceMap = new RangerTagResourceMap(); + newTagResourceMap.setId(id); + newTagResourceMap.setGuid(gId); + RangerTagResourceMap finalTagResourceMap = new RangerTagResourceMap(); + finalTagResourceMap.setId(id); + finalTagResourceMap.setGuid(gId); + finalTagResourceMap.setVersion(5L); + + try { + Mockito.when(tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.when(validator.preCreateTagResourceMap(tagGuid, resourceGuid)).thenReturn(newTagResourceMap); + } catch (Exception e1) { + } + try { + Mockito.when(tagStore.createTagResourceMap(newTagResourceMap)).thenReturn(finalTagResourceMap); + } catch (Exception e1) { + } + RangerTagResourceMap result = tagREST.createTagResourceMap(tagGuid, resourceGuid, true); + Assert.assertNotNull(result.getId()); + Assert.assertEquals(result.getGuid(), finalTagResourceMap.getGuid()); + Assert.assertEquals(result.getId(), finalTagResourceMap.getId()); + Assert.assertEquals(result.getVersion(), finalTagResourceMap.getVersion()); + + try { + Mockito.verify(tagStore).getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid); + } catch (Exception e) { + } + try { + Mockito.verify(validator).preCreateTagResourceMap(tagGuid, resourceGuid); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).createTagResourceMap(newTagResourceMap); + } catch (Exception e) { + } + } + + @Test + public void test41deleteTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + try { + Mockito.when(validator.preDeleteTagResourceMap(id)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteTagResourceMap(id); + } catch (Exception e) { + } + + tagREST.deleteTagResourceMap(id); + Assert.assertNotNull(oldTagResourceMap.getId()); + try { + Mockito.verify(validator).preDeleteTagResourceMap(id); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteTagResourceMap(id); + } catch (Exception e) { + } + } + + @Test + public void test42deleteTagResourceMapByGuid() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + oldTagResourceMap.setGuid(gId); + try { + Mockito.when(validator.preDeleteTagResourceMapByGuid(gId)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteServiceResource(oldTagResourceMap.getId()); + } catch (Exception e) { + } + + tagREST.deleteTagResourceMapByGuid(gId); + Assert.assertNotNull(oldTagResourceMap.getId()); + Assert.assertNotNull(oldTagResourceMap.getGuid()); + + try { + Mockito.verify(validator).preDeleteTagResourceMapByGuid(gId); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).deleteServiceResource(oldTagResourceMap.getId()); + } catch (Exception e) { + } + } + + @Test + public void test43deleteTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + + try { + Mockito.when(validator.preDeleteTagResourceMap(tagGuid, resourceGuid)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteTagResourceMap(oldTagResourceMap.getId()); + } catch (Exception e) { + } + + tagREST.deleteTagResourceMap(tagGuid, resourceGuid); + try { + Mockito.verify(validator).preDeleteTagResourceMap(tagGuid, resourceGuid); + } catch (Exception e) { + } + } + + @Test + public void test44getTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + oldTagResourceMap.setGuid(gId); + + try { + Mockito.when(tagStore.getTagResourceMap(id)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + + RangerTagResourceMap rangerTagResourceMap = tagREST.getTagResourceMap(id); + Assert.assertNotNull(rangerTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getId(), oldTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getGuid(), oldTagResourceMap.getGuid()); + try { + Mockito.verify(tagStore).getTagResourceMap(id); + } catch (Exception e) { + } + } + + @Test + public void test45getTagResourceMapByGuid() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + oldTagResourceMap.setGuid(gId); + + try { + Mockito.when(tagStore.getTagResourceMapByGuid(gId)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + + RangerTagResourceMap rangerTagResourceMap = tagREST.getTagResourceMapByGuid(gId); + Assert.assertNotNull(rangerTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getId(), oldTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getGuid(), oldTagResourceMap.getGuid()); + try { + Mockito.verify(tagStore).getTagResourceMapByGuid(gId); + } catch (Exception e) { + } + } + + @Test + public void test46getTagResourceMap() { + RangerTagResourceMap oldTagResourceMap = new RangerTagResourceMap(); + oldTagResourceMap.setId(id); + oldTagResourceMap.setTagId(id); + + try { + Mockito.when(tagStore.getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid)).thenReturn(oldTagResourceMap); + } catch (Exception e) { + } + RangerTagResourceMap rangerTagResourceMap = tagREST.getTagResourceMap(tagGuid, resourceGuid); + Assert.assertNotNull(rangerTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getId(), oldTagResourceMap.getId()); + Assert.assertEquals(rangerTagResourceMap.getTagId(), oldTagResourceMap.getTagId()); + try { + Mockito.verify(tagStore).getTagResourceMapForTagAndResourceGuid(tagGuid, resourceGuid); + } catch (Exception e) { + } + } + + @Test + public void test47getAllTagResourceMaps() { + List<RangerTagResourceMap> ret = new ArrayList<RangerTagResourceMap>(); + RangerTagResourceMap rangerTagResourceMap = new RangerTagResourceMap(); + rangerTagResourceMap.setId(id); + rangerTagResourceMap.setTagId(id); + ret.add(rangerTagResourceMap); + + try { + Mockito.when(tagStore.getTagResourceMaps((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + + List<RangerTagResourceMap> result = tagREST.getAllTagResourceMaps(); + Assert.assertNotNull(result.get(0).getId()); + Assert.assertEquals(result.get(0).getId(), ret.get(0).getId()); + Assert.assertEquals(result.get(0).getTagId(), ret.get(0).getTagId()); + + try { + Mockito.verify(tagStore).getTagResourceMaps((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test58getAllTagResourceMaps() { + List<RangerTagResourceMap> ret = new ArrayList<RangerTagResourceMap>(); + + try { + Mockito.when(tagStore.getTagResourceMaps((SearchFilter)Mockito.anyObject())).thenReturn(ret); + } catch (Exception e) { + } + + List<RangerTagResourceMap> result = tagREST.getAllTagResourceMaps(); + Assert.assertNotNull(result); + + try { + Mockito.verify(tagStore).getTagResourceMaps((SearchFilter)Mockito.anyObject()); + } catch (Exception e) { + } + } + + @Test + public void test48deleteServiceResourceByGuid() { + RangerServiceResource oldRSR = new RangerServiceResource(); + oldRSR.setId(id); + oldRSR.setGuid(gId); + List<RangerTagResourceMap> tagResourceMaps = new ArrayList<RangerTagResourceMap>(); + RangerTagResourceMap rangerTagResourceMap = new RangerTagResourceMap(); + rangerTagResourceMap.setId(id); + rangerTagResourceMap.setTagId(id); + tagResourceMaps.add(rangerTagResourceMap); + + try { + Mockito.when(validator.preDeleteServiceResourceByGuid(gId, true)).thenReturn(oldRSR); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.getTagResourceMapsForResourceGuid(oldRSR.getGuid())).thenReturn(tagResourceMaps); + } catch (Exception e) { + } + tagREST.deleteServiceResourceByGuid(gId, true); + + try { + Mockito.verify(validator).preDeleteServiceResourceByGuid(gId, true); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).getTagResourceMapsForResourceGuid(oldRSR.getGuid()); + } catch (Exception e) { + } + } + + @Test + public void test49deleteServiceResourceByGuid() { + RangerServiceResource oldRSR = new RangerServiceResource(); + oldRSR.setId(id); + oldRSR.setGuid(gId); + + try { + Mockito.when(validator.preDeleteServiceResourceByGuid(gId, false)).thenReturn(oldRSR); + } catch (Exception e) { + } + try { + Mockito.doNothing().when(tagStore).deleteServiceResource(oldRSR.getId()); + } catch (Exception e) { + } + + tagREST.deleteServiceResourceByGuid(gId, false); + + try { + Mockito.verify(validator).preDeleteServiceResourceByGuid(gId, false); + } catch (Exception e) { + } + } + + @Test + public void test61deleteServiceResourceByGuid() { + RangerServiceResource oldRSR = new RangerServiceResource(); + oldRSR.setId(id); + oldRSR.setGuid(gId); + List<RangerTagResourceMap> tagResourceMaps = new ArrayList<RangerTagResourceMap>(); + + try { + Mockito.when(validator.preDeleteServiceResourceByGuid(gId, true)).thenReturn(oldRSR); + } catch (Exception e) { + } + try { + Mockito.when(tagStore.getTagResourceMapsForResourceGuid(oldRSR.getGuid())).thenReturn(tagResourceMaps); + } catch (Exception e) { + } + tagREST.deleteServiceResourceByGuid(gId, true); + + try { + Mockito.verify(validator).preDeleteServiceResourceByGuid(gId, true); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).getTagResourceMapsForResourceGuid(oldRSR.getGuid()); + } catch (Exception e) { + } + } + + @Test + public void test50getServiceTagsIfUpdated() { + ServiceTags oldServiceTag = null; + + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(),Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + tagREST.getServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(),Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test51getServiceTagsIfUpdated() { + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + + ServiceTags serviceTags = tagREST.getServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + Assert.assertEquals(serviceTags.getServiceName(), oldServiceTag.getServiceName()); + Assert.assertEquals(serviceTags.getTagVersion(), oldServiceTag.getTagVersion()); + + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + } + + @Test + public void test52getSecureServiceTagsIfUpdatedIsKeyAdminTrue() { + boolean isAdmin = false; + boolean isKeyAdmin = true; + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + xServiceDef.setImplclassname("org.apache.ranger.services.kms.RangerServiceKMS"); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + + ServiceTags result = tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + Assert.assertNotNull(result.getServiceName()); + Assert.assertEquals(result.getServiceName(), oldServiceTag.getServiceName()); + Assert.assertEquals(result.getTagVersion(), oldServiceTag.getTagVersion()); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + } + + @Test + public void test53getSecureServiceTagsIfUpdatedIsAdminTrue() { + boolean isAdmin = true; + boolean isKeyAdmin = false; + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + + ServiceTags result = tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + Assert.assertNotNull(result.getServiceName()); + Assert.assertEquals(result.getServiceName(), oldServiceTag.getServiceName()); + Assert.assertEquals(result.getTagVersion(), oldServiceTag.getTagVersion()); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + } + + @Test + public void test54getSecureServiceTagsIfUpdatedIsKeyAdminFalse() { + boolean isAdmin = false; + boolean isKeyAdmin = false; + boolean isAllowed = true; + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + xServiceDef.setImplclassname("org.apache.ranger.services.kms.RangerServiceKMS"); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + Mockito.when(bizUtil.isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download)).thenReturn(isAllowed); + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + + ServiceTags result = tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + Assert.assertNotNull(result.getServiceName()); + Assert.assertEquals(result.getServiceName(), oldServiceTag.getServiceName()); + Assert.assertEquals(result.getTagVersion(), oldServiceTag.getTagVersion()); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + Mockito.verify(bizUtil).isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download); + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + } + + @Test + public void test55getSecureServiceTagsIfUpdatedIsAdminFalse() { + boolean isAdmin = false; + boolean isKeyAdmin = false; + boolean isAllowed = true; + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + Mockito.when(bizUtil.isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download)).thenReturn(isAllowed); + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + + ServiceTags result = tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + Assert.assertNotNull(result.getServiceName()); + Assert.assertEquals(result.getServiceName(), oldServiceTag.getServiceName()); + Assert.assertEquals(result.getTagVersion(), oldServiceTag.getTagVersion()); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + Mockito.verify(bizUtil).isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download); + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + } + + @Test + public void test56getSecureServiceTagsIfUpdatedIsAllowedFalse() { + boolean isAdmin = false; + boolean isKeyAdmin = false; + boolean isAllowed = false; + ServiceTags oldServiceTag = new ServiceTags(); + oldServiceTag.setServiceName(serviceName); + oldServiceTag.setTagVersion(5L); + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + Mockito.when(bizUtil.isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download)).thenReturn(isAllowed); + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + Mockito.verify(bizUtil).isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download); + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()); + } + + @Test + public void test57getSecureServiceTagsIfUpdated() { + boolean isAdmin = false; + boolean isKeyAdmin = false; + boolean isAllowed = true; + ServiceTags oldServiceTag = null; + + XXService xService = new XXService(); + xService.setId(id); + xService.setName(serviceName); + xService.setType(5L); + + XXServiceDef xServiceDef = new XXServiceDef(); + xServiceDef.setId(id); + xServiceDef.setVersion(5L); + + RangerService rangerService = new RangerService(); + rangerService.setId(id); + rangerService.setName(serviceName); + + XXServiceDao xXServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceDefDao xXServiceDefDao = Mockito.mock(XXServiceDefDao.class); + + Mockito.when(bizUtil.isAdmin()).thenReturn(isAdmin); + Mockito.when(bizUtil.isKeyAdmin()).thenReturn(isKeyAdmin); + + Mockito.when(daoManager.getXXService()).thenReturn(xXServiceDao); + Mockito.when(xXServiceDao.findByName(serviceName)).thenReturn(xService); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xXServiceDefDao); + Mockito.when(xXServiceDefDao.getById(xService.getType())).thenReturn(xServiceDef); + try { + Mockito.when(svcStore.getServiceByName(serviceName)).thenReturn(rangerService); + } catch (Exception e) { + } + + Mockito.when(bizUtil.isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download)).thenReturn(isAllowed); + try { + Mockito.when(tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion)).thenReturn(oldServiceTag); + } catch (Exception e) { + } + Mockito.when(restErrorUtil.createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + tagREST.getSecureServiceTagsIfUpdated(serviceName, lastKnownVersion, pluginId); + + Mockito.verify(bizUtil).isAdmin(); + Mockito.verify(bizUtil).isKeyAdmin(); + Mockito.verify(daoManager).getXXService(); + Mockito.verify(xXServiceDao).findByName(serviceName); + Mockito.verify(daoManager).getXXServiceDef(); + Mockito.verify(xXServiceDefDao).getById(xService.getType()); + try { + Mockito.verify(svcStore).getServiceByName(serviceName); + } catch (Exception e) { + } + Mockito.verify(bizUtil).isUserAllowed(rangerService, Allowed_User_List_For_Tag_Download); + try { + Mockito.verify(tagStore).getServiceTagsIfUpdated(serviceName, lastKnownVersion); + } catch (Exception e) { + } + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyInt(), Mockito.anyString(), Mockito.anyBoolean()); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26bfd131/security-admin/src/test/java/org/apache/ranger/rest/TestUserREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestUserREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestUserREST.java new file mode 100644 index 0000000..fc9cdd9 --- /dev/null +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestUserREST.java @@ -0,0 +1,495 @@ +/* + * 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.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.WebApplicationException; + +import org.apache.ranger.biz.UserMgr; +import org.apache.ranger.biz.XUserMgr; +import org.apache.ranger.common.MessageEnums; +import org.apache.ranger.common.RESTErrorUtil; +import org.apache.ranger.common.RangerConfigUtil; +import org.apache.ranger.common.RangerConstants; +import org.apache.ranger.common.SearchCriteria; +import org.apache.ranger.common.SearchUtil; +import org.apache.ranger.common.StringUtil; +import org.apache.ranger.db.RangerDaoManager; +import org.apache.ranger.db.XXPortalUserDao; +import org.apache.ranger.entity.XXPortalUser; +import org.apache.ranger.util.RangerRestUtil; +import org.apache.ranger.view.VXPasswordChange; +import org.apache.ranger.view.VXPortalUser; +import org.apache.ranger.view.VXPortalUserList; +import org.apache.ranger.view.VXResponse; +import org.apache.ranger.view.VXStringList; +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 TestUserREST { + + @InjectMocks + UserREST userREST = new UserREST(); + + @Mock + HttpServletRequest request; + + @Mock + SearchUtil searchUtil; + + @Mock + RangerConfigUtil configUtil; + + @Mock + UserMgr userManager; + + @Mock + RangerDaoManager daoManager; + + @Mock + XUserMgr xUserMgr; + + @Mock + RESTErrorUtil restErrorUtil; + + @Mock + VXPortalUserList vXPUserExpList; + + @Mock + RangerRestUtil msRestUtil; + + @Mock + VXPortalUser vxPUserAct; + + @Mock + VXPasswordChange changePassword; + + @Mock + VXResponse responseExp; + + @Mock + StringUtil stringUtil; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + Long userId = 10l; + int pageSize = 100; + String firstName = "abc"; + String lastName = "xyz"; + String loginId = "xyzId"; + String emailId = "a...@example.com"; + + @SuppressWarnings("deprecation") + @Test + public void test1SearchUsers() { + SearchCriteria searchCriteria = new SearchCriteria(); + vXPUserExpList = new VXPortalUserList(); + vXPUserExpList.setPageSize(pageSize); + List<Integer> status = new ArrayList<Integer>(); + String publicScreenName = "nrp"; + List<String> roles = new ArrayList<String>(); + String[] approvedSortByParams = new String[] { "requestDate", "approvedDate", "activationDate", "emailAddress", + "firstName", "lastName" }; + + Mockito.when(searchUtil.extractCommonCriterias(request, approvedSortByParams)).thenReturn(searchCriteria); + Mockito.when(searchUtil.extractLong(request, searchCriteria, "userId", "User Id")).thenReturn(userId); + Mockito.when(searchUtil.extractString(request, searchCriteria, "loginId", "Login Id", null)) + .thenReturn(loginId); + Mockito.when(searchUtil.extractString(request, searchCriteria, "emailAddress", "Email Address", null)) + .thenReturn(emailId); + Mockito.when(searchUtil.extractString(request, searchCriteria, "firstName", "First Name", + StringUtil.VALIDATION_NAME)).thenReturn(firstName); + Mockito.when( + searchUtil.extractString(request, searchCriteria, "lastName", "Last Name", StringUtil.VALIDATION_NAME)) + .thenReturn(lastName); + Mockito.when(searchUtil.extractEnum(request, searchCriteria, "status", "Status", "statusList", + RangerConstants.ActivationStatus_MAX)).thenReturn(status); + Mockito.when(searchUtil.extractString(request, searchCriteria, "publicScreenName", "Public Screen Name", + StringUtil.VALIDATION_NAME)).thenReturn(publicScreenName); + Mockito.when(searchUtil.extractStringList(request, searchCriteria, "role", "Role", "roleList", + configUtil.getRoles(), StringUtil.VALIDATION_NAME)).thenReturn(roles); + Mockito.when(userManager.searchUsers(searchCriteria)).thenReturn(vXPUserExpList); + + VXPortalUserList vXPUserListAct = userREST.searchUsers(request); + + Assert.assertNotNull(vXPUserListAct); + Assert.assertEquals(vXPUserExpList, vXPUserListAct); + Assert.assertEquals(vXPUserExpList.getPageSize(), vXPUserListAct.getPageSize()); + + Mockito.verify(searchUtil).extractCommonCriterias(request, approvedSortByParams); + Mockito.verify(searchUtil).extractLong(request, searchCriteria, "userId", "User Id"); + Mockito.verify(searchUtil).extractString(request, searchCriteria, "loginId", "Login Id", null); + Mockito.verify(searchUtil).extractString(request, searchCriteria, "emailAddress", "Email Address", null); + Mockito.verify(searchUtil).extractString(request, searchCriteria, "firstName", "First Name", + StringUtil.VALIDATION_NAME); + Mockito.verify(searchUtil).extractString(request, searchCriteria, "lastName", "Last Name", + StringUtil.VALIDATION_NAME); + Mockito.verify(searchUtil).extractEnum(request, searchCriteria, "status", "Status", "statusList", + RangerConstants.ActivationStatus_MAX); + Mockito.verify(searchUtil).extractString(request, searchCriteria, "publicScreenName", "Public Screen Name", + StringUtil.VALIDATION_NAME); + Mockito.verify(searchUtil).extractStringList(request, searchCriteria, "role", "Role", "roleList", + configUtil.getRoles(), StringUtil.VALIDATION_NAME); + Mockito.verify(userManager).searchUsers(searchCriteria); + } + + @Test + public void test2GetUserProfileForUser() { + VXPortalUser vxPUserExp = CreateVXPortalUser(); + + Mockito.when(userManager.getUserProfile(userId)).thenReturn(vxPUserExp); + + VXPortalUser VXPUserAct = userREST.getUserProfileForUser(userId); + + Assert.assertNotNull(VXPUserAct); + Assert.assertEquals(vxPUserExp, VXPUserAct); + Assert.assertEquals(vxPUserExp.getLoginId(), VXPUserAct.getLoginId()); + Assert.assertEquals(vxPUserExp.getFirstName(), VXPUserAct.getFirstName()); + Assert.assertEquals(vxPUserExp.getEmailAddress(), VXPUserAct.getEmailAddress()); + Assert.assertEquals(vxPUserExp.getId(), VXPUserAct.getId()); + + Mockito.verify(userManager).getUserProfile(userId); + } + + @Test + public void test3GetUserProfileForUser() { + VXPortalUser vxPUserExp = new VXPortalUser(); + vxPUserExp = null; + + Mockito.when(userManager.getUserProfile(userId)).thenReturn(vxPUserExp); + + VXPortalUser VXPUserAct = userREST.getUserProfileForUser(userId); + + Assert.assertEquals(vxPUserExp, VXPUserAct); + + Mockito.verify(userManager).getUserProfile(userId); + } + + @Test + public void test6Create() { + VXPortalUser vxPUserExp = CreateVXPortalUser(); + + Mockito.when(userManager.createUser(vxPUserExp)).thenReturn(vxPUserExp); + + VXPortalUser VXPUserAct = userREST.create(vxPUserExp, request); + + Assert.assertNotNull(VXPUserAct); + Assert.assertEquals(vxPUserExp.getLoginId(), VXPUserAct.getLoginId()); + Assert.assertEquals(vxPUserExp.getFirstName(), VXPUserAct.getFirstName()); + Assert.assertEquals(vxPUserExp.getLastName(), VXPUserAct.getLastName()); + Assert.assertEquals(vxPUserExp.getEmailAddress(), VXPUserAct.getEmailAddress()); + + Mockito.verify(userManager).createUser(vxPUserExp); + } + + @Test + public void test7CreateDefaultAccountUser() { + VXPortalUser vxPUserExp = new VXPortalUser(); + vxPUserExp = null; + Mockito.when(userManager.createDefaultAccountUser(vxPUserExp)).thenReturn(vxPUserExp); + + VXPortalUser VXPUserAct = userREST.createDefaultAccountUser(vxPUserExp, request); + + Assert.assertNull(VXPUserAct); + + Mockito.verify(userManager).createDefaultAccountUser(vxPUserExp); + } + + @Test + public void test8CreateDefaultAccountUser() { + VXPortalUser vxPUserExp = CreateVXPortalUser(); + + Mockito.when(userManager.createDefaultAccountUser(vxPUserExp)).thenReturn(vxPUserExp); + Mockito.doNothing().when(xUserMgr).assignPermissionToUser(vxPUserExp, true); + + VXPortalUser VXPUserAct = userREST.createDefaultAccountUser(vxPUserExp, request); + + Assert.assertNotNull(VXPUserAct); + Assert.assertEquals(vxPUserExp, VXPUserAct); + Assert.assertEquals(vxPUserExp.getLoginId(), VXPUserAct.getLoginId()); + Assert.assertEquals(vxPUserExp.getFirstName(), VXPUserAct.getFirstName()); + Assert.assertEquals(vxPUserExp.getLastName(), VXPUserAct.getLastName()); + Assert.assertEquals(vxPUserExp.getEmailAddress(), VXPUserAct.getEmailAddress()); + + Mockito.verify(userManager).createDefaultAccountUser(vxPUserExp); + Mockito.verify(xUserMgr).assignPermissionToUser(vxPUserExp, true); + } + + @Test + public void test8Update() { + VXPortalUser vxPUserExp = CreateVXPortalUser(); + vxPUserExp.setLoginId(loginId); + XXPortalUser xxPUserExp = new XXPortalUser(); + xxPUserExp.setLoginId(loginId); + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(Mockito.anyLong())).thenReturn(xxPUserExp); + Mockito.doNothing().when(userManager).checkAccess(xxPUserExp); + Mockito.doNothing().when(msRestUtil).validateVUserProfileForUpdate(xxPUserExp, vxPUserExp); + Mockito.when(userManager.updateUser(vxPUserExp)).thenReturn(xxPUserExp); + Mockito.when(userManager.mapXXPortalUserVXPortalUser(xxPUserExp)).thenReturn(vxPUserExp); + + VXPortalUser vxPUserAct = userREST.update(vxPUserExp, request); + + Assert.assertNotNull(vxPUserAct); + Assert.assertEquals(xxPUserExp.getLoginId(), vxPUserAct.getLoginId()); + Assert.assertEquals(vxPUserExp.getId(), vxPUserAct.getId()); + Assert.assertEquals(vxPUserExp.getFirstName(), vxPUserAct.getFirstName()); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(Mockito.anyLong()); + Mockito.verify(userManager).checkAccess(xxPUserExp); + Mockito.verify(msRestUtil).validateVUserProfileForUpdate(xxPUserExp, vxPUserExp); + Mockito.verify(userManager).updateUser(vxPUserExp); + Mockito.verify(userManager).mapXXPortalUserVXPortalUser(xxPUserExp); + } + + @Test + public void test9Update() { + VXPortalUser vxPUserExp = new VXPortalUser(); + XXPortalUser xxPUserExp = new XXPortalUser(); + xxPUserExp = null; + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(Mockito.anyLong())).thenReturn(xxPUserExp); + Mockito.doNothing().when(userManager).checkAccess(xxPUserExp); + Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(new WebApplicationException()); + + thrown.expect(WebApplicationException.class); + + userREST.update(vxPUserExp, request); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(Mockito.anyLong()); + Mockito.verify(userManager).checkAccess(xxPUserExp); + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString()); + } + + @Test + public void test10SetUserRoles() { + Long userId = 10L; + VXResponse responseExp = new VXResponse(); + VXStringList roleList = new VXStringList(); + Mockito.doNothing().when(userManager).checkAccess(userId); + Mockito.doNothing().when(userManager).setUserRoles(userId, roleList.getVXStrings()); + + VXResponse responseAct = userREST.setUserRoles(userId, roleList); + + Assert.assertNotNull(responseAct); + Assert.assertEquals(responseExp.getStatusCode(), responseAct.getStatusCode()); + + Mockito.verify(userManager).checkAccess(userId); + Mockito.verify(userManager).setUserRoles(userId, roleList.getVXStrings()); + } + + @Test + public void test11DeactivateUser() { + VXPortalUser vxPUserExp = CreateVXPortalUser(); + XXPortalUser xxPUserExp = new XXPortalUser(); + xxPUserExp.setLoginId(loginId); + xxPUserExp.setStatus(1); + vxPUserExp.setStatus(5); + + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUserExp); + Mockito.when(userManager.deactivateUser(xxPUserExp)).thenReturn(vxPUserExp); + + VXPortalUser vxPUserAct = userREST.deactivateUser(userId); + Assert.assertNotNull(vxPUserAct); + Assert.assertEquals(xxPUserExp.getLoginId(), vxPUserAct.getLoginId()); + Assert.assertEquals(vxPUserExp.getStatus(), vxPUserAct.getStatus()); + Assert.assertEquals(vxPUserExp.getId(), vxPUserAct.getId()); + Assert.assertEquals(vxPUserExp.getFirstName(), vxPUserAct.getFirstName()); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(userManager).deactivateUser(xxPUserExp); + } + + @Test + public void test12DeactivateUser() { + XXPortalUser xxPUserExp = new XXPortalUser(); + xxPUserExp = null; + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUserExp); + Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + userREST.deactivateUser(userId); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString()); + } + + @Test + public void test13GetUserProfile() { + HttpSession hs = Mockito.mock(HttpSession.class); + VXPortalUser vxPUserExp = CreateVXPortalUser(); + Mockito.when(userManager.getUserProfileByLoginId()).thenReturn(vxPUserExp); + Mockito.when(request.getSession()).thenReturn(hs); + Mockito.when(hs.getId()).thenReturn("id"); + + VXPortalUser vxPUserAct = userREST.getUserProfile(request); + + Assert.assertNotNull(vxPUserAct); + Assert.assertEquals(vxPUserExp, vxPUserAct); + Assert.assertEquals(vxPUserExp.getId(), vxPUserAct.getId()); + Assert.assertEquals(vxPUserExp.getFirstName(), vxPUserAct.getFirstName()); + + Mockito.verify(userManager).getUserProfileByLoginId(); + } + + @Test + public void test15SuggestUserFirstName() { + String op = userREST.suggestUserFirstName(firstName, request); + Assert.assertNull(op); + } + + @Test + public void test16ChangePassword() { + XXPortalUser xxPUser = new XXPortalUser(); + VXResponse vxResponseExp = new VXResponse(); + vxResponseExp.setStatusCode(10); + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUser); + Mockito.doNothing().when(userManager).checkAccessForUpdate(xxPUser); + Mockito.doNothing().when(changePassword).setId(userId); + Mockito.when(userManager.changePassword(changePassword)).thenReturn(vxResponseExp); + Mockito.when(restErrorUtil.createRESTException("serverMsg.userRestUser",MessageEnums.DATA_NOT_FOUND, null, null, changePassword.getLoginId())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + VXResponse vxResponseAct = userREST.changePassword(userId, changePassword); + + Assert.assertNotNull(vxResponseAct); + Assert.assertEquals(vxResponseExp, vxResponseAct); + Assert.assertEquals(vxResponseExp.getStatusCode(), vxResponseAct.getStatusCode()); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(userManager).checkAccessForUpdate(xxPUser); + Mockito.verify(changePassword).setId(userId); + Mockito.verify(userManager).changePassword(changePassword); + } + + @Test + public void test17ChangePassword() { + XXPortalUser xxPUser = new XXPortalUser(); + xxPUser = null; + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUser); + Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + userREST.changePassword(userId, changePassword); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString()); + } + + @Test + public void test18ChangeEmailAddress() { + XXPortalUser xxPUser = new XXPortalUser(); + VXPortalUser vxPUserExp = CreateVXPortalUser(); + + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUser); + Mockito.doNothing().when(userManager).checkAccessForUpdate(xxPUser); + Mockito.doNothing().when(changePassword).setId(userId); + Mockito.when(userManager.changeEmailAddress(xxPUser, changePassword)).thenReturn(vxPUserExp); + Mockito.when(restErrorUtil.createRESTException("serverMsg.userRestUser",MessageEnums.DATA_NOT_FOUND, null, null, changePassword.getLoginId())).thenThrow(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + VXPortalUser vxPortalUserAct = userREST.changeEmailAddress(userId, changePassword); + + Assert.assertNotNull(vxPortalUserAct); + Assert.assertEquals(vxPUserExp, vxPortalUserAct); + Assert.assertEquals(vxPUserExp.getId(), vxPortalUserAct.getId()); + Assert.assertEquals(vxPUserExp.getFirstName(), vxPortalUserAct.getFirstName()); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(userManager).checkAccessForUpdate(xxPUser); + Mockito.verify(changePassword).setId(userId); + Mockito.verify(userManager).changeEmailAddress(xxPUser, changePassword); + } + + @Test + public void test19ChangeEmailAddress() { + XXPortalUser xxPUser = new XXPortalUser(); + xxPUser = null; + XXPortalUserDao xxPortalUserDao = Mockito.mock(XXPortalUserDao.class); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(xxPortalUserDao); + Mockito.when(xxPortalUserDao.getById(userId)).thenReturn(xxPUser); + Mockito.when(restErrorUtil.createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(new WebApplicationException()); + thrown.expect(WebApplicationException.class); + + userREST.changeEmailAddress(userId, changePassword); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(xxPortalUserDao).getById(userId); + Mockito.verify(restErrorUtil).createRESTException(Mockito.anyString(), (MessageEnums) Mockito.anyObject(), + Mockito.anyLong(), Mockito.anyString(), Mockito.anyString()); + } + + private VXPortalUser CreateVXPortalUser() { + + VXPortalUser vxPUserExp = new VXPortalUser(); + vxPUserExp.setId(userId); + vxPUserExp.setFirstName(firstName); + vxPUserExp.setLastName(lastName); + vxPUserExp.setEmailAddress(emailId); + vxPUserExp.setLoginId(loginId); + return vxPUserExp; + } +} \ No newline at end of file