From 1cfb08779ea0e00be69e072a940b3063e049fe6b Mon Sep 17 00:00:00 2001 From: Ofir Sonsino Date: Wed, 31 Jan 2018 17:19:00 +0200 Subject: org.onap migration Change-Id: I52f0b2851f2c765752b6d21f49b32136d7d72a3d Issue-ID: VID-86 Signed-off-by: Ofir Sonsino --- .../org/onap/vid/controller/VidControllerTest.java | 187 +++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 vid-app-common/src/test/java/org/onap/vid/controller/VidControllerTest.java (limited to 'vid-app-common/src/test/java/org/onap/vid/controller/VidControllerTest.java') diff --git a/vid-app-common/src/test/java/org/onap/vid/controller/VidControllerTest.java b/vid-app-common/src/test/java/org/onap/vid/controller/VidControllerTest.java new file mode 100644 index 000000000..b443e1f05 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/controller/VidControllerTest.java @@ -0,0 +1,187 @@ +package org.onap.vid.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import net.javacrumbs.jsonunit.JsonAssert; +import org.apache.commons.io.IOUtils; +import org.onap.vid.asdc.AsdcCatalogException; +import org.onap.vid.asdc.AsdcClient; +import org.onap.vid.asdc.parser.ToscaParserImpl2; +import org.onap.vid.model.*; +import org.openecomp.portalsdk.core.util.SystemProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockServletContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; +import org.springframework.test.context.web.WebAppConfiguration; +import org.testng.Assert; +import org.testng.annotations.Test; + +import static org.onap.vid.testUtils.TestUtils.assertJsonStringEqualsIgnoreNulls; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Path; +import java.util.Map; +import java.util.UUID; + +//import org.junit.Assert; +//import org.junit.Ignore; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@ContextConfiguration(classes = {LocalWebConfig.class, SystemProperties.class}) +//@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration + +public class VidControllerTest extends AbstractTestNGSpringContextTests { + + @Autowired + MockServletContext context; + @Autowired + private AsdcClient asdcClient; + private ToscaParserImpl2 p2 = new ToscaParserImpl2(); + private ObjectMapper om = new ObjectMapper(); + + + @Test + public void assertEqualsBetweenServices() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Service expectedService = mockHelper.getNewServiceModel().getService(); + Service actualService = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getService(); + assertJsonStringEqualsIgnoreNulls(om.writeValueAsString(expectedService), om.writeValueAsString(actualService)); + } + } + +// @Test +// public void assertEqualBetweenObjects() throws Exception { +// for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { +// final Path csarPath = getCsarPath(mockHelper.getUuid()); +// System.out.println("Comparing for csar " + csarPath); +// ServiceModel actualServiceModel = p2.makeServiceModel(csarPath, getServiceByUuid(mockHelper.getUuid())); +// assertJsonStringEqualsIgnoreNulls(om.writeValueAsString(mockHelper.getNewServiceModel()), om.writeValueAsString(actualServiceModel)); +// } +// } + +// @Test +// public void assertEqualsBetweenNetworkNodes() throws Exception { +// for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { +// Map expectedNetworksMap = mockHelper.getNewServiceModel().getNetworks(); +// Map actualNetworksMap = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getNetworks(); +// for (Map.Entry entry : expectedNetworksMap.entrySet()) { +// Network expectedNetwork = entry.getValue(); +// Network actualNetwork = actualNetworksMap.get(entry.getKey()); +// Assert.assertEquals(expectedNetwork.getModelCustomizationName(), actualNetwork.getModelCustomizationName()); +// verifyBaseNodeProperties(expectedNetwork, actualNetwork); +// compareProperties(expectedNetwork.getProperties(), actualNetwork.getProperties()); +// } +// } +// } + + //Because we are not supporting the old flow, the JSON are different by definition. + @Test + public void assertEqualsBetweenVnfsOfTosca() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Map expectedVnfsMap = mockHelper.getNewServiceModel().getVnfs(); + Map actualVnfsMap = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getVnfs(); + for (Map.Entry entry : expectedVnfsMap.entrySet()) { + VNF expectedVnf = entry.getValue(); + VNF actualVnf = actualVnfsMap.get(entry.getKey()); + verifyBaseNodeProperties(expectedVnf, actualVnf); + Assert.assertEquals(expectedVnf.getModelCustomizationName(), actualVnf.getModelCustomizationName()); + compareProperties(expectedVnf.getProperties(), actualVnf.getProperties()); + assertJsonStringEqualsIgnoreNulls(om.writeValueAsString(expectedVnf), om.writeValueAsString(actualVnf)); + } + } + } + + @Test + public void assertEqualsBetweenVolumeGroups() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Map actualVolumeGroups = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getVolumeGroups(); + Map expectedVolumeGroups = mockHelper.getNewServiceModel().getVolumeGroups(); + JsonAssert.assertJsonEquals(actualVolumeGroups, expectedVolumeGroups); + } + } + + @Test + public void assertEqualsBetweenVfModules() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Map actualVfModules = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getVfModules(); + Map expectedVfModules = mockHelper.getNewServiceModel().getVfModules(); + JsonAssert.assertJsonEquals(actualVfModules, expectedVfModules); + } + } + + @Test + public void assertEqualsBetweenPolicyConfigurationNodes() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Map actualConfigurations = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getConfigurations(); + Map expectedConfigurations = mockHelper.getNewServiceModel().getConfigurations(); + JsonAssert.assertJsonEquals(actualConfigurations, expectedConfigurations); + } + } + + @Test + public void assertEqualsBetweenServiceProxyNodes() throws Exception { + for (ToscaParserMockHelper mockHelper : getExpectedServiceModel()) { + Map actualServiceProxies = p2.makeServiceModel(getCsarPath(mockHelper.getUuid()), getServiceByUuid(mockHelper.getUuid())).getServiceProxies(); + Map expectedServiceProxies = mockHelper.getNewServiceModel().getServiceProxies(); + JsonAssert.assertJsonEquals(actualServiceProxies, expectedServiceProxies); + } + } + + private void verifyBaseNodeProperties(Node expectedNode, Node actualNode) { + Assert.assertEquals(expectedNode.getName(), actualNode.getName()); + Assert.assertEquals(expectedNode.getCustomizationUuid(), actualNode.getCustomizationUuid()); + Assert.assertEquals(expectedNode.getDescription(), actualNode.getDescription()); + Assert.assertEquals(expectedNode.getInvariantUuid(), actualNode.getInvariantUuid()); + Assert.assertEquals(expectedNode.getUuid(), actualNode.getUuid()); + Assert.assertEquals(expectedNode.getVersion(), actualNode.getVersion()); + } + + private void compareProperties(Map expectedProperties, Map actualProperties) { + for (Map.Entry property : expectedProperties.entrySet()) { + String expectedValue = property.getValue(); + String key = property.getKey(); + String actualValue = actualProperties.get(key); + Assert.assertEquals(expectedValue, actualValue); + } + } + + private ToscaParserMockHelper[] getExpectedServiceModel() throws IOException { + ToscaParserMockHelper[] mockHelpers = { + new ToscaParserMockHelper(Constants.vlUuid, Constants.vlFilePath), + new ToscaParserMockHelper(Constants.vfUuid, Constants.vfFilePath), + new ToscaParserMockHelper(Constants.configurationUuid, Constants.configurationFilePath), + }; + for (ToscaParserMockHelper mockHelper : mockHelpers) { + InputStream jsonFile = VidControllerTest.class.getClassLoader().getResourceAsStream(mockHelper.getFilePath()); + String expectedJsonAsString = IOUtils.toString(jsonFile); + NewServiceModel newServiceModel1 = om.readValue(expectedJsonAsString, NewServiceModel.class); + mockHelper.setNewServiceModel(newServiceModel1); + } + return mockHelpers; + } + + private Path getCsarPath(String uuid) throws AsdcCatalogException { + return asdcClient.getServiceToscaModel(UUID.fromString(uuid)); + } + + private org.onap.vid.asdc.beans.Service getServiceByUuid(String uuid) throws AsdcCatalogException { + return asdcClient.getService(UUID.fromString(uuid)); + } + + public class Constants { + public static final String configurationUuid = "ee6d61be-4841-4f98-8f23-5de9da846ca7"; + public static final String configurationFilePath = "policy-configuration-csar.JSON"; + static final String vfUuid = "48a52540-8772-4368-9cdb-1f124ea5c931"; + static final String vlUuid = "cb49608f-5a24-4789-b0f7-2595473cb997"; + // public static final String PNFUuid = "68101369-6f08-4e99-9a28-fa6327d344f3"; + static final String vfFilePath = "vf-csar.JSON"; + static final String vlFilePath = "vl-csar.JSON"; +// public static final String PNFFilePath = "/Users/Oren/Git/Att/vid_internal/vid-app-common/src/main/resources/pnf.csar"; + + } + +} \ No newline at end of file -- cgit 1.2.3-korg