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 --- .../services/ChangeManagementServiceImplTest.java | 69 +++++++++++++ .../vid/services/ChangeManagementServiceTest.java | 29 ++++++ .../services/ChangeManagementServiceUnitTest.java | 107 +++++++++++++++++++++ .../java/org/onap/vid/services/CsvServiceTest.java | 80 +++++++++++++++ .../test/java/org/onap/vid/services/TestSuite.java | 11 +++ 5 files changed, 296 insertions(+) create mode 100644 vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceImplTest.java create mode 100644 vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceTest.java create mode 100644 vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceUnitTest.java create mode 100644 vid-app-common/src/test/java/org/onap/vid/services/CsvServiceTest.java create mode 100644 vid-app-common/src/test/java/org/onap/vid/services/TestSuite.java (limited to 'vid-app-common/src/test/java/org/onap/vid/services') diff --git a/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceImplTest.java b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceImplTest.java new file mode 100644 index 00000000..e73838c9 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceImplTest.java @@ -0,0 +1,69 @@ +package org.onap.vid.services; + +import static org.junit.Assert.*; +import java.util.*; + +import org.json.simple.JSONArray; +import org.junit.Assert; +import org.junit.Test; +import org.onap.vid.changeManagement.ChangeManagementRequest; +import org.onap.vid.changeManagement.RequestDetails; +import org.onap.vid.mso.rest.Request; +import org.springframework.http.ResponseEntity; + +public class ChangeManagementServiceImplTest { + + /*TODO: fix private ChangeManagementServiceImpl createTestSubject() { + return new ChangeManagementServiceImpl(); + }*/ + + + /*@Test + public void testGetMSOChangeManagements() throws Exception { + ChangeManagementServiceImpl testSubject; + Collection result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getMSOChangeManagements(); + } + + + @Test + public void testFindRequestByVnfName() throws Exception { + ChangeManagementServiceImpl testSubject;List requests = null; + String vnfName = ""; + RequestDetails result; + + // test 1 + testSubject=createTestSubject();requests = null; + result=Deencapsulation.invoke(testSubject, "findRequestByVnfName", new Object[]{List.class, vnfName}); + Assert.assertEquals(null, result); + }*/ +/* + + @Test + public void testDoChangeManagement() throws Exception { + ChangeManagementServiceImpl testSubject; + ChangeManagementRequest request = null; + String vnfName = ""; + ResponseEntity result; + + // test 1 + testSubject = createTestSubject(); + request = null; + result = testSubject.doChangeManagement(request, vnfName); + Assert.assertEquals(null, result); + } + + + @Test + public void testGetSchedulerChangeManagements() throws Exception { + ChangeManagementServiceImpl testSubject; + JSONArray result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getSchedulerChangeManagements(); + }*/ +} \ No newline at end of file diff --git a/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceTest.java b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceTest.java new file mode 100644 index 00000000..f3df4c6a --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceTest.java @@ -0,0 +1,29 @@ +package org.onap.vid.services; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.vid.changeManagement.ChangeManagementRequest; +import org.onap.vid.changeManagement.ChangeManagementResponse; +import org.springframework.http.ResponseEntity; + +import junit.framework.Assert; + +import static org.junit.Assert.*; + + +public class ChangeManagementServiceTest { + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void doChangeManagement_requestTypeIsUpdateVnfNotFound_doUpdateAndReturnNull() throws Exception { + + } + +} \ No newline at end of file diff --git a/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceUnitTest.java b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceUnitTest.java new file mode 100644 index 00000000..f692bdc6 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/services/ChangeManagementServiceUnitTest.java @@ -0,0 +1,107 @@ +package org.onap.vid.services; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.io.IOUtils; +import org.mockito.ArgumentCaptor; +import org.openecomp.portalsdk.core.util.SystemProperties; +import org.onap.vid.changeManagement.ChangeManagementRequest; +import org.onap.vid.controller.MsoConfig; +import org.onap.vid.controller.WebConfig; +import org.onap.vid.model.RequestReferencesContainer; +import org.onap.vid.mso.RestObject; +import org.onap.vid.mso.rest.MsoRestClientNew; +import org.onap.vid.mso.rest.RequestDetails; +import org.onap.vid.properties.AsdcClientConfiguration; +import org.onap.vid.services.ChangeManagementService; +import org.onap.vid.services.ChangeManagementServiceImpl; +import org.onap.vid.testUtils.RegExMatcher; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; +import org.springframework.test.context.web.WebAppConfiguration; +import org.testng.annotations.Test; + +import javax.inject.Inject; +import java.net.URL; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.IsInstanceOf.instanceOf; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.*; + + +@Test +@ContextConfiguration(classes = {WebConfig.class, AsdcClientConfiguration.class, SystemProperties.class, ChangeManagementServiceUnitTest.TestMsoConfig.class}) +@WebAppConfiguration +public class ChangeManagementServiceUnitTest extends AbstractTestNGSpringContextTests { + + private ObjectMapper objectMapper = new ObjectMapper(); + @Inject + private ChangeManagementService changeManagementService; + @Inject + private MsoRestClientNew restClientUnderTest; + + // @Test + void testInPlaceSoftwareUpdateRequest() throws Exception { + + + doReturn(new RestObject()).when(restClientUnderTest).PostForObject(anyObject(), anyString(), anyString(), anyObject()); + + URL requestJsonUrl = this.getClass().getResource("/services/change_management_software_update_request.json"); + ChangeManagementRequest changeManagementRequest = objectMapper.readValue(requestJsonUrl, ChangeManagementRequest.class); + changeManagementService.doChangeManagement(changeManagementRequest, "vidVnf"); + + ArgumentCaptor endpointCaptor = ArgumentCaptor.forClass(String.class); + ArgumentCaptor sourceIdCaptor = ArgumentCaptor.forClass(String.class); + ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(Object.class); + ArgumentCaptor responseTypeCaptor = ArgumentCaptor.forClass(Class.class); + verify(restClientUnderTest).PostForObject(requestCaptor.capture(), sourceIdCaptor.capture(), endpointCaptor.capture(), responseTypeCaptor.capture()); + + org.onap.vid.changeManagement.RequestDetails expectedRequest = changeManagementRequest.getRequestDetails().get(0); + + String serviceInstanceId = expectedRequest.getRelatedInstList().get(0).getRelatedInstance().instanceId; + ; + String vnfInstanceId = expectedRequest.getVnfInstanceId(); + String regEx = String.format("/serviceInstances/v[0-9]+/%s/vnfs/%s/inPlaceSoftwareUpdate", serviceInstanceId, vnfInstanceId); + assertThat(endpointCaptor.getValue(), RegExMatcher.matchesRegEx(regEx)); + assertThat(requestCaptor.getValue(), instanceOf(RequestDetails.class)); + RequestDetails actualRequest = ((RequestDetails) requestCaptor.getValue()); + + assertThat(actualRequest.getCloudConfiguration().getTenantId(), equalTo(expectedRequest.getCloudConfiguration().getTenantId())); + assertThat(actualRequest.getCloudConfiguration().getLcpCloudRegionId(), equalTo(expectedRequest.getCloudConfiguration().getLcpCloudRegionId())); + assertThat(actualRequest.getRequestInfo(), equalTo(expectedRequest.getRequestInfo())); + assertThat(actualRequest.getRequestParameters(), equalTo(expectedRequest.getRequestParameters())); + + URL expectedMsoRequestUrl = this.getClass().getResource("/services/change_management_software_update_expected_mso_request.json"); + String expectedMsoRequestString = IOUtils.toString(expectedMsoRequestUrl, "UTF-8"); + String actualRequestString = objectMapper.writeValueAsString(actualRequest); + try { + JSONAssert.assertEquals("built mso request is not ok", expectedMsoRequestString, actualRequestString, JSONCompareMode.NON_EXTENSIBLE); + } catch (AssertionError | Exception e) { + System.out.println("requestDetailsAsString: \n" + actualRequestString); + System.out.println("expected: \n" + expectedMsoRequestString); + throw e; + } + + } + + @Configuration + public static class TestMsoConfig extends MsoConfig { + + @Override + public MsoRestClientNew getMsoClient() { + MsoRestClientNew spyClient = spy(new MsoRestClientNew()); + return spyClient; + } + + @Bean + public ChangeManagementService getChangeManagementService() { + return new ChangeManagementServiceImpl(null, getMsoBusinessLogic()); + } + } +} diff --git a/vid-app-common/src/test/java/org/onap/vid/services/CsvServiceTest.java b/vid-app-common/src/test/java/org/onap/vid/services/CsvServiceTest.java new file mode 100644 index 00000000..051a1cf4 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/services/CsvServiceTest.java @@ -0,0 +1,80 @@ +//package org.onap.vid.services; +//import org.apache.commons.io.IOUtils; +//import org.onap.vid.services.CsvServiceImpl; +//import org.skyscreamer.jsonassert.JSONAssert; +//import org.skyscreamer.jsonassert.JSONCompareMode; +//import org.testng.Assert; +//import org.testng.annotations.DataProvider; +//import org.testng.annotations.Test; +//import org.json.JSONObject; +// +//import javax.ws.rs.BadRequestException; +//import java.io.IOException; +//import java.lang.reflect.Method; +//import java.net.URL; +//import java.util.List; +// +//@Test +//public class CsvServiceTest { +// +// private CsvServiceImpl csvService = new CsvServiceImpl(); +// private final static String CSV_FOLDER = "csv_files/{CSV_FILE}"; +// private final static String VALID_CSV = "csv_to_json.csv"; +// private final static String ONE_LINE_CSV = "one_line.csv"; +// private final static String EMPTY_CSV = "empty_file.csv"; +// private final static String MISSING_CONTENT_CSV = "missing_content.csv"; +// private final static String MISSING_VALUES_CSV = "missing_values.csv"; +// +// +///* +// @Test +// public void parseValidCsv() throws IllegalAccessException, IOException, InstantiationException { +// String expectedJson = getExpectation("vnfConfigUpdatePayload.json"); +// readAndParse(VALID_CSV,16,expectedJson); +// +// }*/ +// +// private String getExpectation(String modelFileName) throws IOException { +// // load expected result +// final URL resource = this.getClass().getResource("/" + modelFileName); +// String expected = IOUtils.toString(resource, "UTF-8"); +// return expected; +// } +///* +// @Test +// public void parseOneLineCsv() throws IllegalAccessException, IOException, InstantiationException { +// String expectedJson ="{\"payload\":{\"request-parameters\":{\"vnf-name\":\"ibcx0099v\"}}}"; +// readAndParse(ONE_LINE_CSV,1,expectedJson); +// }*/ +// +// @DataProvider +// public static Object[][] invalidFiles(Method test) { +// return new Object[][]{ +// {MISSING_CONTENT_CSV}, {MISSING_VALUES_CSV} +// }; +// } +///* +// @Test(dataProvider = "invalidFiles", expectedExceptions = {BadRequestException.class}, expectedExceptionsMessageRegExp = "Invalid csv file") +// public void parseMissingContentCsv(String invalidFile) throws IllegalAccessException, IOException, InstantiationException { +// readAndParse(invalidFile, 2, null); +// } +// +// +// @Test +// public void parseEmptyCsv() throws IllegalAccessException, IOException, InstantiationException { +// String expectedJson ="{}"; +// readAndParse(EMPTY_CSV,0,expectedJson); +// } +// +// private void readAndParse(String fileName, int expectedNumRows, String expectedJson) throws IllegalAccessException, IOException, InstantiationException { +// final URL resource = CsvServiceTest.class.getClassLoader().getResource(CSV_FOLDER.replaceFirst("\\{CSV_FILE\\}", fileName)); +// Assert.assertNotNull(resource, "The csv file was not found"); +// List content = csvService.readCsv(resource.getPath()); +// Assert.assertEquals(content.size(), expectedNumRows, "The number of non-empty lines in file is wrong"); +// JSONObject json = csvService.convertCsvToJson (content); +// JSONAssert.assertEquals(expectedJson, json, JSONCompareMode.STRICT); +// +// }*/ +// +// +//} diff --git a/vid-app-common/src/test/java/org/onap/vid/services/TestSuite.java b/vid-app-common/src/test/java/org/onap/vid/services/TestSuite.java new file mode 100644 index 00000000..e4343246 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/services/TestSuite.java @@ -0,0 +1,11 @@ +package org.onap.vid.services; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses( + +{ ChangeManagementServiceImplTest.class, ChangeManagementServiceTest.class }) +public class TestSuite { // nothing +} -- cgit 1.2.3-korg