Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / validation / AccessValidationsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.components.validation;
22
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.mockito.Mock;
27 import org.mockito.Mockito;
28 import org.mockito.junit.MockitoJUnitRunner;
29 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
30 import org.openecomp.sdc.be.model.Component;
31 import org.openecomp.sdc.be.model.User;
32 import org.openecomp.sdc.be.user.Role;
33
34 import java.util.ArrayList;
35 import java.util.List;
36
37 import static org.mockito.Mockito.atLeast;
38
39 @RunWith(MockitoJUnitRunner.class)
40 public class AccessValidationsTest {
41
42     private static final String ANY_CONTEXT = "anyContext";
43     private static final String RESOURCES = "resources";
44     private static final String COMPONENT_ID = "1";
45     private static final String USER_ID = "2";
46     private AccessValidations accessValidations;
47
48     @Mock
49     private UserValidations userValidations;
50     @Mock
51     private ComponentValidations componentValidations;
52
53     @Before
54     public void setUp() throws Exception {
55         accessValidations = new AccessValidations(userValidations, componentValidations);
56     }
57
58     @Test
59     public void testValidateUserCanRetrieveComponentData() {
60         accessValidations.validateUserCanRetrieveComponentData(COMPONENT_ID, RESOURCES, USER_ID, ANY_CONTEXT);
61
62         Mockito.verify(userValidations).validateUserExists(USER_ID);
63         Mockito.verify(componentValidations).getComponent(COMPONENT_ID, ComponentTypeEnum.RESOURCE);
64     }
65
66     @Test
67     public void testValidateUserCanWorkOnComponent() {
68         User user = new User();
69         List<Role> adminRoles = new ArrayList<>();
70         adminRoles.add(Role.ADMIN);
71         adminRoles.add(Role.DESIGNER);
72         Mockito.when(userValidations.validateUserExists(USER_ID)).thenReturn(user);
73
74         accessValidations.validateUserCanWorkOnComponent(COMPONENT_ID, ComponentTypeEnum.RESOURCE, USER_ID, ANY_CONTEXT);
75
76         Mockito.verify(userValidations).validateUserExists(USER_ID);
77         Mockito.verify(userValidations).validateUserRole(user, adminRoles);
78         Mockito.verify(componentValidations).validateComponentIsCheckedOutByUser(COMPONENT_ID, ComponentTypeEnum.RESOURCE,
79             USER_ID);
80     }
81
82     @Test
83     public void testValidateUserCanWorkOnComponentGivingComponent() {
84         User user = new User();
85         Component component = Mockito.mock(Component.class);
86         List<Role> adminRoles = new ArrayList<>();
87         adminRoles.add(Role.ADMIN);
88         adminRoles.add(Role.DESIGNER);
89         Mockito.when(userValidations.validateUserExists(USER_ID)).thenReturn(user);
90
91         accessValidations.validateUserCanWorkOnComponent(component, USER_ID, ANY_CONTEXT);
92
93         Mockito.verify(userValidations, atLeast(1)).validateUserExists(USER_ID);
94         Mockito.verify(userValidations).validateUserRole(user, adminRoles);
95         Mockito.verify(componentValidations).validateComponentIsCheckedOutByUser(component, USER_ID);
96     }
97
98     @Test
99     public void testValidateUserExists() {
100         accessValidations.validateUserExists(COMPONENT_ID, ANY_CONTEXT);
101         Mockito.verify(userValidations).validateUserExists(COMPONENT_ID);
102     }
103
104     @Test
105     public void validateUserExist() {
106         accessValidations.validateUserExist(COMPONENT_ID, ANY_CONTEXT);
107         Mockito.verify(userValidations).validateUserExists(COMPONENT_ID);
108     }
109
110     @Test
111     public void userIsAdminOrDesigner() {
112         User user = new User();
113         List<Role> adminRoles = new ArrayList<>();
114         adminRoles.add(Role.ADMIN);
115         adminRoles.add(Role.DESIGNER);
116         Mockito.when(userValidations.validateUserExists(COMPONENT_ID)).thenReturn(user);
117
118         accessValidations.userIsAdminOrDesigner(COMPONENT_ID, ANY_CONTEXT);
119
120         Mockito.verify(userValidations).validateUserRole(user, adminRoles);
121     }
122 }