Added oparent to sdc main
[sdc.git] / catalog-model / src / test / java / org / openecomp / sdc / be / model / cache / jobs / CheckAndUpdateJobTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T 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.model.cache.jobs;
22
23 import fj.data.Either;
24 import mockit.Deencapsulation;
25 import org.apache.commons.lang3.tuple.ImmutablePair;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.mockito.Mock;
29 import org.mockito.Mockito;
30 import org.mockito.MockitoAnnotations;
31 import org.openecomp.sdc.be.dao.api.ActionStatus;
32 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
33 import org.openecomp.sdc.be.model.Component;
34 import org.openecomp.sdc.be.model.Resource;
35 import org.openecomp.sdc.be.model.cache.ComponentCache;
36 import org.openecomp.sdc.be.model.cache.DaoInfo;
37 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
38 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
39 import org.openecomp.sdc.be.resources.data.ComponentMetadataData;
40 import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
41
42 import java.util.function.Function;
43
44 public class CheckAndUpdateJobTest {
45
46         CheckAndUpdateJob testSubject;
47
48         @Mock
49         DaoInfo daoInfo;
50
51         @Before
52         public void setUp() throws Exception {
53                 MockitoAnnotations.initMocks(this);
54
55                 testSubject = new CheckAndUpdateJob(daoInfo, "mock", NodeTypeEnum.Resource, 0L);
56         }
57
58         @Test
59         public void testDoWorkException() throws Exception {
60                 Object result;
61
62                 // default test
63                 ToscaOperationFacade answer = Mockito.mock(ToscaOperationFacade.class);
64                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer);
65
66                 result = testSubject.doWork();
67         }
68
69         @Test
70         public void testDoWorkFalse() throws Exception {
71                 Object result;
72
73                 // default test
74                 ComponentCache answer = Mockito.mock(ComponentCache.class);
75                 Mockito.when(answer.getComponentAndTime(Mockito.anyString(), Mockito.any(Function.class)))
76                                 .thenReturn(Either.right(ActionStatus.ACCEPTED));
77                 Mockito.when(daoInfo.getComponentCache()).thenReturn(answer);
78                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
79                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
80
81                 result = testSubject.doWork();
82         }
83
84         @Test
85         public void testDoWorkResourceNotFound() throws Exception {
86                 Object result;
87
88                 // default test
89                 ComponentCache answer = Mockito.mock(ComponentCache.class);
90                 Either<ImmutablePair<Component, Long>, ActionStatus> value;
91                 Mockito.when(answer.getComponentAndTime(Mockito.anyString(), Mockito.any(Function.class)))
92                                 .thenReturn(Either.right(ActionStatus.RESOURCE_NOT_FOUND));
93                 Mockito.when(daoInfo.getComponentCache()).thenReturn(answer);
94                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
95                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
96                                 .thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND));
97                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
98
99                 result = testSubject.doWork();
100         }
101
102         @Test
103         public void testDoWork() throws Exception {
104                 Object result;
105
106                 // default test
107                 ComponentCache answer = Mockito.mock(ComponentCache.class);
108                 ImmutablePair<Component, Long> value = ImmutablePair.of(new Resource(), 0L);
109                 Mockito.when(answer.getComponentAndTime(Mockito.anyString(), Mockito.any(Function.class)))
110                                 .thenReturn(Either.left(value));
111                 Mockito.when(daoInfo.getComponentCache()).thenReturn(answer);
112                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
113                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
114                                 .thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND));
115                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
116
117                 result = testSubject.doWork();
118         }
119
120         @Test
121         public void testDoWork1() throws Exception {
122                 Object result;
123
124                 // default test
125                 ComponentCache answer = Mockito.mock(ComponentCache.class);
126                 ImmutablePair<Component, Long> value = ImmutablePair.of(new Resource(), 1L);
127                 Mockito.when(answer.getComponentAndTime(Mockito.anyString(), Mockito.any(Function.class)))
128                                 .thenReturn(Either.left(value));
129                 Mockito.when(daoInfo.getComponentCache()).thenReturn(answer);
130                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
131                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
132
133                 result = testSubject.doWork();
134         }
135
136         @Test
137         public void testUpdateCache() throws Exception {
138                 String componentId = "mock";
139                 NodeTypeEnum nodeTypeEnum = null;
140                 Long timestamp = null;
141                 boolean result;
142
143                 // default test
144                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
145                 ComponentMetadataData a = new ResourceMetadataData();
146                 a.getMetadataDataDefinition().setLastUpdateDate(0L);
147                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
148                                 .thenReturn(Either.left(a));
149                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
150                 
151                 Mockito.when(answer1.getToscaElement(Mockito.anyString())).thenReturn(Either.left(new Resource()));
152                 ComponentCache compCache = Mockito.mock(ComponentCache.class);
153                 Mockito.when(compCache.setComponent(Mockito.any(), Mockito.any())).thenReturn(true);
154                 Mockito.when(daoInfo.getComponentCache()).thenReturn(compCache);
155                 
156                 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
157         }
158         
159         @Test
160         public void testUpdateCacheFailedToUpdateCache() throws Exception {
161                 String componentId = "mock";
162                 NodeTypeEnum nodeTypeEnum = null;
163                 Long timestamp = null;
164                 boolean result;
165
166                 // default test
167                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
168                 ComponentMetadataData a = new ResourceMetadataData();
169                 a.getMetadataDataDefinition().setLastUpdateDate(0L);
170                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
171                                 .thenReturn(Either.left(a));
172                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
173                 
174                 Mockito.when(answer1.getToscaElement(Mockito.anyString())).thenReturn(Either.left(new Resource()));
175                 ComponentCache compCache = Mockito.mock(ComponentCache.class);
176                 Mockito.when(daoInfo.getComponentCache()).thenReturn(compCache);
177                 
178                 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
179         }
180         
181         @Test
182         public void testUpdateCacheToscaElemntNotFound() throws Exception {
183                 String componentId = "mock";
184                 NodeTypeEnum nodeTypeEnum = null;
185                 Long timestamp = null;
186                 boolean result;
187
188                 // default test
189                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
190                 ComponentMetadataData a = new ResourceMetadataData();
191                 a.getMetadataDataDefinition().setLastUpdateDate(0L);
192                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
193                                 .thenReturn(Either.left(a));
194                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
195                 
196                 Mockito.when(answer1.getToscaElement(Mockito.anyString())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
197                 
198                 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
199         }
200         
201         @Test
202         public void testUpdateCacheNotUpdatedTimestamp() throws Exception {
203                 String componentId = "mock";
204                 NodeTypeEnum nodeTypeEnum = null;
205                 Long timestamp = null;
206                 boolean result;
207
208                 // default test
209                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
210                 ComponentMetadataData a = new ResourceMetadataData();
211                 a.getMetadataDataDefinition().setLastUpdateDate(1L);
212                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
213                                 .thenReturn(Either.left(a));
214                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
215                 
216                 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
217         }
218         
219         @Test
220         public void testUpdateCacheNotFound() throws Exception {
221                 String componentId = "mock";
222                 NodeTypeEnum nodeTypeEnum = null;
223                 Long timestamp = null;
224                 boolean result;
225
226                 // default test
227                 ToscaOperationFacade answer1 = Mockito.mock(ToscaOperationFacade.class);
228                 Mockito.when(answer1.getComponentMetadata(Mockito.anyString()))
229                                 .thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND));
230                 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer1);
231                 
232                 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
233         }
234 }