1 package org.openecomp.sdc.be.components.merge.path;
4 import org.junit.Before;
6 import org.mockito.InjectMocks;
7 import org.mockito.Mock;
8 import org.mockito.MockitoAnnotations;
9 import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
10 import org.openecomp.sdc.be.components.merge.instance.ComponentInstanceForwardingPathMerge;
11 import org.openecomp.sdc.be.components.path.BaseForwardingPathVersionChangeTest;
12 import org.openecomp.sdc.be.impl.ForwardingPathUtils;
13 import org.openecomp.sdc.be.model.Component;
14 import org.openecomp.sdc.be.model.Service;
15 import org.openecomp.sdc.be.model.User;
16 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
17 import org.openecomp.sdc.common.api.UserRoleEnum;
18 import org.openecomp.sdc.exception.ResponseFormat;
22 import static junit.framework.TestCase.assertTrue;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.mockito.ArgumentMatchers.any;
26 import static org.mockito.ArgumentMatchers.anyBoolean;
27 import static org.mockito.Mockito.when;
29 public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPathVersionChangeTest {
32 private ComponentInstanceForwardingPathMerge testInstance;
35 private ServiceBusinessLogic serviceBusinessLogic;
38 private ToscaOperationFacade toscaOperationFacade;
42 public void setUpData() {
43 MockitoAnnotations.initMocks(this);
46 user.setRole(UserRoleEnum.ADMIN.getName());
50 public void testIgnoreMergeSinceItIsNotService() {
52 testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC);
53 assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId());
54 Either<Component, ResponseFormat> componentResponseFormatEither = testInstance
55 .mergeDataAfterCreate(user, dataHolder, newNodeAC, "3344");
56 assertNotNull(componentResponseFormatEither);
57 assertTrue(componentResponseFormatEither.isLeft());
58 assertEquals(newNodeAC, componentResponseFormatEither.left().value());
62 public void mergeShouldDelete() {
63 Set<String> forwardingPathNamesToDeleteOnComponentInstanceDeletion = new ForwardingPathUtils()
64 .findForwardingPathNamesToDeleteOnComponentInstanceDeletion(service, nodeACI.getUniqueId());
65 nodeACI.getCapabilities().clear();
66 newNodeAC.getCapabilities().clear();
67 Either<Set<String>, ResponseFormat> returnValue = Either.left(forwardingPathNamesToDeleteOnComponentInstanceDeletion);
68 when(serviceBusinessLogic.deleteForwardingPaths(any(), any(), any(), anyBoolean()))
69 .thenReturn(returnValue);
70 when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC));
72 // Change internal ci, just like change version do
73 service.getComponentInstances().remove(nodeACI);
74 service.getComponentInstances().add(newNodeACI);
76 testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC);
77 assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId());
78 Either<Component, ResponseFormat> componentResponseFormatEither = testInstance
79 .mergeDataAfterCreate(user, dataHolder, service, newNodeA);
80 assertNotNull(componentResponseFormatEither);
81 assertTrue(componentResponseFormatEither.isLeft());
82 assertEquals(0, ((Service) componentResponseFormatEither.left().value()).getForwardingPaths().size());
86 public void mergeShouldUpdate() {
87 when(serviceBusinessLogic.updateForwardingPath(any(), any(), any(), anyBoolean()))
88 .then(invocationOnMock -> Either.left(service));
89 when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC));
90 testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC);
91 assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId());
93 // Change internal ci, just like change version do
94 service.getComponentInstances().remove(nodeACI);
95 service.getComponentInstances().add(newNodeACI);
97 Either<Component, ResponseFormat> componentResponseFormatEither = testInstance
98 .mergeDataAfterCreate(user, dataHolder, service, newNodeA);
99 assertNotNull(componentResponseFormatEither);
100 assertTrue(componentResponseFormatEither.isLeft());
104 public void handleNullCapailities() {
105 nodeACI.setCapabilities(null);
106 testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC);