1 package org.onap.sdc.workflow.services.impl;
3 import static org.mockito.ArgumentMatchers.any;
4 import static org.mockito.Mockito.doReturn;
5 import static org.mockito.Mockito.times;
6 import static org.mockito.Mockito.verify;
7 import static org.onap.sdc.workflow.TestUtil.createItem;
8 import static org.onap.sdc.workflow.TestUtil.createWorkflow;
10 import java.util.Arrays;
11 import java.util.List;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.InjectMocks;
16 import org.mockito.Mock;
17 import org.onap.sdc.workflow.persistence.types.Workflow;
18 import org.onap.sdc.workflow.services.UniqueValueService;
19 import org.onap.sdc.workflow.services.exceptions.EntityNotFoundException;
20 import org.onap.sdc.workflow.services.impl.mappers.WorkflowMapper;
21 import org.openecomp.sdc.versioning.ItemManager;
22 import org.openecomp.sdc.versioning.types.Item;
23 import org.openecomp.sdc.versioning.types.ItemStatus;
24 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
26 @RunWith(SpringJUnit4ClassRunner.class)
27 public class WorkflowManagerImplTest {
29 private static final String ITEM1_ID = "workflowId1";
30 private static final String WORKFLOW_TYPE = "WORKFLOW";
31 private static final String WORKFLOW_NAME_UNIQUE_TYPE = "WORKFLOW_NAME";
32 private List<Item> itemList;
35 private WorkflowMapper workflowMapperMock;
38 private ItemManager itemManagerMock;
41 private UniqueValueService uniqueValueServiceMock;
44 private WorkflowManagerImpl workflowManager;
49 itemList = Arrays.asList(createItem(1, true, true), createItem(2, true, true), createItem(3, true, true));
55 public void shouldReturnWorkflowVersionList() {
57 doReturn(itemList).when(itemManagerMock).list(WorkflowManagerImpl.ITEM_PREDICATE);
58 workflowManager.list();
59 verify(itemManagerMock).list(WorkflowManagerImpl.ITEM_PREDICATE);
62 @Test(expected = EntityNotFoundException.class)
63 public void shouldThrowExceptionWhenWorkflowDontExist() {
64 Workflow nonExistingWorkflow = new Workflow();
65 nonExistingWorkflow.setId(ITEM1_ID);
66 doReturn(null).when(itemManagerMock).get(ITEM1_ID);
67 workflowManager.get(nonExistingWorkflow);
68 verify(workflowMapperMock, times(3)).itemToWorkflow(any(Item.class));
72 public void shouldReturnWorkflow() {
73 Item retrievedItem = createItem(1, true, true);
74 doReturn(retrievedItem).when(itemManagerMock).get(ITEM1_ID);
75 Workflow workflow = createWorkflow(1, true);
76 workflowManager.get(workflow);
77 verify(itemManagerMock).get(ITEM1_ID);
78 verify(workflowMapperMock).itemToWorkflow(retrievedItem);
84 public void shouldCreateWorkflowItemFromWorkflow() {
85 Workflow workflowToBeCreated = createWorkflow(1, false);
86 Item createdWorkflowItem = createItem(1, false, true);
87 doReturn(createdWorkflowItem).when(workflowMapperMock).workflowToItem(workflowToBeCreated);
88 doReturn(createdWorkflowItem).when(itemManagerMock).create(createdWorkflowItem);
89 workflowManager.create(workflowToBeCreated);
90 verify(uniqueValueServiceMock)
91 .validateUniqueValue(WORKFLOW_NAME_UNIQUE_TYPE, new String[] {workflowToBeCreated.getName()});
93 createdWorkflowItem.setStatus(ItemStatus.ACTIVE);
94 createdWorkflowItem.setType(WORKFLOW_TYPE);
95 verify(itemManagerMock).create(createdWorkflowItem);
96 verify(uniqueValueServiceMock)
97 .createUniqueValue(WORKFLOW_NAME_UNIQUE_TYPE, new String[] {workflowToBeCreated.getName()});
101 public void shouldUpdateWorkflow() {
102 Item workflowItem = createItem(1, true, true);
103 doReturn(workflowItem).when(itemManagerMock).get(ITEM1_ID);
104 Workflow workflowToBeUpdated = createWorkflow(1, true);
105 doReturn(workflowItem).when(workflowMapperMock).workflowToItem(workflowToBeUpdated);
106 workflowManager.update(workflowToBeUpdated);
107 verify(itemManagerMock).update(workflowItem);
108 verify(uniqueValueServiceMock)
109 .updateUniqueValue(WORKFLOW_NAME_UNIQUE_TYPE, workflowItem.getName(), workflowToBeUpdated.getName());
113 @Test(expected = EntityNotFoundException.class)
114 public void shouldThrowExceptionWhenWorkflowToUpdateNotFound() {
115 doReturn(null).when(itemManagerMock).get(ITEM1_ID);
116 workflowManager.update(createWorkflow(1, true));