1 package org.openecomp.sdc.itempermissions.dao.impl;
3 import static org.mockito.Matchers.anyObject;
4 import static org.mockito.Matchers.anyString;
5 import static org.mockito.Mockito.doReturn;
6 import static org.mockito.Mockito.times;
7 import static org.mockito.Mockito.verify;
8 import static org.mockito.Mockito.when;
10 import java.util.Arrays;
11 import java.util.Collection;
12 import java.util.Collections;
13 import java.util.HashSet;
14 import java.util.Optional;
16 import org.mockito.InjectMocks;
17 import org.mockito.Mock;
18 import org.mockito.Mockito;
19 import org.mockito.MockitoAnnotations;
20 import org.mockito.Spy;
21 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
22 import org.openecomp.sdc.itempermissions.PermissionsRules;
23 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
24 import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
25 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
26 import org.testng.Assert;
27 import org.testng.annotations.BeforeMethod;
28 import org.testng.annotations.Test;
31 * Created by ayalaben on 7/9/2017
33 public class PermissionsServicesImplTest {
35 private static final String ITEM1_ID = "1";
36 private static final String PERMISSION = "Owner";
37 private static final String USER2_ID = "testUser2";
38 private static final String USER1_ID = "testUser1";
39 private static final String ACTION_SUBMIT = "Submit_Item";
40 private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
43 SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
47 private ItemPermissionsDao permissionsDaoMock;
49 private UserPermissionsDao userPermissionsDao; // do not delete. needed for permissionService
51 private PermissionsRules permissionsRules;
54 private PermissionsServicesImpl permissionsServices;
59 MockitoAnnotations.initMocks(this);
63 public void testListUserPermittedItems() {
64 Set<String> userPermissionSet = Collections.emptySet();
66 Mockito.when(userPermissionsDao.listUserPermittedItems(anyString(), anyString())).thenReturn(userPermissionSet);
68 Set<String> permissionsSet = permissionsServices.listUserPermittedItems(USER1_ID, PERMISSION);
70 Assert.assertEquals(0, permissionsSet.size());
74 public void testExecute() {
75 Mockito.doNothing().when(permissionsRules).executeAction(anyString(), anyString(), anyString());
77 permissionsServices.execute(ITEM1_ID, USER1_ID, PERMISSION);
79 Mockito.verify(permissionsRules, times(1)).executeAction(anyString(), anyString(), anyString());
83 public void testDeleteItemPermissions() {
84 Mockito.doNothing().when(permissionsDaoMock).deleteItemPermissions(anyString());
86 permissionsServices.deleteItemPermissions(ITEM1_ID);
88 Mockito.verify(permissionsDaoMock, times(1)).deleteItemPermissions(anyString());
92 public void testGetUserItemPermission() {
93 Mockito.when(permissionsDaoMock.getUserItemPermission(anyString(), anyString()))
94 .thenReturn(Optional.of(PERMISSION));
96 Optional<String> permission = permissionsServices.getUserItemPermission(ITEM1_ID, USER1_ID);
98 Assert.assertTrue(permission.isPresent());
99 Assert.assertEquals(permission.get(), PERMISSION);
103 public void testListItemPermissionsWhenNone() {
104 Collection<ItemPermissionsEntity> permissions =
105 permissionsServices.listItemPermissions(ITEM1_ID);
106 Assert.assertEquals(permissions.size(), 0);
111 public void testListItemPermissions() {
112 doReturn(Arrays.asList(
113 createPermissionEntity(ITEM1_ID, USER1_ID, PERMISSION),
114 createPermissionEntity(ITEM1_ID, USER2_ID, PERMISSION)))
115 .when(permissionsDaoMock).listItemPermissions(anyObject());
117 Collection<ItemPermissionsEntity> actual =
118 permissionsServices.listItemPermissions(ITEM1_ID);
119 Assert.assertEquals(actual.size(), 2);
124 public void testIsAllowed() {
125 when(permissionsDaoMock.getUserItemPermission(ITEM1_ID, USER1_ID)).thenReturn(Optional.of(PERMISSION));
126 when(permissionsRules.isAllowed(PERMISSION, ACTION_SUBMIT)).thenReturn(true);
128 boolean result = permissionsServices.isAllowed(ITEM1_ID, USER1_ID, ACTION_SUBMIT);
130 Assert.assertTrue(result);
135 public void testUpdatePermissions() {
137 Set<String> addedUsers = new HashSet<>();
138 addedUsers.add(USER2_ID);
140 permissionsServices.updateItemPermissions(ITEM1_ID, PERMISSION, addedUsers, new HashSet<>());
142 verify(permissionsRules).executeAction(ITEM1_ID, USER1_ID, CHANGE_PERMISSIONS);
143 verify(permissionsRules).updatePermission(ITEM1_ID, USER1_ID, PERMISSION, addedUsers, new HashSet<>());
144 verify(permissionsDaoMock).updateItemPermissions(ITEM1_ID, PERMISSION, addedUsers, new
149 private static ItemPermissionsEntity createPermissionEntity(String itemId, String
150 userId, String permission) {
151 ItemPermissionsEntity permissionsEntity = new ItemPermissionsEntity();
152 permissionsEntity.setItemId(itemId);
153 permissionsEntity.setUserId(userId);
154 permissionsEntity.setPermission(permission);
155 return permissionsEntity;