Initial OpenECOMP MSO commit
[so.git] / packages / arquillian-unit-tests / src / test / java / org / openecomp / mso / global_tests / asdc / notif_emulator / DistributionClientEmulator.java
1 package org.openecomp.mso.global_tests.asdc.notif_emulator;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.LinkedList;
6 import java.util.List;
7
8 import org.apache.commons.io.IOUtils;
9 import org.codehaus.jackson.JsonParseException;
10 import org.codehaus.jackson.map.JsonMappingException;
11 import org.codehaus.jackson.map.ObjectMapper;
12 import org.codehaus.jackson.type.TypeReference;
13 import org.openecomp.sdc.api.IDistributionClient;
14 import org.openecomp.sdc.api.consumer.IConfiguration;
15 import org.openecomp.sdc.api.consumer.IDistributionStatusMessage;
16 import org.openecomp.sdc.api.consumer.INotificationCallback;
17 import org.openecomp.sdc.api.notification.IArtifactInfo;
18 import org.openecomp.sdc.api.notification.IVfModuleMetadata;
19 import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;
20 import org.openecomp.sdc.api.results.IDistributionClientResult;
21 import org.openecomp.sdc.impl.DistributionClientDownloadResultImpl;
22 import org.openecomp.sdc.impl.DistributionClientResultImpl;
23 import org.openecomp.sdc.utils.DistributionActionResultEnum;
24
25 public class DistributionClientEmulator implements IDistributionClient {
26
27         private String resourcePath;
28         
29         private List<IVfModuleMetadata> listVFModuleMetaData;
30         
31         private List<IDistributionStatusMessage> distributionMessageReceived = new LinkedList<>();
32         
33         public DistributionClientEmulator(String notifFolderInResource) {
34                 
35                 resourcePath = notifFolderInResource;
36         }
37
38         public List<IDistributionStatusMessage> getDistributionMessageReceived() {
39                 return distributionMessageReceived;
40         }
41
42         @Override
43         public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] arg0) {
44                 try {
45                         listVFModuleMetaData = new ObjectMapper().readValue(arg0, new TypeReference<List<JsonVfModuleMetaData>>(){});
46                         return listVFModuleMetaData;
47                          
48                 } catch (JsonParseException e) {
49                         e.printStackTrace();
50                 } catch (JsonMappingException e) {
51                         e.printStackTrace();
52                 } catch (IOException e) {
53                         e.printStackTrace();
54                 }
55                 return null;
56         }
57         
58         public List<IVfModuleMetadata> getListVFModuleMetaData() {
59                 return listVFModuleMetaData;
60         }
61
62         @Override
63         public IDistributionClientDownloadResult download (IArtifactInfo arg0) {
64                 
65                 
66                 //String filename = resourcePath+"/artifacts/"+arg0.getArtifactURL();
67                 String filename = arg0.getArtifactURL();
68                 System.out.println("Emulating the download from resources files:"+filename);
69                 InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath+"/artifacts/"+filename);
70                 
71                 if (inputStream == null) {
72                         System.out.println("InputStream is NULL for:"+filename);
73                 }
74                 try {
75                         return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, DistributionActionResultEnum.SUCCESS.name(),arg0.getArtifactName(),IOUtils.toByteArray(inputStream));
76                 } catch (IOException e) {
77                         
78                         e.printStackTrace();
79                 }
80                 return null;
81         }
82
83         @Override
84         public IConfiguration getConfiguration() {
85                 return null;
86         }
87
88         @Override
89         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1) {
90                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
91         }
92
93         @Override
94         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0) {
95                 this.distributionMessageReceived.add(arg0);
96                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
97         }
98
99         @Override
100         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0, String arg1) {
101                 this.distributionMessageReceived.add(arg0);
102                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
103         }
104
105         @Override
106         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0) {
107                 this.distributionMessageReceived.add(arg0);
108                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
109         }
110
111         @Override
112         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0, String arg1) {
113                 this.distributionMessageReceived.add(arg0);
114                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
115         }
116
117         @Override
118         public IDistributionClientResult start() {
119                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
120         }
121
122         @Override
123         public IDistributionClientResult stop() {
124                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
125                 
126         }
127
128         @Override
129         public IDistributionClientResult updateConfiguration(IConfiguration arg0) {
130                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
131         }
132
133 }