added svcapi ui and camunda code
[it/otf.git] / otf-service-api / src / test / java / org / oran / otf / api / tests / unit / utility / UserPermissionTest.java
1 /*  Copyright (c) 2019 AT&T Intellectual Property.                             #\r
2 #                                                                              #\r
3 #   Licensed under the Apache License, Version 2.0 (the "License");            #\r
4 #   you may not use this file except in compliance with the License.           #\r
5 #   You may obtain a copy of the License at                                    #\r
6 #                                                                              #\r
7 #       http://www.apache.org/licenses/LICENSE-2.0                             #\r
8 #                                                                              #\r
9 #   Unless required by applicable law or agreed to in writing, software        #\r
10 #   distributed under the License is distributed on an "AS IS" BASIS,          #\r
11 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #\r
12 #   See the License for the specific language governing permissions and        #\r
13 #   limitations under the License.                                             #\r
14 ##############################################################################*/\r
15 \r
16 \r
17 package org.oran.otf.api.tests.unit.utility;\r
18 \r
19 import org.oran.otf.common.utility.permissions.UserPermission;\r
20 import org.junit.Assert;\r
21 import org.junit.Before;\r
22 import org.junit.Test;\r
23 import org.junit.runner.RunWith;\r
24 import org.mockito.InjectMocks;\r
25 import org.mockito.Mock;\r
26 import org.mockito.Mockito;\r
27 import org.mockito.junit.MockitoJUnitRunner;\r
28 \r
29 import java.util.*;\r
30 \r
31 @RunWith(MockitoJUnitRunner.class)\r
32 public class UserPermissionTest {\r
33 \r
34     @Mock\r
35     Map<String, Set<String>> userAccessMap ;\r
36 \r
37     @InjectMocks\r
38     private UserPermission userPermission;\r
39 \r
40     @Before\r
41     public void setUp()\r
42     {\r
43         String fakeGroupId1 = "abc123";\r
44         Set<String> user1Permissions = new HashSet<>(Arrays.asList("READ","WRITE"));\r
45         Mockito.when(userAccessMap.get(fakeGroupId1)).thenReturn(user1Permissions);\r
46     }\r
47 \r
48     @Test\r
49     public void testHasAccessToMethod(){\r
50 \r
51         Assert.assertNotNull(userPermission.getUserAccessMap());\r
52         //test when user have access to group with certain permissions and a fake permission(mix of upper and lower case\r
53         Assert.assertTrue(userPermission.hasAccessTo("abc123","READ"));\r
54         Assert.assertTrue(userPermission.hasAccessTo("abc123","WrIte"));\r
55         Assert.assertFalse(userPermission.hasAccessTo("abc123","DEleTE"));\r
56         Assert.assertFalse(userPermission.hasAccessTo("abc123","ExECUTe"));\r
57         Assert.assertFalse(userPermission.hasAccessTo("abc123","mANAgEMENT"));\r
58         Assert.assertFalse(userPermission.hasAccessTo("abc123","READ+WRITE"));\r
59 \r
60         //test when user have no access to the group\r
61         Assert.assertFalse(userPermission.hasAccessTo("edf567","READ"));\r
62         Assert.assertFalse(userPermission.hasAccessTo("edf567","WRITE"));\r
63         Assert.assertFalse(userPermission.hasAccessTo("edf567","DELETE"));\r
64         Assert.assertFalse(userPermission.hasAccessTo("edf567","EXECUTE"));\r
65         Assert.assertFalse(userPermission.hasAccessTo("edf567","MANAGEMENT"));\r
66     }\r
67 }\r