From f0d4dd5c846f1c56d8b2641934c028b8151b31b3 Mon Sep 17 00:00:00 2001 From: vasraz Date: Mon, 15 Nov 2021 12:27:54 +0000 Subject: Fix test cases failing incorrectly https://gerrit.onap.org/r/c/sdc/+/124980 Change-Id: I9fbd8a0b5b83d04928feea7624e593b45441ac9b Signed-off-by: Vasyl Razinkov Issue-ID: SDC-3757 --- .../be/tosca/utils/ForwardingPathToscaUtil.java | 12 +- .../ComponentInstanceForwardingPathMergeTest.java | 51 +++-- .../be/components/path/BaseForwardingPathTest.java | 72 ++++--- .../path/BaseForwardingPathVersionChangeTest.java | 37 ++-- .../path/ForwardingPathBusinessLogicTest.java | 68 ++++--- .../path/ForwardingPathChangeVersionTest.java | 2 +- .../path/ForwardingPathDeleteCITest.java | 6 +- .../path/ForwardingPathRenameNodeTest.java | 2 +- .../path/ForwardingPathToscaUtilTest.java | 210 --------------------- .../path/ForwardingPathValidatorTest.java | 98 +++++----- .../tosca/utils/ForwardingPathToscaUtilTest.java | 196 +++++++++++++++++++ .../src/test/resources/paths/path-context.xml | 112 +++++------ 12 files changed, 414 insertions(+), 452 deletions(-) delete mode 100644 catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java create mode 100644 catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtilTest.java (limited to 'catalog-be/src') diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtil.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtil.java index b668ae7efc..3531fe786b 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtil.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtil.java @@ -28,6 +28,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.apache.commons.collections.MapUtils; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; @@ -40,10 +42,7 @@ import org.openecomp.sdc.be.tosca.CapabilityRequirementConverter; import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate; import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement; -/** - * @author KATYR - * @since November 19, 2017 - */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ForwardingPathToscaUtil { public static final String FORWARDS_TO_TOSCA_NAME = "org.openecomp.relationships.ForwardsTo"; @@ -97,8 +96,9 @@ public class ForwardingPathToscaUtil { } private static String fetchNodeName(Service service, String nodeId) { - if (service.getComponentInstanceByName(nodeId).isPresent()) { - return service.getComponentInstanceByName(nodeId).get().getName(); + final Optional componentInstanceByName = service.getComponentInstanceByName(nodeId); + if (componentInstanceByName.isPresent()) { + return componentInstanceByName.get().getName(); } else { return ""; } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java index 8a575629af..50eaea9ad2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,9 +20,16 @@ package org.openecomp.sdc.be.components.merge.path; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.when; + import fj.data.Either; -import org.junit.Before; -import org.junit.Test; +import java.util.Set; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -36,15 +43,6 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.common.api.UserRoleEnum; -import java.util.Set; - -import static junit.framework.TestCase.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.Mockito.when; - public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPathVersionChangeTest { @InjectMocks @@ -57,7 +55,7 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath private ToscaOperationFacade toscaOperationFacade; private User user; - @Before + @BeforeEach public void setUpData() { MockitoAnnotations.initMocks(this); user = new User(); @@ -73,7 +71,6 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath Component componentResponseFormatEither = testInstance .mergeDataAfterCreate(user, dataHolder, newNodeAC, "3344"); assertNotNull(componentResponseFormatEither); - assertTrue(componentResponseFormatEither != null); assertEquals(newNodeAC, componentResponseFormatEither); } @@ -102,18 +99,18 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath @Test public void mergeShouldUpdate() { - when(serviceBusinessLogic.updateForwardingPath(any(), any(), any(), anyBoolean())) - .then(invocationOnMock -> service); - when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC)); - testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC); - assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId()); - - // Change internal ci, just like change version do - service.getComponentInstances().remove(nodeACI); - service.getComponentInstances().add(newNodeACI); - - Component component = testInstance.mergeDataAfterCreate(user, dataHolder, service, newNodeA); - assertNotNull(component); + when(serviceBusinessLogic.updateForwardingPath(any(), any(), any(), anyBoolean())) + .then(invocationOnMock -> service); + when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC)); + testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC); + assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId()); + + // Change internal ci, just like change version do + service.getComponentInstances().remove(nodeACI); + service.getComponentInstances().add(newNodeACI); + + Component component = testInstance.mergeDataAfterCreate(user, dataHolder, service, newNodeA); + assertNotNull(component); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java index 0fa7ca8cb6..e9c1d40121 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,8 +20,8 @@ package org.openecomp.sdc.be.components.path; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -33,13 +33,15 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.junit.Before; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.openecomp.sdc.be.components.BeConfDependentTest; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; import org.openecomp.sdc.be.components.path.beans.JanusGraphTestSetup; import org.openecomp.sdc.be.components.path.utils.GraphTestUtils; import org.openecomp.sdc.be.components.validation.service.ServiceValidator; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao; @@ -63,6 +65,8 @@ import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.be.tosca.CapabilityRequirementConverter; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.common.datastructure.UserContext; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.common.util.ValidationUtils; import org.openecomp.sdc.exception.ResponseFormat; @@ -70,42 +74,44 @@ import org.springframework.beans.factory.annotation.Autowired; public abstract class BaseForwardingPathTest extends BeConfDependentTest implements ForwardingPathTestUtils { - + static final String FORWARDING_PATH_ID = "forwarding_pathId"; + static final String HTTP_PROTOCOL = "http"; + private static final String CATEGORY_NAME = "cat_name"; + private static final String INSTANTIATION_TYPE = "A-la-carte"; + private static final String CAPABILITY_NAME_1 = "CP1"; + private static final String CAPABILITY_NAME_2 = "CP2"; + private static final String CAPABILITY_NAME_3 = "CP3"; + private static final String CI_NAME_1 = "CI1"; + private static final String CI_NAME_2 = "CI2"; + private static final String CI_NAME_3 = "CI3"; protected User user; - private ForwardingPathDataDefinition forwardingPathDataDefinition; - @Autowired protected JanusGraphClient janusGraphClient; - @Autowired protected CapabilityRequirementConverter capabiltyRequirementConvertor; - @Autowired protected ToscaOperationFacade toscaOperationFacade; - @Autowired protected ServiceBusinessLogic bl; - - private CatalogOperation catalogOperation = mock(CatalogOperation.class); - - private ServiceValidator serviceValidator = mock(ServiceValidator.class); @Autowired protected IElementOperation elementDao; - @Autowired protected ComponentInstanceBusinessLogic componentInstanceBusinessLogic; - @javax.annotation.Resource protected JanusGraphDao janusGraphDao; + private ForwardingPathDataDefinition forwardingPathDataDefinition; + private CatalogOperation catalogOperation = mock(CatalogOperation.class); + private ServiceValidator serviceValidator = mock(ServiceValidator.class); + private CategoryDefinition categoryDefinition; - @Before + @BeforeEach public void initJanusGraph() { JanusGraphTestSetup.createGraph(janusGraphClient.getGraph().left().value()); categoryDefinition = new CategoryDefinition(); categoryDefinition.setName(CATEGORY_NAME); } - @Before + @BeforeEach public void initUser() { // User data and management user = new User(); @@ -115,25 +121,11 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme user.setRole(Role.ADMIN.name()); Set userRole = new HashSet<>(); userRole.add(user.getRole()); - UserContext userContext = new UserContext(user.getUserId(), userRole, user.getFirstName() ,user.getLastName()); + UserContext userContext = new UserContext(user.getUserId(), userRole, user.getFirstName(), user.getLastName()); ThreadLocalsHolder.setUserContext(userContext); bl.setServiceValidator(serviceValidator); } - - private CategoryDefinition categoryDefinition; - private static final String CATEGORY_NAME = "cat_name"; - static final String FORWARDING_PATH_ID = "forwarding_pathId"; - static final String HTTP_PROTOCOL = "http"; - private static final String INSTANTIATION_TYPE = "A-la-carte"; - private static final String CAPABILITY_NAME_1 = "CP1"; - private static final String CAPABILITY_NAME_2 = "CP2"; - private static final String CAPABILITY_NAME_3 = "CP3"; - private static final String CI_NAME_1 = "CI1"; - private static final String CI_NAME_2 = "CI2"; - private static final String CI_NAME_3 = "CI3"; - - private void initGraph() { Map props = new HashMap<>(); props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true); @@ -176,7 +168,7 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme private void createCategory() { Either category = elementDao.createCategory(categoryDefinition, NodeTypeEnum.ServiceNewCategory); - assertTrue("Failed to create category", category.isLeft()); + assertTrue(category.isLeft(), "Failed to create category"); } private void createServiceCategory(String categoryName) { @@ -196,7 +188,7 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme assertTrue(catRes.isLeft()); } - Service initForwardPath() { + public Service initForwardPath() { ForwardingPathDataDefinition forwardingPathDataDefinition = createMockPath(); Service service = new Service(); service.setUniqueId(FORWARDING_PATH_ID); @@ -213,8 +205,10 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme forwardingPathDataDefinition.setDestinationPortNumber("414155"); forwardingPathDataDefinition.setProtocol(HTTP_PROTOCOL); org.openecomp.sdc.be.datatypes.elements.ListDataDefinition forwardingPathElementDataDefinitionListDataDefinition = new org.openecomp.sdc.be.datatypes.elements.ListDataDefinition<>(); - forwardingPathElementDataDefinitionListDataDefinition.add(new ForwardingPathElementDataDefinition(CI_NAME_1, CI_NAME_2, CAPABILITY_NAME_1, CAPABILITY_NAME_2, "2222", "5555")); - forwardingPathElementDataDefinitionListDataDefinition.add(new ForwardingPathElementDataDefinition(CI_NAME_2, CI_NAME_3, CAPABILITY_NAME_2, CAPABILITY_NAME_3, "4", "44")); + forwardingPathElementDataDefinitionListDataDefinition.add( + new ForwardingPathElementDataDefinition(CI_NAME_1, CI_NAME_2, CAPABILITY_NAME_1, CAPABILITY_NAME_2, "2222", "5555")); + forwardingPathElementDataDefinitionListDataDefinition.add( + new ForwardingPathElementDataDefinition(CI_NAME_2, CI_NAME_3, CAPABILITY_NAME_2, CAPABILITY_NAME_3, "4", "44")); forwardingPathDataDefinition.setPathElements(forwardingPathElementDataDefinitionListDataDefinition); return forwardingPathDataDefinition; } @@ -222,7 +216,7 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme Service createService() { Either serviceCreateResult; serviceCreateResult = bl.createService(createTestService(), user); - assertTrue("Failed to create service", serviceCreateResult.isLeft()); + assertTrue(serviceCreateResult.isLeft(), "Failed to create service"); return serviceCreateResult.left().value(); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java index 5eca2b35a4..d4d0b9150c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,7 +21,11 @@ package org.openecomp.sdc.be.components.path; import com.google.common.collect.Lists; -import org.junit.Before; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; import org.openecomp.sdc.be.components.merge.instance.DataForMergeHolder; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; @@ -33,27 +37,22 @@ import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public abstract class BaseForwardingPathVersionChangeTest { - protected Service service; - protected ComponentInstance nodeACI; - protected ComponentInstance newNodeACI; - protected Component newNodeAC; - protected Component newNodeWithoutCapability; - protected DataForMergeHolder dataHolder; + protected static final String nodeA = "nodeA"; protected static final String NODE_A_FORWARDER_CAPABILITY = "nodeA_FORWARDER_CAPABILITY"; protected static final String nodeB = "nodeB"; protected static final String newNodeA = "newNodeA"; protected static final String fpName = "fpName"; protected static final String FPId = "1122"; + protected Service service; + protected ComponentInstance nodeACI; + protected ComponentInstance newNodeACI; + protected Component newNodeAC; + protected Component newNodeWithoutCapability; + protected DataForMergeHolder dataHolder; - - @Before + @BeforeEach public void initService() { service = new Service(); ForwardingPathDataDefinition forwardingPath = new ForwardingPathDataDefinition(fpName); @@ -64,7 +63,7 @@ public abstract class BaseForwardingPathVersionChangeTest { = new ListDataDefinition<>(); forwardingPathElementListDataDefinition.add( - new ForwardingPathElementDataDefinition(nodeA, nodeB, NODE_A_FORWARDER_CAPABILITY, "nodeBcpType" , "nodeDcpName", + new ForwardingPathElementDataDefinition(nodeA, nodeB, NODE_A_FORWARDER_CAPABILITY, "nodeBcpType", "nodeDcpName", "nodeBcpName")); forwardingPath.setPathElements(forwardingPathElementListDataDefinition); Map forwardingPaths = new HashMap<>(); @@ -75,10 +74,10 @@ public abstract class BaseForwardingPathVersionChangeTest { newNodeACI = new ComponentInstance(); initComponentInstance(newNodeACI, newNodeA); newNodeAC = new Resource(); - newNodeWithoutCapability=new Resource(); + newNodeWithoutCapability = new Resource(); initComponent(newNodeAC, newNodeA); service.setComponentInstances(Lists.newArrayList(newNodeACI)); - initComponentWithoutForwarder(newNodeWithoutCapability,"newNodeC"); + initComponentWithoutForwarder(newNodeWithoutCapability, "newNodeC"); service.setComponentInstances(Lists.newArrayList(nodeACI)); dataHolder = new DataForMergeHolder(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java index 49c25832cc..5f0282b7d6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java @@ -16,49 +16,58 @@ package org.openecomp.sdc.be.components.path; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fj.data.Either; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer; import org.openecomp.sdc.be.ui.model.UiServiceDataTransfer; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import java.util.HashMap; -import java.util.Map; -import java.util.Set; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = "/paths/path-context.xml") -@Ignore +@SpringJUnitConfig(locations = "classpath:paths/path-context.xml") public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { - @Test(expected = ComponentException.class) + @BeforeAll + private static void setup() { + configurationManager = + new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be")); + } + + @Test public void shouldFailToUpdateForwardingPathSincePathDoesNotExist() { - Service service = initForwardPath(); - bl.updateForwardingPath(FORWARDING_PATH_ID, service, user, true); + Assertions.assertThrows(ComponentException.class, () -> { + Service service = initForwardPath(); + bl.updateForwardingPath(FORWARDING_PATH_ID, service, user, true); + }); } - @Test(expected = ComponentException.class) + @Test public void shouldFailToDeleteForwardingPathSincePathDoesNotExist() { - initForwardPath(); - bl.deleteForwardingPaths("delete_forward_test", Sets.newHashSet(FORWARDING_PATH_ID), user, true); + Assertions.assertThrows(ComponentException.class, () -> { + initForwardPath(); + bl.deleteForwardingPaths("delete_forward_test", Sets.newHashSet(FORWARDING_PATH_ID), user, true); + }); } - @Test + @Test public void shouldSucceedCreateAndDeleteForwardingPath() { Service createdService = createService(); Service service = initForwardPath(); @@ -71,7 +80,8 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { String toscaResourceName = forwardingPathsMap.values().iterator().next().getToscaResourceName(); // should return the created path - Either uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, Lists.newArrayList(ComponentFieldsEnum.FORWARDING_PATHS.getValue())); + Either uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, + Lists.newArrayList(ComponentFieldsEnum.FORWARDING_PATHS.getValue())); assertTrue(uiResaponse.isLeft()); UiServiceDataTransfer uiServiceDataTransfer = (UiServiceDataTransfer) uiResaponse.left().value(); Map forwardingPaths = uiServiceDataTransfer.getForwardingPaths(); @@ -93,7 +103,8 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { assertTrue(serviceResponseFormatEither != null); // make sure changes were applied - uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, Lists.newArrayList(ComponentFieldsEnum.FORWARDING_PATHS.getValue())); + uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, + Lists.newArrayList(ComponentFieldsEnum.FORWARDING_PATHS.getValue())); assertTrue(uiResaponse.isLeft()); uiServiceDataTransfer = (UiServiceDataTransfer) uiResaponse.left().value(); Map forwardingPathsUpdated = uiServiceDataTransfer.getForwardingPaths(); @@ -107,7 +118,8 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { assertTrue(setResponseFormatEither != null); // nothing to return now - uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, Lists.newArrayList(ComponentFieldsEnum.COMPONENT_INSTANCES.getValue(),ComponentFieldsEnum.FORWARDING_PATHS.getValue())); + uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, + Lists.newArrayList(ComponentFieldsEnum.COMPONENT_INSTANCES.getValue(), ComponentFieldsEnum.FORWARDING_PATHS.getValue())); assertTrue(uiResaponse.isLeft()); uiServiceDataTransfer = (UiServiceDataTransfer) uiResaponse.left().value(); forwardingPaths = uiServiceDataTransfer.getForwardingPaths(); @@ -115,8 +127,4 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { } - - - } - diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathChangeVersionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathChangeVersionTest.java index fd305b5f22..deab6ee161 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathChangeVersionTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathChangeVersionTest.java @@ -21,7 +21,7 @@ package org.openecomp.sdc.be.components.path; import org.javatuples.Pair; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.impl.ForwardingPathUtils; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java index efef9bd799..55c123f9aa 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java @@ -20,8 +20,8 @@ package org.openecomp.sdc.be.components.path; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; @@ -44,7 +44,7 @@ public class ForwardingPathDeleteCITest { private static final String nodeB = "nodeB"; private static final String fpName = "fpName"; - @Before + @BeforeEach public void initService() { service = new Service(); ForwardingPathDataDefinition forwardingPath = new ForwardingPathDataDefinition(fpName); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java index 886cda05da..1af5c80cd2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java @@ -17,7 +17,7 @@ package org.openecomp.sdc.be.components.path; import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.impl.ForwardingPathUtils; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java deleted file mode 100644 index 1b680fae50..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright © 2016-2018 European Support Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openecomp.sdc.be.components.path; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; -import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; -import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; -import org.openecomp.sdc.be.model.CapabilityDefinition; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.Service; -import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate; -import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement; -import org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDER; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDS_TO_TOSCA_NAME; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PORTS_RANGE; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PROTOCOL; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.addForwardingPaths; - -/** - * @author KATYR, ORENK - * @since November 19, 2017 - */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = "/paths/path-context.xml") -@Ignore -public class ForwardingPathToscaUtilTest extends BaseForwardingPathTest { - - private static final String NODE_NAME_1 = "nodeA-name"; - private static final String NODE_NAME_2 = "nodeB-name"; - private static final String PATH_1_PROTOCOL = "protocol-path1"; - private static final String PATH_1_DESC = "path1-desc"; - private static final String PATH_1_PORTS = "8585"; - private static final String PATH_1_NAME = "pathName1"; - private Service service; - private Map originComponents = new HashMap<>(); - private static final String NODE_ID_1 = "nodeA-id"; - private static final String NODE_ID_2 = "nodeB-id"; - private static final String FORWARDING_PATH_TOSCA_TYPE = "org.openecomp.nodes.ForwardingPath"; - - - @Before - public void setUpForwardingPath() { - service = initForwardPath(); - List componentInstances = new ArrayList<>(); - componentInstances.add(generateComponentInstance(NODE_NAME_1, NODE_ID_1)); - componentInstances.add(generateComponentInstance(NODE_NAME_2, NODE_ID_2)); - service.setComponentInstances(componentInstances); - } - - private ComponentInstance generateComponentInstance(String name, String uuid) { - ComponentInstance componentInstance = new ComponentInstance(); - componentInstance.setName(name); - componentInstance.setUniqueId(uuid); - componentInstance.setComponentUid(uuid); - Map> capabiltiesMap = new HashMap<>(); - CapabilityDefinition capabilityDefinition = new CapabilityDefinition(); - capabilityDefinition.setMinOccurrences(Integer.toString(1)); - capabilityDefinition.setMaxOccurrences(Integer.toString(100)); - capabilityDefinition.setType(ForwardingPathToscaUtil.FORWARDS_TO_TOSCA_NAME); - capabilityDefinition.setName(name); - capabilityDefinition.setUniqueId(name); - capabilityDefinition.setPath(Arrays.asList("Just", "something", "to", "read")); - capabiltiesMap.put(capabilityDefinition.getName(), - Collections.singletonList(capabilityDefinition)); - componentInstance.setCapabilities(capabiltiesMap); - Resource resource = new Resource(); - resource.setToscaResourceName("test"); - originComponents.put(uuid, resource); - return componentInstance; - } - - - @Test - public void singleElementPath() { - try { - createPathSingleElement(); - Map nodeTemplatesRes = new HashMap<>(); - - Map expectedNodeTemplatesRes = new HashMap<>(); - ToscaNodeTemplate pathEntry = new ToscaNodeTemplate(); - pathEntry.setType(FORWARDING_PATH_TOSCA_TYPE); - Map expectedProps = new HashMap<>(); - expectedProps.put(PORTS_RANGE, Collections.singletonList(PATH_1_PORTS)); - expectedProps.put(PROTOCOL, PATH_1_PROTOCOL); - pathEntry.setProperties(expectedProps); - List> requirements = new ArrayList<>(); - ToscaTemplateRequirement firstEntryReq = new ToscaTemplateRequirement(); - ToscaTemplateRequirement secondEntryReq = new ToscaTemplateRequirement(); - - firstEntryReq.setCapability("null." + NODE_NAME_1); - secondEntryReq.setCapability("null." + NODE_NAME_2); - - firstEntryReq.setNode(NODE_NAME_1); - secondEntryReq.setNode(NODE_NAME_2); - - firstEntryReq.setRelationship(FORWARDS_TO_TOSCA_NAME); - secondEntryReq.setRelationship(FORWARDS_TO_TOSCA_NAME); - - Map entryMap1 = new HashMap<>(); - Map entryMap2 = new HashMap<>(); - - entryMap1.put(FORWARDER, firstEntryReq); - entryMap2.put(FORWARDER, secondEntryReq); - - requirements.add(entryMap1); - requirements.add(entryMap2); - - pathEntry.setRequirements(requirements); - expectedNodeTemplatesRes.put(PATH_1_NAME, pathEntry); - addForwardingPaths(service, nodeTemplatesRes, capabiltyRequirementConvertor, originComponents, - toscaOperationFacade); - - assertEquals(2, nodeTemplatesRes.get(PATH_1_NAME).getRequirements().size()); - compareToscaPathEntry(expectedNodeTemplatesRes, nodeTemplatesRes); - } catch (Exception e){ - e.printStackTrace(); - Assert.fail(e.getMessage()); - } - } - - private void compareToscaPathEntry(Map expectedNodeTemplatesRes, - Map nodeTemplatesRes) { - final ToscaNodeTemplate expectedTemplate = expectedNodeTemplatesRes.get(PATH_1_NAME); - final ToscaNodeTemplate actualTemplate = nodeTemplatesRes.get(PATH_1_NAME); - assertEquals(expectedTemplate.getProperties(), actualTemplate.getProperties()); - final int size = expectedTemplate.getRequirements().size(); - assertEquals(size, - actualTemplate.getRequirements().size()); - for (int i = 0; i < size; i++) { - compareToscaRequirement(expectedTemplate, actualTemplate, i); - } - } - - private void compareToscaRequirement(ToscaNodeTemplate expectedTemplate, - ToscaNodeTemplate actualTemplate, - int i) { - final ToscaTemplateRequirement actualRequirement = - actualTemplate.getRequirements().get(i).get(FORWARDER); - final ToscaTemplateRequirement expectedToscaRequirement = expectedTemplate - .getRequirements() - .get(i).get(FORWARDER); - assertEquals(actualRequirement.getCapability(), expectedToscaRequirement.getCapability()); - assertEquals(actualRequirement.getNode(), expectedToscaRequirement.getNode()); - } - - private void createPathSingleElement() { - ForwardingPathElementDataDefinition element1 = initElement(NODE_NAME_1, NODE_NAME_2, NODE_NAME_1, - NODE_NAME_2); - - ListDataDefinition list = new ListDataDefinition<>(); - list.add(element1); - - - ForwardingPathDataDefinition path = new ForwardingPathDataDefinition(); - path.setDescription(PATH_1_DESC); - path.setProtocol(PATH_1_PROTOCOL); - path.setDestinationPortNumber(PATH_1_PORTS); - path.setToscaResourceName(FORWARDING_PATH_TOSCA_TYPE); - path.setPathElements(list); - path.setName(PATH_1_NAME); - - Map paths = new HashMap<>(); - paths.put(PATH_1_NAME, path); - - service.setForwardingPaths(paths); - } - - private ForwardingPathElementDataDefinition initElement(String fromId, String toId, String - fromCP, String toCP) { - ForwardingPathElementDataDefinition element = new ForwardingPathElementDataDefinition(); - element.setFromCP(fromCP); - element.setFromNode(fromId); - element.setToCP(toCP); - element.setToNode(toId); - return element; - } -} \ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java index 6123561d45..ae44ceac90 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,10 +21,16 @@ package org.openecomp.sdc.be.components.path; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + import com.google.common.collect.Sets; import fj.data.Either; -import org.junit.Before; -import org.junit.Test; +import java.util.Collection; +import java.util.Set; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; @@ -42,30 +48,17 @@ import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; -import java.util.Collection; -import java.util.Set; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; - public class ForwardingPathValidatorTest implements ForwardingPathTestUtils { + private static final String SERVICE_ID = "serviceid1"; ResponseFormatManager mock; - - private Service service = (Service) getToscaFullElement().left().value(); - - @Mock ToscaOperationFacade toscaOperationFacade; @InjectMocks ForwardingPathValidationUtilTest test = new ForwardingPathValidationUtilTest(); + private Service service = (Service) getToscaFullElement().left().value(); - private static final String SERVICE_ID = "serviceid1"; - - - - - @Before + @BeforeEach public void init() { MockitoAnnotations.initMocks(this); mock = Mockito.mock(ResponseFormatManager.class); @@ -78,60 +71,65 @@ public class ForwardingPathValidatorTest implements ForwardingPathTestUtils { } @Test - public void testValidForwardingPathName(){ + public void testValidForwardingPathName() { Collection paths = createData("pathName", "http", "8285", "pathName"); test.validateForwardingPaths(paths, SERVICE_ID, false); } - @Test(expected = ComponentException.class) - public void testEmptyForwardingPathName(){ - Collection paths = createData("", "protocol", "8285", "name1"); - test.validateForwardingPaths(paths, SERVICE_ID, false); + @Test + public void testEmptyForwardingPathName() { + Assertions.assertThrows(ComponentException.class, () -> { + Collection paths = createData("", "protocol", "8285", "name1"); + test.validateForwardingPaths(paths, SERVICE_ID, false); + }); } - @Test(expected = ComponentException.class) - public void testLongForwardingPathName(){ - String pathName = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + + @Test + public void testLongForwardingPathName() { + Assertions.assertThrows(ComponentException.class, () -> { + String pathName = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; - Collection paths = createData(pathName, + Collection paths = createData(pathName, "http", "port", "name1"); - test.validateForwardingPaths(paths, SERVICE_ID, false); - + test.validateForwardingPaths(paths, SERVICE_ID, false); + }); } @Test - public void testUniqueForwardingPathNameUpdateName(){ + public void testUniqueForwardingPathNameUpdateName() { Collection paths = createData("pathName4", "httpfd", "82df85", "name1"); test.validateForwardingPaths(paths, SERVICE_ID, true); } @Test - public void testUniqueForwardingPathNameUpdatePort(){ + public void testUniqueForwardingPathNameUpdatePort() { Collection paths = createData("pathName3", "httpfd", "82df85", "name1"); test.validateForwardingPaths(paths, SERVICE_ID, true); } - @Test(expected = ComponentException.class) - public void testLongForwardingPathPortNumber(){ - String port = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + + @Test + public void testLongForwardingPathPortNumber() { + Assertions.assertThrows(ComponentException.class, () -> { + String port = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; - Collection paths = createData("pathName", + Collection paths = createData("pathName", "http", port, "name1"); - test.validateForwardingPaths(paths, SERVICE_ID, false); - + test.validateForwardingPaths(paths, SERVICE_ID, false); + }); } - @Test(expected = ComponentException.class) - public void testLongForwardingPathProtocol(){ - String protocol = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + + @Test + public void testLongForwardingPathProtocol() { + Assertions.assertThrows(ComponentException.class, () -> { + String protocol = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; - Collection paths = createData("pathName", + Collection paths = createData("pathName", protocol, "port", "name1"); - test.validateForwardingPaths(paths, SERVICE_ID, false); - + test.validateForwardingPaths(paths, SERVICE_ID, false); + }); } private Set createData(String pathName, String protocol, String ports, String uniqueId) { @@ -140,15 +138,15 @@ public class ForwardingPathValidatorTest implements ForwardingPathTestUtils { } - private Either getToscaFullElement() { + private Either getToscaFullElement() { return Either.left((T) setUpServiceMcok()); } - private Service setUpServiceMcok(){ - Service service = new Service(); - service.addForwardingPath(createPath("pathName3", "http", "8285", "name1")); - return service; + private Service setUpServiceMcok() { + Service service = new Service(); + service.addForwardingPath(createPath("pathName3", "http", "8285", "name1")); + return service; } private class ForwardingPathValidationUtilTest extends ForwardingPathValidator { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtilTest.java new file mode 100644 index 0000000000..3b8089e858 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/ForwardingPathToscaUtilTest.java @@ -0,0 +1,196 @@ +/* + * Copyright © 2016-2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openecomp.sdc.be.tosca.utils; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDER; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDS_TO_TOSCA_NAME; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PORTS_RANGE; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PROTOCOL; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.addForwardingPaths; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openecomp.sdc.be.components.path.BaseForwardingPathTest; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate; +import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +@SpringJUnitConfig(locations = "classpath:paths/path-context.xml") +public class ForwardingPathToscaUtilTest extends BaseForwardingPathTest { + + private static final String NODE_NAME_1 = "nodeA-name"; + private static final String NODE_NAME_2 = "nodeB-name"; + private static final String PATH_1_PROTOCOL = "protocol-path1"; + private static final String PATH_1_DESC = "path1-desc"; + private static final String PATH_1_PORTS = "8585"; + private static final String PATH_1_NAME = "pathName1"; + private static final String NODE_ID_1 = "nodeA-id"; + private static final String NODE_ID_2 = "nodeB-id"; + private static final String FORWARDING_PATH_TOSCA_TYPE = "org.openecomp.nodes.ForwardingPath"; + private Service service; + private Map originComponents = new HashMap<>(); + + @BeforeAll + private static void setup() { + configurationManager = + new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be")); + } + + @BeforeEach + public void setUpForwardingPath() { + service = initForwardPath(); + List componentInstances = new ArrayList<>(); + componentInstances.add(generateComponentInstance(NODE_NAME_1, NODE_ID_1)); + componentInstances.add(generateComponentInstance(NODE_NAME_2, NODE_ID_2)); + service.setComponentInstances(componentInstances); + } + + private ComponentInstance generateComponentInstance(String name, String uuid) { + ComponentInstance componentInstance = new ComponentInstance(); + componentInstance.setName(name); + componentInstance.setUniqueId(uuid); + componentInstance.setComponentUid(uuid); + Map> capabiltiesMap = new HashMap<>(); + CapabilityDefinition capabilityDefinition = new CapabilityDefinition(); + capabilityDefinition.setMinOccurrences(Integer.toString(1)); + capabilityDefinition.setMaxOccurrences(Integer.toString(100)); + capabilityDefinition.setType(ForwardingPathToscaUtil.FORWARDS_TO_TOSCA_NAME); + capabilityDefinition.setName(name); + capabilityDefinition.setUniqueId(name); + capabilityDefinition.setPath(Arrays.asList("Just", "something", "to", "read")); + capabiltiesMap.put(capabilityDefinition.getName(), Collections.singletonList(capabilityDefinition)); + componentInstance.setCapabilities(capabiltiesMap); + Resource resource = new Resource(); + resource.setToscaResourceName("test"); + originComponents.put(uuid, resource); + return componentInstance; + } + + @Test + public void singleElementPath() { + Assertions.assertDoesNotThrow(() -> { + createPathSingleElement(); + Map nodeTemplatesRes = new HashMap<>(); + + Map expectedNodeTemplatesRes = new HashMap<>(); + ToscaNodeTemplate pathEntry = new ToscaNodeTemplate(); + pathEntry.setType(FORWARDING_PATH_TOSCA_TYPE); + Map expectedProps = new HashMap<>(); + expectedProps.put(PORTS_RANGE, Collections.singletonList(PATH_1_PORTS)); + expectedProps.put(PROTOCOL, PATH_1_PROTOCOL); + pathEntry.setProperties(expectedProps); + List> requirements = new ArrayList<>(); + ToscaTemplateRequirement firstEntryReq = new ToscaTemplateRequirement(); + ToscaTemplateRequirement secondEntryReq = new ToscaTemplateRequirement(); + + firstEntryReq.setCapability("null." + NODE_NAME_1); + secondEntryReq.setCapability("null." + NODE_NAME_2); + + firstEntryReq.setNode(NODE_NAME_1); + secondEntryReq.setNode(NODE_NAME_2); + + firstEntryReq.setRelationship(FORWARDS_TO_TOSCA_NAME); + secondEntryReq.setRelationship(FORWARDS_TO_TOSCA_NAME); + + Map entryMap1 = new HashMap<>(); + Map entryMap2 = new HashMap<>(); + + entryMap1.put(FORWARDER, firstEntryReq); + entryMap2.put(FORWARDER, secondEntryReq); + + requirements.add(entryMap1); + requirements.add(entryMap2); + + pathEntry.setRequirements(requirements); + expectedNodeTemplatesRes.put(PATH_1_NAME, pathEntry); + addForwardingPaths(service, nodeTemplatesRes, capabiltyRequirementConvertor, originComponents, toscaOperationFacade); + + assertEquals(2, nodeTemplatesRes.get(PATH_1_NAME).getRequirements().size()); + compareToscaPathEntry(expectedNodeTemplatesRes, nodeTemplatesRes); + }); + } + + private void compareToscaPathEntry(Map expectedNodeTemplatesRes, + Map nodeTemplatesRes) { + final ToscaNodeTemplate expectedTemplate = expectedNodeTemplatesRes.get(PATH_1_NAME); + final ToscaNodeTemplate actualTemplate = nodeTemplatesRes.get(PATH_1_NAME); + assertEquals(expectedTemplate.getProperties(), actualTemplate.getProperties()); + final int size = expectedTemplate.getRequirements().size(); + assertEquals(size, actualTemplate.getRequirements().size()); + for (int i = 0; i < size; i++) { + compareToscaRequirement(expectedTemplate, actualTemplate, i); + } + } + + private void compareToscaRequirement(ToscaNodeTemplate expectedTemplate, + ToscaNodeTemplate actualTemplate, + int i) { + final ToscaTemplateRequirement actualRequirement = actualTemplate.getRequirements().get(i).get(FORWARDER); + final ToscaTemplateRequirement expectedToscaRequirement = expectedTemplate.getRequirements().get(i).get(FORWARDER); + assertEquals(actualRequirement.getCapability(), expectedToscaRequirement.getCapability()); + assertEquals(actualRequirement.getNode(), expectedToscaRequirement.getNode()); + } + + private void createPathSingleElement() { + ForwardingPathElementDataDefinition element1 = initElement(NODE_NAME_1, NODE_NAME_2, NODE_NAME_1, NODE_NAME_2); + + ListDataDefinition list = new ListDataDefinition<>(); + list.add(element1); + + ForwardingPathDataDefinition path = new ForwardingPathDataDefinition(); + path.setDescription(PATH_1_DESC); + path.setProtocol(PATH_1_PROTOCOL); + path.setDestinationPortNumber(PATH_1_PORTS); + path.setToscaResourceName(FORWARDING_PATH_TOSCA_TYPE); + path.setPathElements(list); + path.setName(PATH_1_NAME); + + Map paths = new HashMap<>(); + paths.put(PATH_1_NAME, path); + + service.setForwardingPaths(paths); + } + + private ForwardingPathElementDataDefinition initElement(String fromId, String toId, String fromCP, String toCP) { + ForwardingPathElementDataDefinition element = new ForwardingPathElementDataDefinition(); + element.setFromCP(fromCP); + element.setFromNode(fromId); + element.setToCP(toCP); + element.setToNode(toId); + return element; + } +} diff --git a/catalog-be/src/test/resources/paths/path-context.xml b/catalog-be/src/test/resources/paths/path-context.xml index 752e4ecf13..53e8b8c74b 100644 --- a/catalog-be/src/test/resources/paths/path-context.xml +++ b/catalog-be/src/test/resources/paths/path-context.xml @@ -20,87 +20,67 @@ limitations under the License. Modifications copyright (c) 2018 Nokia ================================================================================ --> - - - + + + + + + + + + + + + + + + + + + + - + org.openecomp.sdc.be.impl, + org.openecomp.sdc.be.tosca, + org.openecomp.sdc.be.dao.impl"> - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit 1.2.3-korg