1 package org.openecomp.sdc.itempermissions.dao.impl;
3 import java.util.Optional;
4 import org.mockito.InjectMocks;
5 import org.mockito.Mock;
6 import org.mockito.MockitoAnnotations;
7 import org.mockito.Spy;
8 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
9 import org.openecomp.sdc.itempermissions.PermissionsRules;
10 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
11 import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
12 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
13 import org.testng.Assert;
14 import org.testng.annotations.BeforeMethod;
15 import org.testng.annotations.Test;
17 import java.util.Arrays;
18 import java.util.Collection;
19 import java.util.HashSet;
22 import static org.mockito.Matchers.anyObject;
23 import static org.mockito.Mockito.doReturn;
24 import static org.mockito.Mockito.verify;
25 import static org.mockito.Mockito.when;
28 * Created by ayalaben on 7/9/2017
30 public class PermissionsServicesImplTest {
32 private static final String ITEM1_ID = "1";
33 private static final String PERMISSION = "Owner";
34 private static final String USER2_ID = "testUser2";
35 private static final String USER1_ID = "testUser1";
36 private static final String ACTION_SUBMIT = "Submit_Item";
37 private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
40 SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
44 private ItemPermissionsDao permissionsDaoMock;
46 private UserPermissionsDao userPermissionsDao; // do not delete. needed for permissionService
48 private PermissionsRules permissionsRules;
51 private PermissionsServicesImpl permissionsServices;
55 public void setUp() throws Exception {
56 MockitoAnnotations.initMocks(this);
60 public void testListItemPermissionsWhenNone() {
61 Collection<ItemPermissionsEntity> permissions =
62 permissionsServices.listItemPermissions(ITEM1_ID);
63 Assert.assertEquals(permissions.size(), 0);
68 public void testListItemPermissions(){
69 doReturn(Arrays.asList(
70 createPermissionEntity(ITEM1_ID, USER1_ID, PERMISSION),
71 createPermissionEntity(ITEM1_ID, USER2_ID, PERMISSION)))
72 .when(permissionsDaoMock).listItemPermissions(anyObject());
74 Collection<ItemPermissionsEntity> actual =
75 permissionsServices.listItemPermissions(ITEM1_ID);
76 Assert.assertEquals(actual.size(), 2);
81 public void testIsAllowed(){
82 when(permissionsDaoMock.getUserItemPermission(ITEM1_ID,USER1_ID)).thenReturn(Optional.of(PERMISSION));
83 when(permissionsRules.isAllowed(PERMISSION,ACTION_SUBMIT)).thenReturn(true);
85 Boolean result = permissionsServices.isAllowed(ITEM1_ID,USER1_ID,ACTION_SUBMIT);
87 Assert.assertTrue(result);
91 public void testUpdatePermissions(){
93 Set<String> addedUsers = new HashSet<>();
94 addedUsers.add(USER2_ID);
96 permissionsServices.updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers, new HashSet<>());
98 verify(permissionsRules).executeAction(ITEM1_ID,USER1_ID,CHANGE_PERMISSIONS);
99 verify(permissionsRules).updatePermission(ITEM1_ID,USER1_ID,PERMISSION,addedUsers, new HashSet<>());
100 verify(permissionsDaoMock).updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers,new
105 public static ItemPermissionsEntity createPermissionEntity(String itemId, String
106 userId, String permission) {
107 ItemPermissionsEntity permissionsEntity = new ItemPermissionsEntity();
108 permissionsEntity.setItemId(itemId);
109 permissionsEntity.setUserId(userId);
110 permissionsEntity.setPermission(permission);
111 return permissionsEntity;