3 * Copyright (c) 2018 AT&T Intellectual Property.
7 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
19 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25 * See the License for the specific language governing permissions and
27 * limitations under the License.
30 package org.openecomp.sdc.be.model.operations.impl;
32 import static org.junit.Assert.assertEquals;
33 import static org.junit.Assert.assertNull;
34 import static org.mockito.ArgumentMatchers.any;
35 import static org.mockito.ArgumentMatchers.eq;
36 import static org.mockito.Mockito.when;
38 import fj.data.Either;
39 import java.util.ArrayList;
40 import java.util.List;
41 import org.janusgraph.core.JanusGraphVertex;
42 import org.junit.Test;
43 import org.junit.runner.RunWith;
44 import org.mockito.InjectMocks;
45 import org.mockito.Mock;
46 import org.mockito.Mockito;
47 import org.mockito.junit.MockitoJUnitRunner;
48 import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao;
49 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
50 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
51 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
52 import org.openecomp.sdc.be.model.ComponentInstance;
53 import org.openecomp.sdc.be.model.ComponentInstanceInput;
54 import org.openecomp.sdc.be.model.GroupInstance;
55 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
56 import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
58 @RunWith(MockitoJUnitRunner.class)
59 public class ComponentInstanceOperationTest {
62 private ComponentInstanceOperation componentInstanceOperation;
65 protected HealingJanusGraphGenericDao janusGraphGenericDao;
69 public void testSetJanusGraphGenericDao() {
70 componentInstanceOperation.setJanusGraphGenericDao(janusGraphGenericDao);
75 public void testUpdateInputValueInResourceInstance() {
76 ComponentInstanceInput input = null;
77 String resourceInstanceId = "";
79 Either<ComponentInstanceInput, StorageOperationStatus> result;
81 result = componentInstanceOperation.updateInputValueInResourceInstance(input, resourceInstanceId, b);
86 public void testUpdateCustomizationUUID() {
87 StorageOperationStatus result;
88 String componentInstanceId = "instanceId";
89 JanusGraphVertex janusGraphVertex = Mockito.mock(JanusGraphVertex.class);
90 when(janusGraphGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), componentInstanceId)).thenReturn(
91 Either.left(janusGraphVertex));
92 result = componentInstanceOperation.updateCustomizationUUID(componentInstanceId);
93 assertEquals(StorageOperationStatus.OK, result);
97 public void testupdateComponentInstanceModificationTimeAndCustomizationUuidOnGraph_CatchException() throws Exception {
98 ComponentInstance componentInstance = new ComponentInstance();
99 GroupInstance groupInstance = new GroupInstance();
100 groupInstance.setCreationTime(23234234234L);
101 groupInstance.setCustomizationUUID("CUSTUUID0.1");
102 groupInstance.setGroupUid("GRP0.1");
103 groupInstance.setGroupUUID("GRPU0.1");
104 groupInstance.setGroupName("GRP1");
105 List gilist = new ArrayList<GroupInstance>();
106 gilist.add(groupInstance);
107 componentInstance.setUniqueId("INST0.1");
108 componentInstance.setComponentUid("RES0.1");
109 componentInstance.setGroupInstances(gilist);
110 Either<ComponentInstanceData, StorageOperationStatus> result = componentInstanceOperation.updateComponentInstanceModificationTimeAndCustomizationUuidOnGraph(
111 componentInstance, NodeTypeEnum.Component, 234234545L, false);
112 assertEquals(StorageOperationStatus.GENERAL_ERROR, result.right().value());
116 public void testupdateComponentInstanceModificationTimeAndCustomizationUuidOnGraph_GENERAL_ERROR() throws Exception {
117 ComponentInstance componentInstance = new ComponentInstance();
118 GroupInstance groupInstance = new GroupInstance();
119 groupInstance.setCreationTime(23234234234L);
120 groupInstance.setCustomizationUUID("CUSTUUID0.1");
121 groupInstance.setGroupUid("GRP0.1");
122 groupInstance.setGroupUUID("GRPU0.1");
123 groupInstance.setGroupName("GRP1");
124 List gilist = new ArrayList<GroupInstance>();
125 gilist.add(groupInstance);
126 componentInstance.setUniqueId("INST0.1");
127 componentInstance.setComponentUid("RES0.1");
128 componentInstance.setGroupInstances(gilist);
129 when(janusGraphGenericDao.updateNode(any(), eq(ComponentInstanceData.class))).thenReturn(Either.right(
130 JanusGraphOperationStatus.GENERAL_ERROR));
131 Either<ComponentInstanceData, StorageOperationStatus> result = componentInstanceOperation.updateComponentInstanceModificationTimeAndCustomizationUuidOnGraph(
132 componentInstance, NodeTypeEnum.Component, 234234545L, false);
133 assertEquals(StorageOperationStatus.GENERAL_ERROR, result.right().value());
137 public void testupdateComponentInstanceModificationTimeAndCustomizationUuidOnGraph() throws Exception {
138 ComponentInstance componentInstance = new ComponentInstance();
139 GroupInstance groupInstance = new GroupInstance();
140 groupInstance.setCreationTime(23234234234L);
141 groupInstance.setCustomizationUUID("CUSTUUID0.1");
142 groupInstance.setGroupUid("GRP0.1");
143 groupInstance.setGroupUUID("GRPU0.1");
144 groupInstance.setGroupName("GRP1");
145 List gilist = new ArrayList<GroupInstance>();
146 gilist.add(groupInstance);
147 componentInstance.setUniqueId("INST0.1");
148 componentInstance.setComponentUid("RES0.1");
149 componentInstance.setGroupInstances(gilist);
150 ComponentInstanceData componentInstanceData = new ComponentInstanceData();
151 when(janusGraphGenericDao.updateNode(any(), eq(ComponentInstanceData.class))).thenReturn(Either.left(componentInstanceData));
152 Either<ComponentInstanceData, StorageOperationStatus> result = componentInstanceOperation.updateComponentInstanceModificationTimeAndCustomizationUuidOnGraph(
153 componentInstance, NodeTypeEnum.Component, 234234545L, false);
154 assertEquals(componentInstanceData, result.left().value());