aboutsummaryrefslogtreecommitdiffstats
path: root/appc-sdc-listener
diff options
context:
space:
mode:
Diffstat (limited to 'appc-sdc-listener')
-rw-r--r--appc-sdc-listener/appc-sdc-listener-bundle/pom.xml4
-rw-r--r--appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcCallbackTest.java231
-rw-r--r--appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcListenerTest.java156
-rw-r--r--appc-sdc-listener/appc-yang-generator/dependency-reduced-pom.xml1
4 files changed, 3 insertions, 389 deletions
diff --git a/appc-sdc-listener/appc-sdc-listener-bundle/pom.xml b/appc-sdc-listener/appc-sdc-listener-bundle/pom.xml
index 8d7ba164c..2c9685a43 100644
--- a/appc-sdc-listener/appc-sdc-listener-bundle/pom.xml
+++ b/appc-sdc-listener/appc-sdc-listener-bundle/pom.xml
@@ -180,11 +180,11 @@ limitations under the License.
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-inet-types</artifactId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-yang-types</artifactId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
</dependency>
<dependency>
diff --git a/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcCallbackTest.java b/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcCallbackTest.java
deleted file mode 100644
index 2dcdb4d1c..000000000
--- a/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcCallbackTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP : APPC
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Copyright (C) 2017 Amdocs
- * =============================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.appc.sdc.listener;
-
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mockito;
-import org.onap.appc.adapter.message.EventSender;
-import org.onap.appc.sdc.artifacts.helper.ArtifactStorageService;
-import org.onap.appc.sdc.artifacts.helper.DependencyModelGenerator;
-import org.onap.appc.sdc.artifacts.impl.ArtifactProcessorFactory;
-import org.onap.appc.sdc.artifacts.impl.ToscaCsarArtifactProcessor;
-import org.onap.appc.sdc.artifacts.object.SDCArtifact;
-import org.onap.appc.sdc.artifacts.object.SDCReference;
-import org.onap.sdc.api.IDistributionClient;
-import org.onap.sdc.api.consumer.INotificationCallback;
-import org.onap.sdc.api.notification.IArtifactInfo;
-import org.onap.sdc.api.notification.INotificationData;
-import org.onap.sdc.api.notification.IResourceInstance;
-import org.onap.sdc.api.results.IDistributionClientDownloadResult;
-import org.onap.sdc.impl.DistributionClientDownloadResultImpl;
-import org.onap.sdc.utils.DistributionActionResultEnum;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static org.mockito.Matchers.anyObject;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({IDistributionClient.class,
- EventSender.class,
- ArtifactStorageService.class,
- ToscaCsarArtifactProcessor.class,
- ArtifactProcessorFactory.class,
- DependencyModelGenerator.class})
-public class SdcCallbackTest {
-
- private INotificationCallback sdcCallback;
- private ArtifactStorageService storageService;
- private ToscaCsarArtifactProcessor artifactProcessor;
- private String resourceContent;
-
-
- @Before
- public void setup() throws Exception {
- IDistributionClient client = PowerMockito.mock(IDistributionClient.class);
- EventSender eventSender = PowerMockito.mock(EventSender.class);
- sdcCallback = new SdcCallback(null, client);
- resourceContent=readInput("/output/resource-ResourceAppc-template.yml").replaceAll(System.lineSeparator(),"");
- artifactProcessor = Mockito.spy(new ToscaCsarArtifactProcessor(client, eventSender, getNotificationData(), getResources().get(0)
- , getServiceArtifacts().get(0), null));
- storageService = PowerMockito.mock(ArtifactStorageService.class);
- Whitebox.setInternalState(artifactProcessor,"artifactStorageService", storageService);
- DependencyModelGenerator dependencyModelGeneratorMock=PowerMockito.mock(DependencyModelGenerator.class);
- PowerMockito.when(dependencyModelGeneratorMock.getDependencyModel(Matchers.anyString(),Matchers.anyString()))
- .thenReturn("Dependency_model");
- Whitebox.setInternalState(artifactProcessor,"dependencyModelGenerator",dependencyModelGeneratorMock);
-
- PowerMockito.doCallRealMethod().when(artifactProcessor).processArtifact(anyObject());
- PowerMockito.doCallRealMethod().when(artifactProcessor).run();
-
- //PowerMockito.mockStatic(ArtifactProcessorFactory.class);
- ArtifactProcessorFactory artifactProcessorFactory=PowerMockito.mock(ArtifactProcessorFactory.class);
- PowerMockito.when(artifactProcessorFactory.getArtifactProcessor(anyObject(), anyObject(),
- anyObject(), anyObject(),
- anyObject(), anyObject())).thenReturn(artifactProcessor);
-
- Whitebox.setInternalState(sdcCallback,"eventSender", eventSender);
- PowerMockito.doReturn(readDownloadResult()).when(client).download(anyObject());
- PowerMockito.doReturn(null).when(client).sendDownloadStatus(anyObject());
-
- PowerMockito.doReturn(null).when(storageService).retrieveSDCArtifact(Matchers.anyString(),
- Matchers.anyString(),Matchers.anyString());
-
- PowerMockito.doAnswer(invocationOnMock -> {
- System.out.print(invocationOnMock.getArguments()[0].toString());
- return null;
- }).when(storageService).storeSDCArtifact(anyObject());
- }
-
- private IDistributionClientDownloadResult readDownloadResult() throws IOException, URISyntaxException {
- DistributionClientDownloadResultImpl downloadResult = new DistributionClientDownloadResultImpl
- (DistributionActionResultEnum.SUCCESS,"Download success");
- File file = new File(this.getClass().getResource("/csar/service-ServiceAppc-csar.csar").toURI());
-
- byte[] bFile = new byte[(int) file.length()];
- FileInputStream fileInputStream = new FileInputStream(file);
- fileInputStream.read(bFile);
- fileInputStream.close();
-
- downloadResult.setArtifactPayload(bFile);
- return downloadResult;
- }
-
-
- @Test
- public void testSDCListener() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException {
- INotificationData notificationData = getNotificationData();
- sdcCallback.activateCallback(notificationData);
- pause();
- }
-
- @Test
- public void testArtifacts() throws Exception {
- PowerMockito.doAnswer(invocationOnMock -> {
- SDCArtifact artifact =(SDCArtifact)invocationOnMock.getArguments()[0];
- SDCReference reference=(SDCReference)invocationOnMock.getArguments()[1];
- Assert.assertEquals("abcd-efgh-ijkl",artifact.getArtifactUUID());
- Assert.assertEquals("Resource-APPC",reference.getVnfType());
- Assert.assertEquals(resourceContent.trim(),artifact.getArtifactContent().replaceAll(System.lineSeparator(),""));
- return null;
- }).doAnswer(invocation -> {
- SDCArtifact artifact =(SDCArtifact)invocation.getArguments()[0];
- SDCReference reference=(SDCReference)invocation.getArguments()[1];
- Assert.assertEquals("Resource-APPC",reference.getVnfType());
- Assert.assertEquals("tosca_dependency_model",reference.getFileCategory());
- Assert.assertEquals("Dependency_model",artifact.getArtifactContent());
- Assert.assertEquals("Resource-APPC",artifact.getResourceName());
- return null;
- }).when(storageService).storeSDCArtifactWithReference(anyObject(),anyObject());
-
- artifactProcessor.processArtifact(readDownloadResult());
- }
-
- private void pause(){
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- }
- }
-
- private String readInput(String inputFile) throws URISyntaxException {
- File file = new File(this.getClass().getResource(inputFile).toURI());
- byte[] bFile = new byte[(int) file.length()];
- try(FileInputStream fileInputStream = new FileInputStream(file)){
- fileInputStream.read(bFile);
- } catch (Exception e){
- e.printStackTrace();
- }
- return new String(bFile);
- }
-
- private INotificationData getNotificationData() throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException {
-
- INotificationData notificationData = (INotificationData)getObject("org.onap.sdc.impl.NotificationDataImpl");
-
- List<IArtifactInfo> serviceArtifacts = getServiceArtifacts();
-
- invokeMethod(notificationData, "setServiceArtifacts", serviceArtifacts);
- return notificationData;
- }
-
- private List<IResourceInstance> getResources() throws ClassNotFoundException, InvocationTargetException, InstantiationException, IllegalAccessException {
- List<IResourceInstance> resources = new ArrayList<>();
- IResourceInstance resource = (IResourceInstance)getObject("org.onap.sdc.impl.JsonContainerResourceInstance");
-
- List<IArtifactInfo> serviceArtifacts = getServiceArtifacts();
- invokeMethod(resource,"setArtifacts",serviceArtifacts);
- invokeMethod(resource,"setResourceName","Vnf");
- invokeMethod(resource,"setResourceVersion","1.0");
-
- resources.add(resource);
- return resources;
- }
-
- private void invokeMethod(Object object, String methodName,Object... arguments) throws IllegalAccessException, InvocationTargetException {
- Method[] methods = object.getClass().getDeclaredMethods();
- for(Method method:methods){
- if(methodName.equalsIgnoreCase(method.getName())){
- method.setAccessible(true);
- method.invoke(object,arguments);
- }
- }
- }
-
- private Object getObject(String fqcn) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException {
- Constructor constructor = Arrays.asList(Class.forName(fqcn).getDeclaredConstructors())
- .stream()
- .filter(constructor1 -> constructor1.getParameterCount()==0)
- .collect(Collectors.toList())
- .get(0);
- constructor.setAccessible(true);
- return constructor.newInstance();
- }
-
- private List<IArtifactInfo> getServiceArtifacts() throws ClassNotFoundException, InvocationTargetException, InstantiationException, IllegalAccessException {
- List<IArtifactInfo> serviceArtifacts = new ArrayList<>();
- IArtifactInfo artifactInfo = (IArtifactInfo)getObject("org.onap.sdc.impl.ArtifactInfoImpl");
- invokeMethod(artifactInfo,"setArtifactType","TOSCA_CSAR");
- invokeMethod(artifactInfo,"setArtifactUUID","abcd-efgh-ijkl");
- serviceArtifacts.add(artifactInfo);
- return serviceArtifacts;
- }
-}
diff --git a/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcListenerTest.java b/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcListenerTest.java
deleted file mode 100644
index 2e10065e5..000000000
--- a/appc-sdc-listener/appc-sdc-listener-bundle/src/test/java/org/onap/appc/sdc/listener/SdcListenerTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP : APPC
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Copyright (C) 2017 Amdocs
- * =============================================================================
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.appc.sdc.listener;
-
-import com.att.eelf.configuration.EELFLogger;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.onap.sdc.api.IDistributionClient;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(Thread.class)
-public class SdcListenerTest {
- private SdcListener sdcListener;
- private EELFLogger mockLogger = mock(EELFLogger.class);
-
- @Before
- public void setUp() throws Exception {
- sdcListener = new SdcListener();
-
- // to avoid operation on logger fail, mock up the logger
- Whitebox.setInternalState(sdcListener, "logger", mockLogger);
- }
-
- @Test
- public void testStart() throws Exception {
- sdcListener.start();
- Assert.assertTrue("Should created startThread",
- Whitebox.getInternalState(sdcListener, "startThread") != null);
- }
-
- @Test
- public void testStop() throws Exception {
- // test interrupt thread and other null case
- MockThread mockThread = spy(new MockThread());
- mockThread.setNewState(Thread.State.TIMED_WAITING);
- Whitebox.setInternalState(sdcListener, "startThread", mockThread);
-
- sdcListener.stop();
- Mockito.verify(mockThread, times(1)).interrupt();
- Assert.assertTrue("Should reset startThread",
- Whitebox.getInternalState(sdcListener, "startThread") == null);
-
- // test other non-null case and thread null case
- IDistributionClient mockClient = mock(IDistributionClient.class);
- Whitebox.setInternalState(sdcListener, "client", mockClient);
- SdcCallback mockCallback = mock(SdcCallback.class);
- Whitebox.setInternalState(sdcListener, "callback", mockCallback);
- CountDownLatch mockLatch = mock(CountDownLatch.class);
- Whitebox.setInternalState(sdcListener, "latch", mockLatch);
-
- sdcListener.stop();
-
- Mockito.verify(mockLatch, times(1)).await(10, TimeUnit.SECONDS);
- Mockito.verify(mockCallback, times(1)).stop();
- Mockito.verify(mockClient, times(1)).stop();
- Assert.assertTrue("Should reset latch",
- Whitebox.getInternalState(sdcListener, "latch") == null);
- Assert.assertTrue("Should reset callback",
- Whitebox.getInternalState(sdcListener, "callback") == null);
- Assert.assertTrue("Should reset client",
- Whitebox.getInternalState(sdcListener, "client") == null);
- }
-
- @Test
- public void testStopStartThread() throws Exception {
- // null case
- sdcListener.stopStartThread(123);
- //Mockito.verify(mockLogger, times(0)).debug(String.valueOf(any()));
-
- MockThread mockThread = spy(new MockThread());
-
- // thread terminated case
- Whitebox.setInternalState(sdcListener, "startThread", mockThread);
- mockThread.setNewState(Thread.State.TERMINATED);
- sdcListener.stopStartThread(123);
- Mockito.verify(mockThread, times(0)).interrupt();
- //Mockito.verify(mockLogger, times(1)).debug(String.valueOf(any()));
- Assert.assertTrue("Should reset startThread",
- Whitebox.getInternalState(sdcListener, "startThread") == null);
-
- // thread not termianted case
- int timesCallThread = 0;
- int timesCallLogger = 1;
- for(Thread.State state : Thread.State.values()) {
- if (state == Thread.State.TERMINATED) {
- continue;
- }
- Whitebox.setInternalState(sdcListener, "startThread", mockThread);
- mockThread.setNewState(state);
- sdcListener.stopStartThread(123);
- Mockito.verify(mockThread, times(++ timesCallThread)).interrupt();
- //Mockito.verify(mockLogger, times(timesCallLogger += 2)).debug(String.valueOf(any()));
- Assert.assertTrue("Should reset startThread",
- Whitebox.getInternalState(sdcListener, "startThread") == null);
- }
- }
-
- /*
- * I have used the following PowerMockito (due to Thread.getName() is a final method)
- * try to mock up the thread behavior. But the mock Thread.getName() always returns null
- * which works in intelliJ Junit test, but not Jenkins build:
- * Thread mockThread = PowerMockito.mock(Thread.class);
- * PowerMockito.doReturn(Thread.State.TERMINATED).when(mockThread).getState();
- * PowerMockito.doReturn("testing").when(mockThread).getName();
- * Hence, here goes the MockThread class to override Thread to my expected behavior.
- */
- class MockThread extends Thread {
- private State state;
-
- private MockThread() {
- super.setName("testing");
- }
-
- void setNewState(State newState) {
- state = newState;
- }
-
- @Override
- public State getState() {
- return state;
- }
- }
-}
diff --git a/appc-sdc-listener/appc-yang-generator/dependency-reduced-pom.xml b/appc-sdc-listener/appc-yang-generator/dependency-reduced-pom.xml
index fd09e088a..3f07d1447 100644
--- a/appc-sdc-listener/appc-yang-generator/dependency-reduced-pom.xml
+++ b/appc-sdc-listener/appc-yang-generator/dependency-reduced-pom.xml
@@ -72,6 +72,7 @@
<groupId>net.jcip</groupId>
</exclusion>
</exclusions>
+ <optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>