2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.resources;
23 import fj.data.Either;
24 import static org.junit.Assert.fail;
25 import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
26 import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.openecomp.sdc.be.config.ConfigurationManager;
30 import org.openecomp.sdc.be.dao.api.IGenericSearchDAO;
31 import org.openecomp.sdc.be.dao.api.ResourceUploadStatus;
32 import org.openecomp.sdc.be.dao.es.ElasticSearchClient;
33 import org.openecomp.sdc.be.resources.api.IResourceUploader;
34 import org.openecomp.sdc.be.resources.data.ESArtifactData;
35 import org.openecomp.sdc.be.utils.DAOConfDependentTest;
36 import org.springframework.test.context.ContextConfiguration;
37 import org.springframework.test.context.TestExecutionListeners;
38 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
39 import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
40 import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
41 import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
43 import javax.annotation.Resource;
45 import static org.junit.Assert.*;
47 @RunWith(SpringJUnit4ClassRunner.class)
48 @ContextConfiguration("classpath:application-context-test.xml")
49 @TestExecutionListeners(listeners = { DependencyInjectionTestExecutionListener.class,
50 DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class }) // ,
51 // CassandraUnitTestExecutionListener.class})
52 public class ArtifactDaoTest extends DAOConfDependentTest {
53 private static final String TEST_IMAGES_DIRECTORY = "src/test/resources/images";
56 ElasticSearchClient esclient;
58 @Resource(name = "resource-upload")
59 private IResourceUploader daoUploader;
60 ESArtifactData arData;
62 @Resource(name = "resource-dao")
63 private IGenericSearchDAO resourceDAO;
65 private String nodeTypeVersion = "1.0.0";
67 private static ConfigurationManager configurationManager;
70 public void testSaveNewArtifact() {
71 // daoUploader = new ArtifactUploader(artifactDAO);
72 if (daoUploader == null) {
75 String strData = "qweqwqweqw34e4wrwer";
77 String myNodeType = "MyNewNodeType";
79 ESArtifactData arData = new ESArtifactData("artifactNewMarina11", strData.getBytes());
81 ResourceUploadStatus status = daoUploader.saveArtifact(arData, true);
83 assertEquals(status, ResourceUploadStatus.OK);
85 daoUploader.deleteArtifact(arData.getId());
90 * @Test public void testSaveNewImage(){
92 * Path iconPath = Paths.get(TEST_IMAGES_DIRECTORY, "apache.png");
94 * ImageData imageData = new ImageData(); try {
95 * imageData.setData(Files.readAllBytes(iconPath));
96 * imageData.setComponentName("ComponentMarina");
97 * imageData.setComponentVersion("v.1.0");
98 * imageData.setArtifactName("apache.png");
99 * imageData.setResourceCreator("Marina");
100 * imageData.setResourceLastUpdater("Marina"); ResourceUploadStatus status =
101 * daoUploader.saveImage(imageData, true); assertEquals(status,
102 * ResourceUploadStatus.OK); } catch (IOException e) { e.printStackTrace(); }
109 // public void testGetArtifactsList() {
110 // //daoUploader = new ArtifactUploader(artifactDAO);
111 // if(daoUploader==null){
112 // assertTrue(false);
114 // String myNodeType = "MyListNodeType";
118 // //resourceDAO.save(indexedNodeType);
120 // String strData = "qweqwqweqw34e4wrwer";
121 // ESArtifactData arData1 = new ESArtifactData("artifactNewMarina_1",
122 // strData.getBytes());
125 // ResourceUploadStatus status = daoUploader.saveArtifact(arData1, true);
126 // assertEquals(status, ResourceUploadStatus.OK);
128 // ESArtifactData arData2 = new ESArtifactData("artifactNewMarina_2",
129 // strData.getBytes());
132 // status = daoUploader.saveArtifact(arData2, true);
133 // assertEquals(status, ResourceUploadStatus.OK);
135 // ESArtifactData arData3 = new ESArtifactData("artifactNewMarina_3",
136 // strData.getBytes());
139 // status = daoUploader.saveArtifact(arData3, true);
140 // assertEquals(status, ResourceUploadStatus.OK);
144 // Either<List<ESArtifactData>, ResourceUploadStatus> arrArray =
145 // daoUploader.getArtifacts(myNodeType, nodeTypeVersion);
146 // assertTrue(arrArray.isLeft());
148 // assertEquals(3, arrArray.left().value().size());
150 // daoUploader.deleteArtifact(arData1.getId());
151 // daoUploader.deleteArtifact(arData2.getId());
152 // daoUploader.deleteArtifact(arData3.getId());
154 // //resourceDAO.delete(IndexedNodeType.class, indexedNodeType.getId());
160 * @Test public void testGetSeviceArtifactsList() {
162 * if(daoUploader==null){ assertTrue(false); } String strData =
163 * "qweqwqweqw34e4wrwer";
165 * ServiceArtifactData serviceArData = new
166 * ServiceArtifactData("serviceArData", topologyTemplateName,
167 * topologyTemplateVersion, nodeTypeTemplate1, nodeType, nodeTypeVersion,
168 * "YANG", strData.getBytes(), strData.getBytes(), "Marina", null);
169 * //serviceArData.setRefArtifactId(arData.getId()); ResourceUploadStatus
170 * status = daoUploader.saveServiceArtifact(serviceArData, true);
172 * ServiceArtifactData serviceArData1 = new
173 * ServiceArtifactData("serviceArData1", topologyTemplateName,
174 * topologyTemplateVersion, nodeTypeTemplate2, nodeType2, nodeTypeVersion2,
175 * "YANG", strData.getBytes(), strData.getBytes(), "Marina", null);
176 * //serviceArData1.setRefArtifactId(arData4.getId()); status =
177 * daoUploader.saveServiceArtifact(serviceArData1, true);
178 * ServiceArtifactData getServiceData =
179 * daoUploader.getServiceArtifact(serviceArData.getId()).left().value();
181 * List<ServiceArtifactData> arrArray =
182 * daoUploader.getServiceArtifacts(topologyTemplateName,
183 * topologyTemplateVersion).left().value();
185 * assertEquals(2, arrArray.size());
187 * daoUploader.deleteArtifact(serviceArData.getId());
188 * daoUploader.deleteArtifact(serviceArData1.getId());
195 public void testGetArtifact() {
197 String myNodeType = "MyNodeType";
199 // resourceDAO.save(indexedNodeType);
200 ESArtifactData arData = getArtifactData(myNodeType, nodeTypeVersion);
202 ESArtifactData getData = null;
203 Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = daoUploader
204 .getArtifact(myNodeType + "- dassasd" + ":" + nodeTypeVersion + ":updatedArtifact");
205 if (getArtifactStatus.isRight()) {
206 daoUploader.saveArtifact(arData, true);
207 getArtifactStatus = daoUploader.getArtifact(arData.getId());
209 assertNotNull(getArtifactStatus.left().value());
214 * @Test public void testGetSeviceArtifact() {
216 * ServiceArtifactData servArData = getServiceArtifactData();
218 * Either<ServiceArtifactData, ResourceUploadStatus>
219 * getServiceArtifactStatus =
220 * daoUploader.getServiceArtifact("MyService:v.1.1:updatedServiceArtifact");
221 * if (!getServiceArtifactStatus.isLeft()){
222 * daoUploader.saveServiceArtifact(servArData, true);
223 * getServiceArtifactStatus =
224 * daoUploader.getServiceArtifact(servArData.getId()); }
226 * assertNotNull(getServiceArtifactStatus.left().value());
228 * daoUploader.deleteArtifact(getServiceArtifactStatus.left().value().getId(
236 * @Test public void testGetSeviceArtifactsCollection() {
238 * prepareTopolgyService(); prepareTestTopolgyService();
239 * Either<ServiceArtifactsDataCollection, ResourceUploadStatus>
240 * getServiceArtifactsCollectionStatus =
241 * daoUploader.getServiceArtifactsCollection(topologyTemplateName,
242 * topologyTemplateVersion); ServiceArtifactsDataCollection serviceAtrifacts
243 * = getServiceArtifactsCollectionStatus.left().value();
245 * Map<String, List<ArtifactData>> map =
246 * serviceAtrifacts.getServiceArtifactDataMap();
248 * List<ArtifactData> list = map.get(nodeType); assertNotNull(list);
249 * assertEquals(2, list.size());
252 * list = map.get(nodeTypeTemplate1 ); assertNotNull(list); assertEquals(1,
255 * list = map.get(nodeTypeTemplate2 ); assertNotNull(list); assertEquals(1,
263 public void testUpdateArtifact() {
264 // daoUploader = new ArtifactUploader(artifactDAO);
265 if (daoUploader == null) {
268 ResourceUploadStatus status = ResourceUploadStatus.OK;
270 String myNodeType = "MyUpdatedNodeType";
272 // resourceDAO.save(indexedNodeType);
274 ESArtifactData arData = getArtifactData(myNodeType, nodeTypeVersion);
275 Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = daoUploader.getArtifact(arData.getId());
277 if (!getArtifactStatus.isLeft())
278 status = daoUploader.saveArtifact(arData, false);
280 String payload1 = "new payloadjfdsgh";
281 arData.setDataAsArray(payload1.getBytes());
283 status = daoUploader.updateArtifact(arData);
285 assertEquals(status, ResourceUploadStatus.OK);
286 // resourceDAO.delete(IndexedNodeType.class, indexedNodeType.getId());
290 private ESArtifactData getArtifactData(String componentName, String componentVersion) {
291 String strData = "qweqwqweqw34e4wrwer";
293 return new ESArtifactData("updatedArtifact", strData.getBytes());
297 * private ServiceArtifactData getServiceArtifactData(){ String strData =
298 * "qweqwqweqw34e4wrwer"; ServiceArtifactData arData = new
299 * ServiceArtifactData("updatedServiceArtifact", "MyService", "v.1.1",
300 * "MyComponentTemplate", "MyComponent", "v.1.1", "YANG",
301 * strData.getBytes(), strData.getBytes(), "Marina", null);
307 * private void prepareTopolgyService(){
309 * List<String> listCap = new ArrayList<String>(); listCap.add("very_evil");
310 * List<String> listCap1 = new ArrayList<String>(); listCap.add("evil");
311 * try{ // Initialize test data IndexedNodeType indexedNodeType = new
312 * IndexedNodeType(); CSARDependency dep = new CSARDependency();
313 * dep.setName(nodeType); dep.setVersion(nodeTypeVersion);
314 * indexedNodeType.setElementId(nodeType);
315 * indexedNodeType.setArchiveName(nodeType);
316 * indexedNodeType.setArchiveVersion(nodeTypeVersion);
317 * indexedNodeType.setCreationDate(new Date());
318 * indexedNodeType.setLastUpdateDate(new Date());
319 * indexedNodeType.setDefaultCapabilities(listCap);
320 * resourceDAO.save(indexedNodeType);
323 * IndexedNodeType indexedNodeType1 = new IndexedNodeType();
324 * indexedNodeType1.setElementId(nodeType2);
325 * indexedNodeType1.setArchiveName(nodeType2);
326 * indexedNodeType1.setArchiveVersion(nodeTypeVersion2); CSARDependency dep1
327 * = new CSARDependency(); dep1.setName(nodeType2);
328 * dep1.setVersion(nodeTypeVersion2); indexedNodeType1.setCreationDate(new
329 * Date()); indexedNodeType1.setLastUpdateDate(new Date());
330 * indexedNodeType1.setDefaultCapabilities(listCap1);
331 * resourceDAO.save(indexedNodeType1);
334 * indexedNodeType.setElementId(nodeType3);
335 * indexedNodeType.setArchiveName(nodeType3);
336 * indexedNodeType.setArchiveVersion(nodeNypeVersion3); CSARDependency dep2
337 * = new CSARDependency(); dep2.setName(nodeType3);
338 * dep2.setVersion(nodeNypeVersion3); indexedNodeType.setCreationDate(new
339 * Date()); indexedNodeType.setLastUpdateDate(new Date());
340 * indexedNodeType.setDefaultCapabilities(null);
341 * resourceDAO.save(indexedNodeType); String osgiliath100Id =
342 * indexedNodeType.getId();
344 * Topology topology = new Topology(); topology.setId(topologyId);
345 * Set<CSARDependency> dependencies = new HashSet<CSARDependency>();
346 * dependencies.add(dep); dependencies.add(dep2); dependencies.add(dep1);
347 * topology.setDependencies(dependencies); Map<String, NodeTemplate>
348 * nodeTemplates = new HashMap <String, NodeTemplate>();
350 * NodeTemplate template1 = new NodeTemplate(nodeType, null, null, null,
351 * null, null, null); template1.setName(nodeTypeTemplate1);
352 * nodeTemplates.put(nodeTypeTemplate1, template1 );
354 * NodeTemplate template2 = new NodeTemplate(nodeType2, null, null, null,
355 * null, null, null); template2.setName(nodeTypeTemplate2 );
356 * nodeTemplates.put(nodeTypeTemplate2, template2 );
358 * NodeTemplate template3 = new NodeTemplate(nodeType, null, null, null,
359 * null, null, null); template3.setName(nodeTypeTemplate3 );
360 * nodeTemplates.put(nodeTypeTemplate3, template3);
362 * topology.setNodeTemplates(nodeTemplates); resourceDAO.save(topology);
364 * TopologyTemplate topologyTemplate = new TopologyTemplate();
365 * topologyTemplate.setId(topologyTemplateName);
366 * topologyTemplate.setName(topologyTemplateName);
367 * topologyTemplate.setTopologyId(topology.getId());
368 * topologyTemplate.setDescription("my topology template");
369 * resourceDAO.save(topologyTemplate);
371 * String strData = "qweqwqweqw34e4wrwer"; ArtifactData arData = new
372 * ArtifactData("artifact1", nodeType, nodeTypeVersion, "YANG",
373 * strData.getBytes(), strData.getBytes(), "Marina"); ArtifactData arData1 =
374 * new ArtifactData("artifact2", nodeType, nodeTypeVersion, "YANG",
375 * strData.getBytes(), strData.getBytes(), "Marina"); ResourceUploadStatus
376 * status = daoUploader.saveArtifact(arData, true); status =
377 * daoUploader.saveArtifact(arData1, true);
379 * ArtifactData arData3 = new ArtifactData("artifact1", nodeType2,
380 * nodeTypeVersion2, "YANG", strData.getBytes(), strData.getBytes(),
381 * "Marina"); status = daoUploader.saveArtifact(arData3, true);
383 * ArtifactData arData4 = new ArtifactData("artifact2", nodeType2,
384 * nodeTypeVersion2, "YANG", strData.getBytes(), strData.getBytes(),
385 * "Marina"); status = daoUploader.saveArtifact(arData4, true);
387 * ServiceArtifactData serviceArData = new
388 * ServiceArtifactData("serviceArData", topologyTemplateName,
389 * topologyTemplateVersion, nodeTypeTemplate1, nodeType, nodeTypeVersion,
390 * "YANG", strData.getBytes(), strData.getBytes(), "Marina",
393 * status = daoUploader.saveServiceArtifact(serviceArData, true);
395 * ServiceArtifactData serviceArData1 = new
396 * ServiceArtifactData("serviceArData1", topologyTemplateName,
397 * topologyTemplateVersion, nodeTypeTemplate2, nodeType2, nodeTypeVersion2,
398 * "YANG", strData.getBytes(), strData.getBytes(), "Marina",
401 * status = daoUploader.saveServiceArtifact(serviceArData1, true);
404 * } catch (Exception e) {
405 * e.printStackTrace(); }
409 * private void prepareTestTopolgyService(){
411 * List<String> listCap = new ArrayList<String>();
412 * listCap.add("very_evil test"); List<String> listCap1 = new
413 * ArrayList<String>(); listCap.add("evil test"); try{ // Initialize test
414 * data IndexedNodeType indexedNodeType = new IndexedNodeType();
415 * CSARDependency dep = new CSARDependency(); dep.setName(nodeType +
416 * " test"); dep.setVersion(nodeTypeVersion);
417 * indexedNodeType.setElementId(nodeType + " test");
418 * indexedNodeType.setArchiveName(nodeType + " test");
419 * indexedNodeType.setArchiveVersion(nodeTypeVersion);
420 * indexedNodeType.setCreationDate(new Date());
421 * indexedNodeType.setLastUpdateDate(new Date());
422 * indexedNodeType.setDefaultCapabilities(listCap);
423 * resourceDAO.save(indexedNodeType);
426 * IndexedNodeType indexedNodeType1 = new IndexedNodeType();
427 * indexedNodeType1.setElementId(nodeType2 + " test");
428 * indexedNodeType1.setArchiveName(nodeType2 + " test");
429 * indexedNodeType1.setArchiveVersion(nodeTypeVersion2); CSARDependency dep1
430 * = new CSARDependency(); dep1.setName(nodeType2 + " test");
431 * dep1.setVersion(nodeTypeVersion2); indexedNodeType1.setCreationDate(new
432 * Date()); indexedNodeType1.setLastUpdateDate(new Date());
433 * indexedNodeType1.setDefaultCapabilities(listCap1);
434 * resourceDAO.save(indexedNodeType1);
437 * indexedNodeType.setElementId(nodeType3 + " test");
438 * indexedNodeType.setArchiveName(nodeType3 + " test");
439 * indexedNodeType.setArchiveVersion(nodeNypeVersion3); CSARDependency dep2
440 * = new CSARDependency(); dep2.setName(nodeType3 + " test");
441 * dep2.setVersion(nodeNypeVersion3); indexedNodeType.setCreationDate(new
442 * Date()); indexedNodeType.setLastUpdateDate(new Date());
443 * indexedNodeType.setDefaultCapabilities(null);
444 * resourceDAO.save(indexedNodeType); String osgiliath100Id =
445 * indexedNodeType.getId();
447 * Topology topology = new Topology(); topology.setId(topologyId + " test");
448 * Set<CSARDependency> dependencies = new HashSet<CSARDependency>();
449 * dependencies.add(dep); dependencies.add(dep2); dependencies.add(dep1);
450 * topology.setDependencies(dependencies); Map<String, NodeTemplate>
451 * nodeTemplates = new HashMap <String, NodeTemplate>();
453 * NodeTemplate template1 = new NodeTemplate(nodeType + " test", null, null,
454 * null, null, null, null); template1.setName(nodeTypeTemplate1 + " test");
455 * nodeTemplates.put(nodeTypeTemplate1 + " test", template1 );
457 * NodeTemplate template2 = new NodeTemplate(nodeType2 + " test", null,
458 * null, null, null, null, null); template2.setName(nodeTypeTemplate2 +
459 * " test" ); nodeTemplates.put(nodeTypeTemplate2 + " test", template2 );
461 * NodeTemplate template3 = new NodeTemplate(nodeType, null, null, null,
462 * null, null, null); template3.setName(nodeTypeTemplate3 + " test" );
463 * nodeTemplates.put(nodeTypeTemplate3 + " test", template3);
465 * topology.setNodeTemplates(nodeTemplates); resourceDAO.save(topology);
467 * TopologyTemplate topologyTemplate = new TopologyTemplate();
468 * topologyTemplate.setId(topologyTemplateName + " test");
469 * topologyTemplate.setName(topologyTemplateName + " test");
470 * topologyTemplate.setTopologyId(topology.getId());
471 * topologyTemplate.setDescription("my topology template");
472 * resourceDAO.save(topologyTemplate);
474 * String strData = "qweqwqweqw34e4wrwer"; ArtifactData arData = new
475 * ArtifactData("artifact1 test", nodeType + " test", nodeTypeVersion,
476 * "YANG", strData.getBytes(), strData.getBytes(), "Marina"); ArtifactData
477 * arData1 = new ArtifactData("artifact2 test", nodeType + " test",
478 * nodeTypeVersion, "YANG", strData.getBytes(), strData.getBytes(),
479 * "Marina"); ResourceUploadStatus status = daoUploader.saveArtifact(arData,
480 * true); status = daoUploader.saveArtifact(arData1, true);
482 * ArtifactData arData3 = new ArtifactData("artifact1 test", nodeType2 +
483 * " test", nodeTypeVersion2, "YANG", strData.getBytes(),
484 * strData.getBytes(), "Marina"); status = daoUploader.saveArtifact(arData3,
487 * ArtifactData arData4 = new ArtifactData("artifact2 test", nodeType2 +
488 * " test", nodeTypeVersion2, "YANG", strData.getBytes(),
489 * strData.getBytes(), "Marina"); status = daoUploader.saveArtifact(arData4,
492 * ServiceArtifactData serviceArData = new
493 * ServiceArtifactData("serviceArData test" , topologyTemplateName +
494 * " test", topologyTemplateVersion, nodeTypeTemplate1 + " test", nodeType +
495 * " test", nodeTypeVersion, "YANG", strData.getBytes(), strData.getBytes(),
496 * "Marina", arData.getId());
498 * status = daoUploader.saveServiceArtifact(serviceArData, true);
500 * ServiceArtifactData serviceArData1 = new
501 * ServiceArtifactData("serviceArData1 test", topologyTemplateName +
502 * " test", topologyTemplateVersion, nodeTypeTemplate2 + " test", nodeType2
503 * + " test", nodeTypeVersion2, "YANG", strData.getBytes(),
504 * strData.getBytes(), "Marina", arData4.getId());
506 * status = daoUploader.saveServiceArtifact(serviceArData1, true);
509 * } catch (Exception e) {
510 * e.printStackTrace(); }
515 private void clearIndex(String indexName, Class<?> clazz) throws InterruptedException {
517 DeleteIndexResponse actionGet = esclient.getClient().admin().indices().delete(new DeleteIndexRequest(indexName))
519 assertTrue(actionGet.isAcknowledged());