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