[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / externalApis / GetAssetServlet.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.sdc.externalApis;
22
23 import static org.testng.AssertJUnit.assertEquals;
24
25 import java.io.InputStream;
26 import java.util.ArrayList;
27 import java.util.HashMap;
28 import java.util.List;
29 import java.util.Map;
30
31 import org.apache.commons.codec.binary.Base64;
32 import org.apache.commons.io.IOUtils;
33 import org.apache.http.HttpResponse;
34 import org.apache.http.client.methods.HttpGet;
35 import org.apache.http.impl.client.CloseableHttpClient;
36 import org.apache.http.impl.client.HttpClients;
37 import org.codehaus.jackson.map.ObjectMapper;
38 import org.junit.Rule;
39 import org.junit.rules.TestName;
40 import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition;
41 import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
42 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
43 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
44 import org.openecomp.sdc.be.model.ArtifactUiDownloadData;
45 import org.openecomp.sdc.be.model.Resource;
46 import org.openecomp.sdc.be.model.Service;
47 import org.openecomp.sdc.be.model.User;
48 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
49 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
50 import org.openecomp.sdc.ci.tests.api.Urls;
51 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
52 import org.openecomp.sdc.ci.tests.datatypes.ResourceAssetStructure;
53 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
54 import org.openecomp.sdc.ci.tests.datatypes.ServiceAssetStructure;
55 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
56 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
57 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
58 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
59 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedExternalAudit;
60 import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
61 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
62 import org.openecomp.sdc.ci.tests.utils.Utils;
63 import org.openecomp.sdc.ci.tests.utils.cassandra.CassandraUtils;
64 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
65 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
66 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
67 import org.openecomp.sdc.ci.tests.utils.rest.AssetRestUtils;
68 import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
69 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
70 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
71 import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
72 import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
73 import org.openecomp.sdc.common.api.Constants;
74 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
75 import org.testng.annotations.BeforeMethod;
76 import org.testng.annotations.Test;
77
78 import com.google.gson.Gson;
79
80 public class GetAssetServlet extends ComponentBaseTest {
81
82         protected User sdncUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
83         protected User sdncAdminUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
84         protected ConsumerDataDefinition consumerDataDefinition;
85
86         @Rule
87         public static TestName name = new TestName();
88
89         public GetAssetServlet() {
90                 super(name, GetAssetServlet.class.getName());
91         }
92
93         Gson gson = new Gson();
94
95 //      @BeforeMethod
96 //      public void setup() throws Exception {
97 //
98 //              AtomicOperationUtils.createDefaultConsumer(true);
99 //
100 //      }
101
102         @Test // (enabled = false)
103         public void getResourceAssetSuccess() throws Exception {
104
105 //              CassandraUtils.truncateAllKeyspaces();
106                 List<String> expectedAssetNamesList = new ArrayList<>();
107
108                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
109                 resourceDetails.setName("ciResource1");
110                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
111                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
112                 BaseRestUtils.checkCreateResponse(createResource);
113                 Resource resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
114                 expectedAssetNamesList.add(resource.getName());
115
116                 resourceDetails.setName("ciResource2");
117                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
118                 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
119                 BaseRestUtils.checkCreateResponse(createResource);
120                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
121                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
122                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
123                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
124                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
125                 expectedAssetNamesList.add(resource.getName());
126                 expectedAssetNamesList.add(resource.getName());
127
128                 resourceDetails.setName("ciResource3");
129                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
130                 createResource = ResourceRestUtils.createResource(resourceDetails,
131                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
132                 BaseRestUtils.checkCreateResponse(createResource);
133                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
134                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
135                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
136                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
137                 expectedAssetNamesList.add(resource.getName());
138
139                 resourceDetails.setName("ciResource4");
140                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
141                 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
142                 BaseRestUtils.checkCreateResponse(createResource);
143                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
144                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
145                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
146                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
147                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
148                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
149                 expectedAssetNamesList.add(resource.getName());
150
151                 resourceDetails.setName("ciResource5");
152                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
153                 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
154                 BaseRestUtils.checkCreateResponse(createResource);
155                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
156                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
157                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
158                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
159                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
160                 expectedAssetNamesList.add(resource.getName());
161
162                 resourceDetails.setName("ciResource6");
163                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
164                 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
165                 BaseRestUtils.checkCreateResponse(createResource);
166                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
167                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true).getLeft();
168                 expectedAssetNamesList.add(resource.getName());
169
170                 resourceDetails.setName("ciResource7");
171                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
172                 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
173                 BaseRestUtils.checkCreateResponse(createResource);
174                 resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
175                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
176                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFICATIONREQUEST, true).getLeft();
177                 expectedAssetNamesList.add(resource.getName());
178                 expectedAssetNamesList.add(resource.getName());
179
180                 System.out.println("7 VF resources were created");
181
182                 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES);
183                 BaseRestUtils.checkSuccess(assetResponse);
184
185                 List<ResourceAssetStructure> resourceAssetList = AssetRestUtils.getResourceAssetList(assetResponse);
186                 List<String> getActualAssetNamesList = AssetRestUtils.getResourceNamesList(resourceAssetList);
187                 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
188
189                 AssetRestUtils.checkComponentTypeInObjectList(resourceAssetList, ComponentTypeEnum.RESOURCE);
190
191                 // Validate audit message
192                 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getDefaultAssetListAudit(AssetTypeEnum.RESOURCES, AuditingActionEnum.GET_ASSET_LIST);
193                 Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
194         body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
195         AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_ASSET_LIST.getName(), body);
196
197         }
198
199         @Test // (enabled = false)
200         public void getServiceAssetSuccess() throws Exception {
201
202 //              CassandraUtils.truncateAllKeyspaces();
203                 List<String> expectedAssetNamesList = new ArrayList<>();
204                 ArtifactReqDetails artifactDetails = ElementFactory.getArtifactByType(ArtifactTypeEnum.OTHER, ArtifactTypeEnum.OTHER, true);
205
206                 ServiceReqDetails serviceDetails = ElementFactory.getDefaultService();
207                 serviceDetails.setName("ciService1");
208                 RestResponse createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
209                 BaseRestUtils.checkCreateResponse(createService);
210                 Service service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
211                 expectedAssetNamesList.add(service.getName());
212
213                 serviceDetails.setName("ciService2");
214                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
215                 BaseRestUtils.checkCreateResponse(createService);
216                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
217                 RestResponse addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
218                 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
219                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
220                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
221                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
222                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
223                 expectedAssetNamesList.add(service.getName());
224                 expectedAssetNamesList.add(service.getName());
225
226                 serviceDetails.setName("ciService3");
227                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
228                 BaseRestUtils.checkCreateResponse(createService);
229                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
230                 addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
231                 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
232                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
233                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
234                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
235                 expectedAssetNamesList.add(service.getName());
236
237                 serviceDetails.setName("ciService4");
238                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
239                 BaseRestUtils.checkCreateResponse(createService);
240                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
241                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
242                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
243                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
244                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
245                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
246                 expectedAssetNamesList.add(service.getName());
247
248                 serviceDetails.setName("ciService5");
249                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
250                 BaseRestUtils.checkCreateResponse(createService);
251                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
252                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
253                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
254                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
255                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
256                 expectedAssetNamesList.add(service.getName());
257
258                 serviceDetails.setName("ciService6");
259                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
260                 BaseRestUtils.checkCreateResponse(createService);
261                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
262                 addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
263                 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
264                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true).getLeft();
265                 expectedAssetNamesList.add(service.getName());
266
267                 serviceDetails.setName("ciService7");
268                 createService = ServiceRestUtils.createService(serviceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
269                 BaseRestUtils.checkCreateResponse(createService);
270                 service = ResponseParser.parseToObjectUsingMapper(createService.getResponse(), Service.class);
271                 addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
272                 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
273                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
274                 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFICATIONREQUEST, true).getLeft();
275                 expectedAssetNamesList.add(service.getName());
276                 expectedAssetNamesList.add(service.getName());
277
278                 System.out.println("7 Services were created");
279
280                 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES);
281                 BaseRestUtils.checkSuccess(assetResponse);
282
283                 List<ServiceAssetStructure> serviceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
284                 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(serviceAssetList);
285                 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
286
287                 // Validate audit message
288                 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getDefaultAssetListAudit(AssetTypeEnum.SERVICES, AuditingActionEnum.GET_ASSET_LIST);
289                 Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
290         body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
291         AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_ASSET_LIST.getName(), body);
292
293         }
294
295         @Test
296         public void getToscaModelSuccess() throws Exception {
297
298                 CloseableHttpClient httpclient = HttpClients.createDefault();
299                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
300 //              resourceDetails.setName("ciResource11");
301                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
302                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, sdncUserDetails);
303                 BaseRestUtils.checkCreateResponse(createResource);
304                 Resource resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
305                 HttpResponse assetResponse = AssetRestUtils.getComponentToscaModel(AssetTypeEnum.RESOURCES, resource.getUUID());
306                 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
307                 String artId = resource.getToscaArtifacts().get("assettoscacsar").getEsId();
308                 String url = String.format(Urls.UI_DOWNLOAD_RESOURCE_ARTIFACT, config.getCatalogBeHost(), config.getCatalogBePort(), resource.getUniqueId(), artId);
309                 HttpGet httpGet = createGetRequest(url);
310                 HttpResponse response = httpclient.execute(httpGet);
311                 InputStream inputStream = response.getEntity().getContent();
312                 ArtifactUiDownloadData artifactUiDownloadData = getArtifactUiDownloadData(IOUtils.toString(inputStream));
313                 assetResponse = AssetRestUtils.getComponentToscaModel(AssetTypeEnum.RESOURCES, resource.getUUID());
314                 inputStream = assetResponse.getEntity().getContent();
315                 int len = (int) assetResponse.getEntity().getContentLength();
316                 byte[] res = new byte[len];
317                 inputStream.read(res, 0, len);
318                 byte[] fromUiDownload = artifactUiDownloadData.getBase64Contents().getBytes();
319                 assertEquals(Base64.encodeBase64(res), fromUiDownload);
320                 String fileName = assetResponse.getFirstHeader(Constants.CONTENT_DISPOSITION_HEADER).getValue();
321                 assertEquals(fileName, new StringBuilder().append("attachment; filename=\"")
322                                 .append(artifactUiDownloadData.getArtifactName()).append("\"").toString());
323         }
324
325         private HttpGet createGetRequest(String url) {
326                 HttpGet httpGet = new HttpGet(url);
327                 httpGet.addHeader(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
328                 return httpGet;
329         }
330
331         private ArtifactUiDownloadData getArtifactUiDownloadData(String artifactUiDownloadDataStr) throws Exception {
332
333                 ObjectMapper mapper = new ObjectMapper();
334                 try {
335                         ArtifactUiDownloadData artifactUiDownloadData = mapper.readValue(artifactUiDownloadDataStr,
336                                         ArtifactUiDownloadData.class);
337                         return artifactUiDownloadData;
338                 } catch (Exception e) {
339                         e.printStackTrace();
340                 }
341                 return null;
342         }
343 }