summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java')
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java148
1 files changed, 148 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java
new file mode 100644
index 0000000000..e1d6a9ded8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java
@@ -0,0 +1,148 @@
+package org.openecomp.sdc.healing.healers;
+
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.model.dao.ServiceModelDao;
+import org.openecomp.core.model.types.ServiceElement;
+import org.openecomp.sdc.common.togglz.ToggleableFeature;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.healing.healers.util.TestUtil;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.togglz.testing.TestFeatureManager;
+import org.togglz.testing.TestFeatureManagerProvider;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.eq;
+
+public class ForwarderCapabilityHealerTest {
+ private static final String IN_SUFFIX = "/in";
+ private static final String OUT_SUFFIX = "/out";
+ private static final String BASE_DIRECTORY = "/mock/healers/forwarder";
+ private static final String ENTRY_DEFINITION_SERVICE_TEMPLATE = "MainServiceTemplate.yaml";
+ private static TestFeatureManager manager;
+
+ private Map<String,Object> params = new HashMap<>();
+
+ @Mock
+ private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao;
+ @Mock
+ private ToscaAnalyzerService toscaAnalyzerService;
+ @InjectMocks
+ private ForwarderCapabilityHealer forwarderCapabilityHealer;
+
+ @BeforeClass
+ public static void enableForwarderFeature(){
+ manager = new TestFeatureManager(ToggleableFeature.class);
+ if (!ToggleableFeature.FORWARDER_CAPABILITY.isActive()) {
+ manager.enable(ToggleableFeature.FORWARDER_CAPABILITY);
+ }
+ }
+
+ @AfterClass
+ public static void disableForwarderFeature() {
+ manager.disable(ToggleableFeature.FORWARDER_CAPABILITY);
+ manager = null;
+ TestFeatureManagerProvider.setFeatureManager(null);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(ForwarderCapabilityHealerTest.this);
+ params.put(SdcCommon.VSP_ID,"1");
+ params.put(SdcCommon.VERSION, new Version(1,1));
+ }
+
+
+ @Test
+ public void testHealingSubstitutionMappingsNeutronPort() throws Exception {
+ testForwarderHealer(
+ "/testSubMappingNeutronPort", "org.openecomp.resource.cp.nodes.heat.network.neutron.Port", true);
+ }
+
+ @Test
+ public void testHealingSubstitutionMappingsContrailPort() throws Exception {
+ testForwarderHealer(
+ "/testSubMappingContrailPort", "org.openecomp.resource.cp.nodes.heat.network.contrail.Port", true);
+ }
+
+ @Test
+ public void testHealingSubstitutionMappingsExtNeutronPort() throws Exception {
+ testForwarderHealer(
+ "/testSubMappingExtNeutronPort", "org.openecomp.resource.cp.v2.extNeutronCP", true);
+ }
+
+ @Test
+ public void testHealingSubstitutionMappingsExtContrailPort() throws Exception {
+ testForwarderHealer(
+ "/testSubMappingExtContrailPort", "org.openecomp.resource.cp.v2.extContrailCP", true);
+ }
+
+ @Test
+ public void testHealingGlobalServiceTemplates () throws Exception {
+ testForwarderHealer("/testGlobalServiceTemplates", null, false);
+ }
+
+ @Test
+ public void testHealingNoPorts() throws Exception {
+ testForwarderHealer("/testNoPorts", null, false);
+ }
+
+ private void testForwarderHealer(String testDirectory,
+ String portType,
+ boolean needToTestSubMapping) throws Exception {
+
+ ToscaServiceModel toscaServiceModel = TestUtil.loadToscaServiceModel(
+ BASE_DIRECTORY + testDirectory + IN_SUFFIX, null, ENTRY_DEFINITION_SERVICE_TEMPLATE);
+
+ Mockito.doReturn(toscaServiceModel)
+ .when(serviceModelDao).getServiceModel(any(), any());
+
+ if(needToTestSubMapping) {
+ Mockito.doReturn(true)
+ .when(toscaAnalyzerService).isTypeOf(
+ eq(getMockPortNodeTemplate(portType)),
+ eq(ToscaNodeType.NATIVE_NETWORK_PORT),
+ anyObject(), anyObject());
+ }
+
+ validateServiceModelAfterHealing(testDirectory);
+ }
+
+ private void validateServiceModelAfterHealing(String testDirectory) throws Exception {
+ Optional<ToscaServiceModel> serviceModelObject =
+ (Optional<ToscaServiceModel>) forwarderCapabilityHealer.heal(params);
+
+ Assert.assertTrue(serviceModelObject.isPresent());
+ TestUtil
+ .compareToscaServiceModels(
+ BASE_DIRECTORY + testDirectory + OUT_SUFFIX, serviceModelObject.get());
+ }
+
+ private NodeTemplate getMockPortNodeTemplate(String portType) {
+ NodeTemplate nodeTemplate = new NodeTemplate();
+ nodeTemplate.setType(portType);
+
+ Map<String, Object> properties = new HashMap<>();
+ properties.put("exCP_naming", "port_pd01_port_exCP_naming");
+ nodeTemplate.setProperties(properties);
+
+ return nodeTemplate;
+ }
+
+}