1 package org.onap.sdc.workflow.persistence.impl;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5 import static org.mockito.ArgumentMatchers.eq;
6 import static org.mockito.Matchers.any;
7 import static org.mockito.Matchers.isNull;
8 import static org.mockito.Mockito.doReturn;
9 import static org.mockito.Mockito.verify;
10 import static org.openecomp.core.zusammen.api.ZusammenUtil.buildStructuralElement;
12 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
13 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
14 import com.amdocs.zusammen.datatypes.Id;
15 import com.amdocs.zusammen.datatypes.SessionContext;
16 import com.amdocs.zusammen.datatypes.item.Action;
17 import com.amdocs.zusammen.datatypes.item.ElementContext;
18 import java.io.IOException;
19 import java.io.InputStream;
20 import java.util.Optional;
21 import org.apache.commons.io.IOUtils;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.junit.runner.RunWith;
25 import org.mockito.InjectMocks;
26 import org.mockito.Mock;
27 import org.mockito.junit.MockitoJUnitRunner;
28 import org.onap.sdc.workflow.persistence.types.ArtifactEntity;
29 import org.onap.sdc.workflow.persistence.impl.types.WorkflowElementType;
30 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
31 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
33 @RunWith(MockitoJUnitRunner.class)
34 public class ArtifactRepositoryTest {
36 private static final String FILE_NAME_PROPERTY = "fileName";
37 private static final String FILE_NAME = "fileName.txt";
38 private static final String ITEM1_ID = "item_id_1";
39 private static final String VERSION1_ID = "version_id_1";
43 private ZusammenAdaptor zusammenAdaptorMock;
46 private ArtifactRepositoryImpl artifactRepository;
50 SessionContextProviderFactory.getInstance().createInterface().create("test_user", "workflow");
54 public void shouldUpdateArtifact() throws IOException {
56 InputStream inputStreamMock = IOUtils.toInputStream("some test data for my input stream", "UTF-8");
57 ArtifactEntity artifactMock = new ArtifactEntity(FILE_NAME, inputStreamMock);
59 artifactRepository.update(ITEM1_ID, VERSION1_ID, artifactMock);
60 verify(zusammenAdaptorMock)
61 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
62 eq("Update WorkflowVersion Artifact Element"));
66 public void shouldGetArtifactWhenExist() throws IOException {
68 ZusammenElement artifactElement = buildStructuralElement(WorkflowElementType.ARTIFACT.name(), Action.UPDATE);
69 artifactElement.setData(IOUtils.toInputStream("some test data for my input stream", "UTF-8"));
70 artifactElement.getInfo().addProperty(FILE_NAME_PROPERTY, FILE_NAME);
71 Optional<Element> elementOptional = Optional.of(artifactElement);
73 doReturn(elementOptional).when(zusammenAdaptorMock)
74 .getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
75 eq(WorkflowElementType.ARTIFACT.name()));
77 Optional<ArtifactEntity> result = artifactRepository.get(ITEM1_ID, VERSION1_ID);
78 assertTrue(result.isPresent());
79 assertEquals(FILE_NAME,result.get().getFileName());
80 verify(zusammenAdaptorMock).getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
81 eq(WorkflowElementType.ARTIFACT.name()));
85 public void shouldCreateArtifactStructure() {
86 artifactRepository.createStructure(ITEM1_ID, VERSION1_ID);
87 verify(zusammenAdaptorMock)
88 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
89 eq("Create WorkflowVersion Artifact Element"));
93 public void shouldDeleteArtifact(){
94 artifactRepository.delete(ITEM1_ID,VERSION1_ID);
95 verify(zusammenAdaptorMock).saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
96 eq("Delete WorkflowVersion Artifact Data"));