AT&T 1712 and 1802 release code
[so.git] / packages / arquillian-unit-tests / src / test / java / org / openecomp / mso / global_tests / asdc / notif_emulator / DistributionClientEmulator.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.mso.global_tests.asdc.notif_emulator;
22
23 import java.io.File;
24 import java.io.FileInputStream;
25 import java.io.IOException;
26 import java.io.InputStream;
27 import java.util.LinkedList;
28 import java.util.List;
29
30 import org.apache.commons.io.IOUtils;
31 import org.openecomp.mso.asdc.installer.IVfModuleData;
32 import org.openecomp.sdc.api.IDistributionClient;
33 import org.openecomp.sdc.api.consumer.IComponentDoneStatusMessage;
34 import org.openecomp.sdc.api.consumer.IConfiguration;
35 import org.openecomp.sdc.api.consumer.IDistributionStatusMessage;
36 import org.openecomp.sdc.api.consumer.IFinalDistrStatusMessage;
37 import org.openecomp.sdc.api.consumer.INotificationCallback;
38 import org.openecomp.sdc.api.consumer.IStatusCallback;
39 import org.openecomp.sdc.api.notification.IArtifactInfo;
40 import org.openecomp.sdc.api.notification.IVfModuleMetadata;
41 import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;
42 import org.openecomp.sdc.api.results.IDistributionClientResult;
43 import org.openecomp.sdc.impl.DistributionClientDownloadResultImpl;
44 import org.openecomp.sdc.impl.DistributionClientResultImpl;
45 import org.openecomp.sdc.utils.DistributionActionResultEnum;
46
47 public class DistributionClientEmulator implements IDistributionClient {
48
49         private String resourcePath;
50
51         private List<IVfModuleData> listVFModuleMetaData;
52
53         private List<IDistributionStatusMessage> distributionMessageReceived = new LinkedList<>();
54
55         public DistributionClientEmulator(String notifFolderInResource) {
56
57                 resourcePath = notifFolderInResource;
58         }
59
60         public List<IDistributionStatusMessage> getDistributionMessageReceived() {
61                 return distributionMessageReceived;
62         }
63         
64         @Override
65         public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] arg0) {
66                 return null;
67         }
68
69         /* @Override
70         public List<IVfModuleData> decodeVfModuleArtifact(byte[] arg0) {
71                 try {
72                         listVFModuleMetaData = new ObjectMapper().readValue(arg0, new TypeReference<List<JsonVfModuleMetaData>>(){});
73                         return listVFModuleMetaData;
74
75                 } catch (JsonParseException e) {
76                         e.printStackTrace();
77                 } catch (JsonMappingException e) {
78                         e.printStackTrace();
79                 } catch (IOException e) {
80                         e.printStackTrace();
81                 }
82                 return null;
83         } */
84
85         public List<IVfModuleData> getListVFModuleMetaData() {
86                 return listVFModuleMetaData;
87         }
88
89     @Override
90         public IDistributionClientDownloadResult download (IArtifactInfo arg0) {
91
92                 
93                 //String filename = resourcePath+"/artifacts/"+arg0.getArtifactURL();
94                 String filename = arg0.getArtifactURL();
95                 System.out.println("Emulating the download from resources files:"+filename);
96                 
97                 InputStream inputStream = null;
98                 
99                 if(arg0.getArtifactName().equals("service_Rg516VmmscSrvc_csar.csar")){
100                         try{
101                                 inputStream = new FileInputStream(System.getProperty("java.io.tmpdir") + File.separator + "service_Rg516VmmscSrvc_csar.csar");
102                         }catch(Exception e){
103                                 System.out.println("Error " + e.getMessage());
104                         }
105                 }else{
106                 
107                         inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath + filename);
108                 }
109
110                 if (inputStream == null) {
111                         System.out.println("InputStream is NULL for:"+filename);
112                 }
113                 try {
114                         return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, DistributionActionResultEnum.SUCCESS.name(),arg0.getArtifactName(),IOUtils.toByteArray(inputStream));
115                 } catch (IOException e) {
116                         
117                         e.printStackTrace();
118                         }
119                                 return null;
120                 }
121
122         @Override
123         public IConfiguration getConfiguration() {
124                 return null;
125         }
126
127         @Override
128         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1) {
129                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
130         }
131
132         @Override
133         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1, IStatusCallback arg2) {
134                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
135         }
136
137         @Override
138         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0) {
139                 this.distributionMessageReceived.add(arg0);
140                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
141         }
142
143         @Override
144         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0, String arg1) {
145                 this.distributionMessageReceived.add(arg0);
146                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
147         }
148
149         @Override
150         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0) {
151                 this.distributionMessageReceived.add(arg0);
152                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
153         }
154
155         @Override
156         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0, String arg1) {
157                 this.distributionMessageReceived.add(arg0);
158                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
159         }
160
161         @Override
162         public IDistributionClientResult start() {
163                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
164         }
165
166         @Override
167         public IDistributionClientResult stop() {
168                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
169
170         }
171
172         @Override
173         public IDistributionClientResult updateConfiguration(IConfiguration arg0) {
174                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
175         }
176
177         @Override
178         public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage arg0) {
179                 // TODO Auto-generated method stub
180                 return null;
181         }
182
183         @Override
184         public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage arg0, String arg1) {
185                 // TODO Auto-generated method stub
186                 return null;
187         }
188
189         @Override
190         public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage arg0) {
191                 // TODO Auto-generated method stub
192                 return null;
193         }
194
195         @Override
196         public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage arg0, String arg1) {
197                 // TODO Auto-generated method stub
198                 return null;
199         }
200 }