Convert project from AJSC to Spring Boot
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / notification / EventCallbackTest.java
index b545ea2..57a4c09 100644 (file)
-/**\r
- * ============LICENSE_START==========================================\r
- * org.onap.aai\r
- * ===================================================================\r
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
- * Copyright © 2017-2018 Amdocs\r
- * ===================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- */\r
-package org.onap.aai.modelloader.notification;\r
-\r
-import com.google.gson.Gson;\r
-import com.google.gson.GsonBuilder;\r
-import com.google.gson.InstanceCreator;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.mockito.Mock;\r
-import org.mockito.Mockito;\r
-import org.mockito.MockitoAnnotations;\r
-import org.onap.aai.modelloader.config.ModelLoaderConfig;\r
-import org.openecomp.sdc.api.IDistributionClient;\r
-import org.openecomp.sdc.api.consumer.INotificationCallback;\r
-import org.openecomp.sdc.api.notification.IArtifactInfo;\r
-import org.openecomp.sdc.api.notification.INotificationData;\r
-import org.openecomp.sdc.api.notification.IResourceInstance;\r
-import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;\r
-import org.openecomp.sdc.api.results.IDistributionClientResult;\r
-import org.openecomp.sdc.impl.DistributionClientFactory;\r
-import org.openecomp.sdc.impl.DistributionClientImpl;\r
-import org.openecomp.sdc.utils.DistributionActionResultEnum;\r
-\r
-import java.lang.reflect.Type;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Properties;\r
-\r
-public class EventCallbackTest {\r
-\r
-    ModelLoaderConfig config;\r
-    DistributionClientImpl client;\r
-    EventCallback callBack;\r
-\r
-    @Before\r
-    public void init(){\r
-        MockitoAnnotations.initMocks(this);\r
-        Properties props = new Properties();\r
-        props.setProperty("ml.distribution.ARTIFACT_TYPES",\r
-                "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG");\r
-        config = new ModelLoaderConfig(props, null);\r
-        client = Mockito.spy(DistributionClientImpl.class);\r
-        callBack = new EventCallback(client, config);\r
-    }\r
-\r
-    @Test\r
-    public void testActivateCallBack_PublishFailure(){\r
-        Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
-        NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
-                NotificationDataInstance.class);\r
-\r
-        TestConfiguration testConfig = new TestConfiguration();\r
-        Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
-        callBack.activateCallback(notification);\r
-    }\r
-\r
-    @Test\r
-    public void testActivateCallBack_PublishSuccess(){\r
-        Gson gson = new GsonBuilder().setPrettyPrinting().create();\r
-        NotificationDataInstance notification = gson.fromJson(getNotificationWithMultipleResources(),\r
-                NotificationDataInstance.class);\r
-\r
-        TestConfiguration testConfig = new TestConfiguration();\r
-        Mockito.when(client.download(Mockito.any(IArtifactInfo.class))).thenReturn(buildSuccessResult());\r
-        Mockito.when(client.getConfiguration()).thenReturn(testConfig);\r
-        callBack.activateCallback(notification);\r
-    }\r
-\r
-    private static IDistributionClientDownloadResult buildSuccessResult() {\r
-        return new IDistributionClientDownloadResult() {\r
-\r
-            @Override\r
-            public byte[] getArtifactPayload() {\r
-                return new byte[0];\r
-            }\r
-\r
-            @Override\r
-            public String getArtifactName() {\r
-                return "";\r
-            }\r
-\r
-            @Override\r
-            public String getArtifactFilename() {\r
-                return "";\r
-            }\r
-\r
-            @Override\r
-            public String getDistributionMessageResult() {\r
-                return "";\r
-            }\r
-\r
-            @Override\r
-            public DistributionActionResultEnum getDistributionActionResult() {\r
-                return DistributionActionResultEnum.SUCCESS;\r
-            }\r
-        };\r
-    }\r
-\r
-    private String getNotificationWithMultipleResources(){\r
-        return "{\"distributionID\" : \"bcc7a72e-90b1-4c5f-9a37-28dc3cd86416\",\r\n" +\r
-                "      \"serviceName\" : \"Testnotificationser1\",\r\n" +\r
-                "      \"serviceVersion\" : \"1.0\",\r\n" +\r
-                "      \"serviceUUID\" : \"7f7f94f4-373a-4b71-a0e3-80ae2ba4eb5d\",\r\n" +\r
-                "      \"serviceDescription\" : \"TestNotificationVF1\",\r\n" +\r
-                "      \"resources\" : [{\r\n" +\r
-                "                      \"resourceInstanceName\" : \"testnotificationvf11\",\r\n" +\r
-                "                      \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
-                "                      \"resourceVersion\" : \"1.0\",\r\n" +\r
-                "                      \"resoucreType\" : \"VF\",\r\n" +\r
-                "                      \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2d\",\r\n" +\r
-                "                      \"artifacts\" : [{\r\n" +\r
-                "                                      \"artifactName\" : \"sample-xml-alldata-1-1.xml\",\r\n" +\r
-                "                                      \"artifactType\" : \"YANG_XML\",\r\n" +\r
-                "                                      \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
-                "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
-                "                                       sample-xml-alldata-1-1.xml\",\r\n" +\r
-                "                                      \"artifactChecksum\" : \"MTUxODFkMmRlOTNhNjYxMGYyYTI1ZjA5Y2QyNWQyYTk\\u003d\",\r\n" +\r
-                "                                      \"artifactDescription\" : \"MyYang\",\r\n" +\r
-                "                                      \"artifactTimeout\" : 0,\r\n" +\r
-                "                                      \"artifactUUID\" : \"0005bc4a-2c19-452e-be6d-d574a56be4d0\",\r\n" +\r
-                "                                      \"artifactVersion\" : \"1\"\r\n" +\r
-                "                              }" +\r
-                "                      ]\r\n" +\r
-                "              },\r\n" +\r
-                "       {\r\n" +\r
-                "                      \"resourceInstanceName\" : \"testnotificationvf12\",\r\n" +\r
-                "                      \"resourceName\" : \"TestNotificationVF1\",\r\n" +\r
-                "                      \"resourceVersion\" : \"1.0\",\r\n" +\r
-                "                      \"resoucreType\" : \"VF\",\r\n" +\r
-                "                      \"resourceUUID\" : \"907e1746-9f69-40f5-9f2a-313654092a2e\",\r\n" +\r
-                "                      \"artifacts\" : [{\r\n" +\r
-                "                                      \"artifactName\" : \"heat.yaml\",\r\n" +\r
-                "                                      \"artifactType\" : \"HEAT\",\r\n" +\r
-                "                                      \"artifactURL\" : \"/sdc/v1/catalog/services/Testnotificationser1/1.0/" +\r
-                "                                       resourceInstances/testnotificationvf11/artifacts/" +\r
-                "                                       heat.yaml\",\r\n" +\r
-                "                                      \"artifactChecksum\" : \"ODEyNjE4YTMzYzRmMTk2ODVhNTU2NTg3YWEyNmIxMTM\\u003d\",\r\n" +\r
-                "                                      \"artifactDescription\" : \"heat\",\r\n" +\r
-                "                                      \"artifactTimeout\" : 60,\r\n" +\r
-                "                                      \"artifactUUID\" : \"8df6123c-f368-47d3-93be-1972cefbcc35\",\r\n" +\r
-                "                                      \"artifactVersion\" : \"1\"\r\n" +\r
-                "                              }" +\r
-                "                      ]\r\n" +\r
-                "              }\r\n" +\r
-                "      ]}";\r
-    }\r
-}\r
-\r
-class NotificationDataInstance implements INotificationData{\r
-\r
-    private String distributionID;\r
-    private String serviceName;\r
-    private String serviceVersion;\r
-    private String serviceUUID;\r
-    private String serviceDescription;\r
-    private String serviceInvariantUUID;\r
-    private List<JsonContainerResourceInstance> resources;\r
-    private List<ArtifactInfoImpl> serviceArtifacts;\r
-    private String workloadContext;\r
-\r
-    @Override\r
-    public String getDistributionID() {\r
-        return distributionID;\r
-    }\r
-\r
-    @Override\r
-    public String getServiceName() {\r
-        return serviceName;\r
-    }\r
-\r
-    @Override\r
-    public String getServiceVersion() {\r
-        return serviceVersion;\r
-    }\r
-\r
-    @Override\r
-    public String getServiceUUID() {\r
-        return serviceUUID;\r
-    }\r
-\r
-    public void setDistributionID(String distributionID) {\r
-        this.distributionID = distributionID;\r
-    }\r
-\r
-    public void setServiceName(String serviceName) {\r
-        this.serviceName = serviceName;\r
-    }\r
-\r
-    public void setServiceVersion(String serviceVersion) {\r
-        this.serviceVersion = serviceVersion;\r
-    }\r
-\r
-    public void setServiceUUID(String serviceUUID) {\r
-        this.serviceUUID = serviceUUID;\r
-    }\r
-\r
-\r
-\r
-    public String getServiceDescription() {\r
-        return serviceDescription;\r
-    }\r
-\r
-    public void setServiceDescription(String serviceDescription) {\r
-        this.serviceDescription = serviceDescription;\r
-    }\r
-\r
-    public String getWorkloadContext() {\r
-        return workloadContext;\r
-    }\r
-\r
-    public void setWorkloadContext(String workloadContext) {\r
-        this.workloadContext = workloadContext;\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        return "NotificationDataImpl [distributionID=" + distributionID + ", serviceName=" + serviceName\r
-                + ", serviceVersion=" + serviceVersion + ", serviceUUID=" + serviceUUID + ", serviceDescription="\r
-                + serviceDescription + ", serviceInvariantUUID=" + serviceInvariantUUID + ", resources=" + resources\r
-                + ", serviceArtifacts=" + serviceArtifacts + ", workloadContext=" + workloadContext + "]";\r
-    }\r
-\r
-    @Override\r
-    public List<IResourceInstance> getResources() {\r
-        List<IResourceInstance> ret = new ArrayList<IResourceInstance>();\r
-        if( resources != null ){\r
-            ret.addAll(resources);\r
-        }\r
-        return ret;\r
-    }\r
-\r
-    public void setResources(List<IResourceInstance> resources){\r
-        this.resources = JsonContainerResourceInstance.convertToJsonContainer(resources);\r
-    }\r
-\r
-    public List<JsonContainerResourceInstance> getResourcesImpl(){\r
-        return resources;\r
-    }\r
-\r
-    List<ArtifactInfoImpl> getServiceArtifactsImpl(){\r
-        return serviceArtifacts;\r
-    }\r
-\r
-    @Override\r
-    public List<IArtifactInfo> getServiceArtifacts() {\r
-\r
-        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
-        if( serviceArtifacts != null ){\r
-            temp.addAll(serviceArtifacts);\r
-        }\r
-        return temp;\r
-    }\r
-\r
-    void setServiceArtifacts(List<ArtifactInfoImpl> relevantServiceArtifacts) {\r
-        serviceArtifacts = relevantServiceArtifacts;\r
-\r
-    }\r
-\r
-    @Override\r
-    public String getServiceInvariantUUID() {\r
-        return serviceInvariantUUID;\r
-    }\r
-\r
-\r
-    public void setServiceInvariantUUID(String serviceInvariantUUID) {\r
-        this.serviceInvariantUUID = serviceInvariantUUID;\r
-    }\r
-    @Override\r
-    public IArtifactInfo getArtifactMetadataByUUID(String artifactUUID){\r
-        IArtifactInfo ret = findArtifactInfoByUUID(artifactUUID, serviceArtifacts);\r
-        if( ret == null && resources != null ){\r
-            for( JsonContainerResourceInstance currResourceInstance : resources ){\r
-                ret = findArtifactInfoByUUID(artifactUUID, currResourceInstance.getArtifactsImpl());\r
-                if( ret != null ){\r
-                    break;\r
-                }\r
-            }\r
-        }\r
-        return ret;\r
-\r
-    }\r
-\r
-    private IArtifactInfo findArtifactInfoByUUID(String artifactUUID, List<ArtifactInfoImpl> listToCheck) {\r
-        IArtifactInfo ret = null;\r
-        if( listToCheck != null ){\r
-            for(IArtifactInfo curr: listToCheck ){\r
-                if(curr.getArtifactUUID().equals(artifactUUID) ){\r
-                    ret = curr;\r
-                    break;\r
-                }\r
-            }\r
-        }\r
-        return ret;\r
-    }\r
-}\r
-\r
-class ArtifactInfoImpl implements IArtifactInfo{\r
-\r
-    private String artifactName;\r
-    private String artifactType;\r
-    private String artifactURL;\r
-    private String artifactChecksum;\r
-    private String artifactDescription;\r
-    private Integer artifactTimeout;\r
-    private String artifactVersion;\r
-    private String artifactUUID;\r
-    private String generatedFromUUID;\r
-    private IArtifactInfo generatedArtifact;\r
-    private List<String> relatedArtifacts;\r
-    private List<IArtifactInfo> relatedArtifactsInfo;\r
-    ArtifactInfoImpl(){}\r
-\r
-    private ArtifactInfoImpl(IArtifactInfo iArtifactInfo){\r
-        artifactName = iArtifactInfo.getArtifactName();\r
-        artifactType = iArtifactInfo.getArtifactType();\r
-        artifactURL = iArtifactInfo.getArtifactURL();\r
-        artifactChecksum = iArtifactInfo.getArtifactChecksum();\r
-        artifactDescription = iArtifactInfo.getArtifactDescription();\r
-        artifactTimeout = iArtifactInfo.getArtifactTimeout();\r
-        artifactVersion = iArtifactInfo.getArtifactVersion();\r
-        artifactUUID = iArtifactInfo.getArtifactUUID();\r
-        generatedArtifact = iArtifactInfo.getGeneratedArtifact();\r
-        relatedArtifactsInfo = iArtifactInfo.getRelatedArtifacts();\r
-        relatedArtifacts = fillRelatedArtifactsUUID(relatedArtifactsInfo);\r
-\r
-    }\r
-\r
-\r
-    private List<String> fillRelatedArtifactsUUID(List<IArtifactInfo> relatedArtifactsInfo) {\r
-        List<String> relatedArtifactsUUID = null;\r
-        if( relatedArtifactsInfo != null && !relatedArtifactsInfo.isEmpty()){\r
-            relatedArtifactsUUID = new ArrayList<>();\r
-            for(IArtifactInfo curr: relatedArtifactsInfo){\r
-                relatedArtifactsUUID.add(curr.getArtifactUUID());\r
-            }\r
-        }\r
-        return relatedArtifactsUUID;\r
-    }\r
-\r
-    public static List<ArtifactInfoImpl> convertToArtifactInfoImpl(List<IArtifactInfo> list){\r
-        List<ArtifactInfoImpl> ret = new ArrayList<ArtifactInfoImpl>();\r
-        if( list != null ){\r
-            for(IArtifactInfo artifactInfo : list  ){\r
-                ret.add(new ArtifactInfoImpl(artifactInfo));\r
-            }\r
-        }\r
-        return ret;\r
-    }\r
-\r
-    public String getArtifactName() {\r
-        return artifactName;\r
-    }\r
-\r
-    public void setArtifactName(String artifactName) {\r
-        this.artifactName = artifactName;\r
-    }\r
-\r
-    public String getArtifactType() {\r
-        return artifactType;\r
-    }\r
-\r
-    public void setArtifactType(String artifactType) {\r
-        this.artifactType = artifactType;\r
-    }\r
-\r
-    public String getArtifactURL() {\r
-        return artifactURL;\r
-    }\r
-\r
-    public void setArtifactURL(String artifactURL) {\r
-        this.artifactURL = artifactURL;\r
-    }\r
-\r
-    public String getArtifactChecksum() {\r
-        return artifactChecksum;\r
-    }\r
-\r
-    public void setArtifactChecksum(String artifactChecksum) {\r
-        this.artifactChecksum = artifactChecksum;\r
-    }\r
-\r
-    public String getArtifactDescription() {\r
-        return artifactDescription;\r
-    }\r
-\r
-    public void setArtifactDescription(String artifactDescription) {\r
-        this.artifactDescription = artifactDescription;\r
-    }\r
-\r
-    public Integer getArtifactTimeout() {\r
-        return artifactTimeout;\r
-    }\r
-\r
-    public void setArtifactTimeout(Integer artifactTimeout) {\r
-        this.artifactTimeout = artifactTimeout;\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        return "BaseArtifactInfoImpl [artifactName=" + artifactName\r
-                + ", artifactType=" + artifactType + ", artifactURL="\r
-                + artifactURL + ", artifactChecksum=" + artifactChecksum\r
-                + ", artifactDescription=" + artifactDescription\r
-                + ", artifactVersion=" + artifactVersion\r
-                + ", artifactUUID=" + artifactUUID\r
-                + ", artifactTimeout=" + artifactTimeout + "]";\r
-    }\r
-\r
-    public String getArtifactVersion() {\r
-        return artifactVersion;\r
-    }\r
-\r
-    public void setArtifactVersion(String artifactVersion) {\r
-        this.artifactVersion = artifactVersion;\r
-    }\r
-\r
-    public String getArtifactUUID() {\r
-        return artifactUUID;\r
-    }\r
-\r
-    public void setArtifactUUID(String artifactUUID) {\r
-        this.artifactUUID = artifactUUID;\r
-    }\r
-\r
-    public String getGeneratedFromUUID() {\r
-        return generatedFromUUID;\r
-    }\r
-\r
-    public void setGeneratedFromUUID(String generatedFromUUID) {\r
-        this.generatedFromUUID = generatedFromUUID;\r
-    }\r
-\r
-    public IArtifactInfo getGeneratedArtifact() {\r
-        return generatedArtifact;\r
-    }\r
-\r
-    public void setGeneratedArtifact(IArtifactInfo generatedArtifact) {\r
-        this.generatedArtifact = generatedArtifact;\r
-    }\r
-\r
-    public List<IArtifactInfo> getRelatedArtifacts(){\r
-        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
-        if( relatedArtifactsInfo != null ){\r
-            temp.addAll(relatedArtifactsInfo);\r
-        }\r
-        return temp;\r
-    }\r
-\r
-    public void setRelatedArtifacts(List<String> relatedArtifacts) {\r
-        this.relatedArtifacts = relatedArtifacts;\r
-    }\r
-\r
-    public void setRelatedArtifactsInfo(List<IArtifactInfo> relatedArtifactsInfo) {\r
-        this.relatedArtifactsInfo = relatedArtifactsInfo;\r
-    }\r
-\r
-    public List<String> getRelatedArtifactsUUID(){\r
-        return relatedArtifacts;\r
-    }\r
-}\r
-\r
-class JsonContainerResourceInstance implements IResourceInstance{\r
-    JsonContainerResourceInstance (){}\r
-    private String resourceInstanceName;\r
-    private String resourceCustomizationUUID;\r
-    private String resourceName;\r
-    private String resourceVersion;\r
-    private String resoucreType;\r
-    private String resourceUUID;\r
-    private String resourceInvariantUUID;\r
-    private String category;\r
-    private String subcategory;\r
-    private List<ArtifactInfoImpl> artifacts;\r
-\r
-    private JsonContainerResourceInstance(IResourceInstance resourceInstance){\r
-        resourceInstanceName = resourceInstance.getResourceInstanceName();\r
-        resourceCustomizationUUID = resourceInstance.getResourceCustomizationUUID();\r
-        resourceName = resourceInstance.getResourceName();\r
-        resourceVersion = resourceInstance.getResourceVersion();\r
-        resoucreType = resourceInstance.getResourceType();\r
-        resourceUUID = resourceInstance.getResourceUUID();\r
-        resourceInvariantUUID = resourceInstance.getResourceInvariantUUID();\r
-        category = resourceInstance.getCategory();\r
-        subcategory = resourceInstance.getSubcategory();\r
-        artifacts = ArtifactInfoImpl.convertToArtifactInfoImpl(resourceInstance.getArtifacts());\r
-    }\r
-\r
-    public static List<JsonContainerResourceInstance> convertToJsonContainer(List<IResourceInstance> resources){\r
-        List<JsonContainerResourceInstance> buildResources = new ArrayList<JsonContainerResourceInstance>();\r
-        if( resources != null ){\r
-            for( IResourceInstance resourceInstance : resources ){\r
-                buildResources.add(new JsonContainerResourceInstance(resourceInstance));\r
-            }\r
-        }\r
-        return buildResources;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceInstanceName() {\r
-        return resourceInstanceName;\r
-    }\r
-\r
-    public void setResourceInstanceName(String resourceInstanceName) {\r
-        this.resourceInstanceName = resourceInstanceName;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceName() {\r
-        return resourceName;\r
-    }\r
-\r
-    public void setResourceName(String resourceName) {\r
-        this.resourceName = resourceName;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceVersion() {\r
-        return resourceVersion;\r
-    }\r
-\r
-    public void setResourceVersion(String resourceVersion) {\r
-        this.resourceVersion = resourceVersion;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceType() {\r
-        return resoucreType;\r
-    }\r
-\r
-    public void setResoucreType(String resoucreType) {\r
-        this.resoucreType = resoucreType;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceUUID() {\r
-        return resourceUUID;\r
-    }\r
-\r
-    public void setResourceUUID(String resourceUUID) {\r
-        this.resourceUUID = resourceUUID;\r
-    }\r
-\r
-    @Override\r
-    public List<IArtifactInfo> getArtifacts() {\r
-        List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>();\r
-        if( artifacts != null ){\r
-            temp.addAll(artifacts);\r
-        }\r
-        return temp;\r
-    }\r
-\r
-    public void setArtifacts(List<ArtifactInfoImpl> artifacts) {\r
-        this.artifacts = artifacts;\r
-    }\r
-\r
-    public List<ArtifactInfoImpl> getArtifactsImpl(){\r
-        return artifacts;\r
-    }\r
-\r
-    @Override\r
-    public String getResourceInvariantUUID() {\r
-        return resourceInvariantUUID;\r
-    }\r
-\r
-    public void setResourceInvariantUUID(String resourceInvariantUUID) {\r
-        this.resourceInvariantUUID = resourceInvariantUUID;\r
-    }\r
-    public String getResourceCustomizationUUID() {\r
-        return resourceCustomizationUUID;\r
-    }\r
-\r
-    public void setResourceCustomizationUUID(String resourceCustomizationUUID) {\r
-        this.resourceCustomizationUUID = resourceCustomizationUUID;\r
-    }\r
-\r
-    public String getCategory() {\r
-        return category;\r
-    }\r
-\r
-    public void setCategory(String category) {\r
-        this.category = category;\r
-    }\r
-\r
-    public String getSubcategory() {\r
-        return subcategory;\r
-    }\r
-\r
-    public void setSubcategory(String subcategory) {\r
-        this.subcategory = subcategory;\r
-    }\r
-}\r
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 European Software Marketing Ltd.
+ * ================================================================================
+ * 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.aai.modelloader.notification;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Properties;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.internal.util.reflection.Whitebox;
+import org.onap.aai.modelloader.config.ModelLoaderConfig;
+import org.onap.aai.modelloader.entity.model.BabelArtifactParsingException;
+import org.onap.aai.modelloader.fixture.NotificationDataFixtureBuilder;
+import org.onap.sdc.api.IDistributionClient;
+import org.onap.sdc.api.notification.INotificationData;
+
+/**
+ * Tests {@link EventCallback}
+ */
+public class EventCallbackTest {
+
+    private static final String CONFIG_FILE = "model-loader.properties";
+
+    private ModelLoaderConfig config;
+    private Properties configProperties;
+    private EventCallback eventCallback;
+
+    private ArtifactDeploymentManager mockArtifactDeploymentManager;
+    private ArtifactDownloadManager mockArtifactDownloadManager;
+    private IDistributionClient mockDistributionClient;
+
+    @Before
+    public void setup() throws IOException {
+        configProperties = new Properties();
+        configProperties.load(this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE));
+        config = new ModelLoaderConfig(configProperties, null);
+
+        mockArtifactDeploymentManager = mock(ArtifactDeploymentManager.class);
+        mockArtifactDownloadManager = mock(ArtifactDownloadManager.class);
+        mockDistributionClient = mock(IDistributionClient.class);
+
+        eventCallback = new EventCallback(mockDistributionClient, config);
+
+        Whitebox.setInternalState(eventCallback, "artifactDeploymentManager", mockArtifactDeploymentManager);
+        Whitebox.setInternalState(eventCallback, "artifactDownloadManager", mockArtifactDownloadManager);
+    }
+
+    @After
+    public void tearDown() {
+        config = null;
+        configProperties = null;
+        eventCallback = null;
+        mockArtifactDeploymentManager = null;
+        mockArtifactDownloadManager = null;
+        mockDistributionClient = null;
+    }
+
+    @Test
+    @SuppressWarnings("unchecked")
+    public void activateCallback_downloadFails() {
+        INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();
+
+        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class),
+                any(List.class), any(List.class))).thenReturn(false);
+
+        eventCallback.activateCallback(data);
+
+        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class),
+                any(List.class), any(List.class));
+        Mockito.verifyZeroInteractions(mockArtifactDeploymentManager);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void activateCallback() throws BabelArtifactParsingException {
+        INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();
+
+        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class),
+                any(List.class), any(List.class))).thenReturn(true);
+
+        when(mockArtifactDeploymentManager.deploy(any(INotificationData.class), any(List.class), any(List.class),
+                any(List.class))).thenReturn(true);
+
+        eventCallback.activateCallback(data);
+
+        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class),
+                any(List.class), any(List.class));
+        verify(mockArtifactDeploymentManager).deploy(any(INotificationData.class), any(List.class), any(List.class),
+                any(List.class));
+    }
+}