2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.model.cache.jobs;
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;
42 import java.util.function.Function;
44 public class CheckAndUpdateJobTest {
46 CheckAndUpdateJob testSubject;
52 public void setUp() throws Exception {
53 MockitoAnnotations.initMocks(this);
55 testSubject = new CheckAndUpdateJob(daoInfo, "mock", NodeTypeEnum.Resource, 0L);
59 public void testDoWorkException() throws Exception {
63 ToscaOperationFacade answer = Mockito.mock(ToscaOperationFacade.class);
64 Mockito.when(daoInfo.getToscaOperationFacade()).thenReturn(answer);
66 result = testSubject.doWork();
70 public void testDoWorkFalse() throws Exception {
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);
81 result = testSubject.doWork();
85 public void testDoWorkResourceNotFound() throws Exception {
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);
99 result = testSubject.doWork();
103 public void testDoWork() throws Exception {
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);
117 result = testSubject.doWork();
121 public void testDoWork1() throws Exception {
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);
133 result = testSubject.doWork();
137 public void testUpdateCache() throws Exception {
138 String componentId = "mock";
139 NodeTypeEnum nodeTypeEnum = null;
140 Long timestamp = null;
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);
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);
156 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
160 public void testUpdateCacheFailedToUpdateCache() throws Exception {
161 String componentId = "mock";
162 NodeTypeEnum nodeTypeEnum = null;
163 Long timestamp = null;
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);
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);
178 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
182 public void testUpdateCacheToscaElemntNotFound() throws Exception {
183 String componentId = "mock";
184 NodeTypeEnum nodeTypeEnum = null;
185 Long timestamp = null;
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);
196 Mockito.when(answer1.getToscaElement(Mockito.anyString())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
198 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
202 public void testUpdateCacheNotUpdatedTimestamp() throws Exception {
203 String componentId = "mock";
204 NodeTypeEnum nodeTypeEnum = null;
205 Long timestamp = null;
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);
216 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);
220 public void testUpdateCacheNotFound() throws Exception {
221 String componentId = "mock";
222 NodeTypeEnum nodeTypeEnum = null;
223 Long timestamp = null;
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);
232 result = Deencapsulation.invoke(testSubject, "updateCache", componentId, NodeTypeEnum.Resource, 0L);