1 package org.onap.sdc.workflow.persistence.impl;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6 import static org.mockito.ArgumentMatchers.eq;
7 import static org.mockito.Matchers.any;
8 import static org.mockito.Matchers.isNull;
9 import static org.mockito.Mockito.doReturn;
10 import static org.mockito.Mockito.verify;
11 import static org.openecomp.core.zusammen.api.ZusammenUtil.buildStructuralElement;
13 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
14 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
15 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
16 import com.amdocs.zusammen.datatypes.Id;
17 import com.amdocs.zusammen.datatypes.SessionContext;
18 import com.amdocs.zusammen.datatypes.item.Action;
19 import com.amdocs.zusammen.datatypes.item.ElementContext;
20 import com.amdocs.zusammen.datatypes.item.Info;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.util.Optional;
24 import org.apache.commons.io.IOUtils;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 import org.mockito.InjectMocks;
29 import org.mockito.Mock;
30 import org.mockito.junit.MockitoJUnitRunner;
31 import org.onap.sdc.workflow.persistence.types.ArtifactEntity;
32 import org.onap.sdc.workflow.persistence.impl.types.WorkflowElementType;
33 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
34 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
36 @RunWith(MockitoJUnitRunner.class)
37 public class ArtifactRepositoryTest {
39 private static final String FILE_NAME_PROPERTY = "fileName";
40 private static final String FILE_NAME = "fileName.txt";
41 private static final String ITEM1_ID = "item_id_1";
42 private static final String VERSION1_ID = "version_id_1";
46 private ZusammenAdaptor zusammenAdaptorMock;
49 private ArtifactRepositoryImpl artifactRepository;
53 SessionContextProviderFactory.getInstance().createInterface().create("test_user", "workflow");
57 public void shouldUpdateArtifact() throws IOException {
59 InputStream inputStreamMock = IOUtils.toInputStream("some test data for my input stream", "UTF-8");
60 ArtifactEntity artifactMock = new ArtifactEntity(FILE_NAME, inputStreamMock);
62 artifactRepository.update(ITEM1_ID, VERSION1_ID, artifactMock);
63 verify(zusammenAdaptorMock)
64 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
65 eq("Update WorkflowVersion Artifact Element"));
69 public void shouldGetArtifactWhenExist() throws IOException {
71 ZusammenElement artifactElement = buildStructuralElement(WorkflowElementType.ARTIFACT.name(), Action.UPDATE);
72 artifactElement.setData(IOUtils.toInputStream("some test data for my input stream", "UTF-8"));
73 artifactElement.getInfo().addProperty(FILE_NAME_PROPERTY, FILE_NAME);
74 Optional<Element> elementOptional = Optional.of(artifactElement);
76 doReturn(elementOptional).when(zusammenAdaptorMock)
77 .getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
78 eq(WorkflowElementType.ARTIFACT.name()));
80 Optional<ArtifactEntity> result = artifactRepository.get(ITEM1_ID, VERSION1_ID);
81 assertTrue(result.isPresent());
82 assertEquals(FILE_NAME,result.get().getFileName());
83 verify(zusammenAdaptorMock).getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
84 eq(WorkflowElementType.ARTIFACT.name()));
88 public void shouldReturnOptionalEmptyWhenDoesNotExist() throws IOException {
90 doReturn(Optional.empty()).when(zusammenAdaptorMock)
91 .getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
92 eq(WorkflowElementType.ARTIFACT.name()));
94 Optional<ArtifactEntity> result = artifactRepository.get(ITEM1_ID, VERSION1_ID);
95 verify(zusammenAdaptorMock).getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
96 eq(WorkflowElementType.ARTIFACT.name()));
97 assertFalse(result.isPresent());
101 public void shouldCreateArtifactStructure() {
102 artifactRepository.createStructure(ITEM1_ID, VERSION1_ID);
103 verify(zusammenAdaptorMock)
104 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
105 eq("Create WorkflowVersion Artifact Element"));
109 public void shouldDeleteArtifact() {
110 artifactRepository.delete(ITEM1_ID,VERSION1_ID);
111 verify(zusammenAdaptorMock).saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
112 eq("Delete WorkflowVersion Artifact Data"));
116 public void shouldReturnTrueIfExists() {
117 ElementInfo elementInfo = new ElementInfo();
118 elementInfo.setId(new Id("test_id"));
119 Info info = new Info();
120 info.addProperty(FILE_NAME_PROPERTY, "test_fileName");
121 elementInfo.setInfo(info);
123 doReturn(Optional.of(elementInfo)).when(zusammenAdaptorMock)
124 .getElementInfoByName(any(SessionContext.class), any(ElementContext.class), isNull(),
125 eq(WorkflowElementType.ARTIFACT.name()));
127 assertTrue(artifactRepository.isExist(ITEM1_ID, VERSION1_ID));