b86b14b988d3fd6f8b332f0d9a4494f9dd70bad7
[sdc/sdc-workflow-designer.git] / workflow-designer-be / src / test / java / org / onap / sdc / workflow / persistence / impl / ArtifactRepositoryTest.java
1 package org.onap.sdc.workflow.persistence.impl;
2
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;
11
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.types.WorkflowElementType;
30 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
31 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
32
33 @RunWith(MockitoJUnitRunner.class)
34 public class ArtifactRepositoryTest {
35
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";
40
41
42     @Mock
43     private ZusammenAdaptor zusammenAdaptorMock;
44
45     @InjectMocks
46     private ArtifactRepositoryImpl artifactRepository;
47
48     @Before
49     public void setUp() {
50         SessionContextProviderFactory.getInstance().createInterface().create("test_user", "workflow");
51     }
52
53     @Test
54     public void shouldUpdateArtifact() throws IOException {
55
56         InputStream inputStreamMock = IOUtils.toInputStream("some test data for my input stream", "UTF-8");
57         ArtifactEntity artifactMock = new ArtifactEntity(FILE_NAME, inputStreamMock);
58
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"));
63     }
64
65     @Test
66     public void shouldGetArtifactWhenExist() throws IOException {
67
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);
72
73         doReturn(elementOptional).when(zusammenAdaptorMock)
74                                  .getElementByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class),
75                                          eq(WorkflowElementType.ARTIFACT.name()));
76
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()));
82     }
83
84     @Test
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"));
90     }
91
92     @Test
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"));
97     }
98
99 }