Catalog alignment
[sdc.git] / catalog-model / src / test / java / org / openecomp / sdc / be / model / operations / utils / ComponentValidationUtilsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Modifications Copyright (c) 2019 Samsung
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.model.operations.utils;
22
23 import static org.junit.Assert.assertFalse;
24 import static org.junit.Assert.assertTrue;
25 import static org.mockito.ArgumentMatchers.eq;
26 import static org.mockito.Mockito.when;
27
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.junit.runner.RunWith;
31 import org.mockito.Mock;
32 import org.mockito.junit.MockitoJUnitRunner;
33 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
34 import org.openecomp.sdc.be.model.Component;
35 import org.openecomp.sdc.be.model.LifecycleStateEnum;
36 import org.openecomp.sdc.be.model.Resource;
37 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
38
39 import fj.data.Either;
40
41 @RunWith(MockitoJUnitRunner.class)
42 public class ComponentValidationUtilsTest {
43
44     private static final String USER_ID = "jh003";
45     private static final String BAD_USER_ID = "badID";
46     private static final String COMPONENT_ID = "componentID";
47
48     private Resource resource;
49
50     @Mock
51     ToscaOperationFacade toscaOperationFacade;
52     @Mock
53     Component component;
54
55     @Before
56     public void setup() {
57         resource = new Resource();
58         resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
59         resource.setLastUpdaterUserId("jh003");
60         resource.setIsDeleted(false);
61     }
62
63     @Test
64     public void testCanWorkOnResource() {
65         assertTrue(ComponentValidationUtils.canWorkOnResource(resource, USER_ID));
66     }
67
68     @Test
69     public void testCanWorkOnBadResourceAndBadUser() {
70         assertFalse(ComponentValidationUtils.canWorkOnResource(resource, BAD_USER_ID));
71
72         resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
73         assertFalse(ComponentValidationUtils.canWorkOnResource(resource, USER_ID));
74
75         resource.setIsDeleted(true);
76         assertFalse(ComponentValidationUtils.canWorkOnResource(resource, USER_ID));
77     }
78
79     @Test
80     public void testCanWorkOnComponent() {
81         // given
82         when(component.getLifecycleState()).thenReturn(resource.getLifecycleState());
83         when(component.getLastUpdaterUserId()).thenReturn(resource.getLastUpdaterUserId());
84
85         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID),
86             eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(component));
87
88         // when
89         boolean resultFromExtractComponent = ComponentValidationUtils
90             .canWorkOnComponent(COMPONENT_ID, toscaOperationFacade, USER_ID);
91         boolean resultFromComponent =
92             ComponentValidationUtils.canWorkOnComponent(component, USER_ID);
93
94         // then
95         assertTrue(resultFromExtractComponent);
96         assertTrue(resultFromComponent);
97     }
98
99     @Test
100     public void testCanWorkOnBadComponent() {
101         // given
102         when(component.getLifecycleState())
103             .thenReturn(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
104         when(component.getLastUpdaterUserId()).thenReturn(resource.getLastUpdaterUserId());
105
106         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID),
107             eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(component));
108
109         // when
110         boolean resultFromExtractComponent = ComponentValidationUtils
111             .canWorkOnComponent(COMPONENT_ID, toscaOperationFacade, USER_ID);
112         boolean resultFromComponent =
113             ComponentValidationUtils.canWorkOnComponent(component, USER_ID);
114
115         // then
116         assertFalse(resultFromExtractComponent);
117         assertFalse(resultFromComponent);
118     }
119
120     @Test
121     public void testCanWorkOnComponentWithBadUser() {
122         // given
123         when(component.getLifecycleState()).thenReturn(resource.getLifecycleState());
124         when(component.getLastUpdaterUserId()).thenReturn(resource.getLastUpdaterUserId());
125
126         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID),
127             eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(component));
128
129         // when
130         boolean resultFromExtractComponent = ComponentValidationUtils
131             .canWorkOnComponent(COMPONENT_ID, toscaOperationFacade, BAD_USER_ID);
132         boolean resultFromComponent =
133             ComponentValidationUtils.canWorkOnComponent(component, BAD_USER_ID);
134         boolean resultFromComponentWithNullUser =
135             ComponentValidationUtils.canWorkOnComponent(component, null);
136
137         // then
138         assertFalse(resultFromExtractComponent);
139         assertFalse(resultFromComponent);
140         assertFalse(resultFromComponentWithNullUser);
141     }
142 }