Revert "SonarQube coverage"
[sdc.git] / openecomp-be / lib / openecomp-item-permissions-lib / openecomp-item-permissions-core / src / test / java / org / openecomp / sdc / itempermissions / dao / impl / PermissionsServicesImplTest.java
1 package org.openecomp.sdc.itempermissions.dao.impl;
2
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;
16
17 import java.util.Arrays;
18 import java.util.Collection;
19 import java.util.HashSet;
20 import java.util.Set;
21
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;
26
27 /**
28  * Created by ayalaben on 7/9/2017
29  */
30 public class PermissionsServicesImplTest {
31
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";
38
39   static {
40     SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
41   }
42
43   @Mock
44   private ItemPermissionsDao permissionsDaoMock;
45   @Mock
46   private UserPermissionsDao userPermissionsDao;  // do not delete. needed for permissionService
47   @Mock
48   private PermissionsRules permissionsRules;
49   @InjectMocks
50   @Spy
51   private PermissionsServicesImpl permissionsServices;
52
53
54   @BeforeMethod
55   public void setUp() throws Exception {
56     MockitoAnnotations.initMocks(this);
57   }
58
59   @Test
60   public void testListItemPermissionsWhenNone()  {
61     Collection<ItemPermissionsEntity> permissions =
62         permissionsServices.listItemPermissions(ITEM1_ID);
63     Assert.assertEquals(permissions.size(), 0);
64   }
65
66
67   @Test
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());
73
74     Collection<ItemPermissionsEntity> actual =
75         permissionsServices.listItemPermissions(ITEM1_ID);
76     Assert.assertEquals(actual.size(), 2);
77   }
78
79
80   @Test
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);
84
85     Boolean result = permissionsServices.isAllowed(ITEM1_ID,USER1_ID,ACTION_SUBMIT);
86
87     Assert.assertTrue(result);
88
89   }
90   @Test
91   public void testUpdatePermissions(){
92
93     Set<String> addedUsers = new HashSet<>();
94     addedUsers.add(USER2_ID);
95
96     permissionsServices.updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers, new HashSet<>());
97
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
101         HashSet<>());
102   }
103
104
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;
112   }
113
114 }