re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / ArchiveBusinessLogicTest.java
1 package org.openecomp.sdc.be.components.impl;
2
3 import com.google.common.collect.ImmutableList;
4 import fj.data.Either;
5 import org.junit.Test;
6 import org.junit.runner.RunWith;
7 import org.mockito.InjectMocks;
8 import org.mockito.Mock;
9 import org.mockito.junit.MockitoJUnitRunner;
10 import org.openecomp.sdc.be.dao.api.ActionStatus;
11 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
12 import org.openecomp.sdc.be.impl.ComponentsUtils;
13 import org.openecomp.sdc.be.model.Component;
14 import org.openecomp.sdc.be.model.ComponentParametersView;
15 import org.openecomp.sdc.be.model.User;
16 import org.openecomp.sdc.be.model.jsontitan.operations.ArchiveOperation;
17 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
18 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
19 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
20 import org.openecomp.sdc.exception.ResponseFormat;
21
22 import java.util.Arrays;
23 import java.util.List;
24
25 import static org.mockito.ArgumentMatchers.any;
26 import static org.mockito.ArgumentMatchers.eq;
27 import static org.mockito.Mockito.*;
28
29 @RunWith(MockitoJUnitRunner.class)
30 public class ArchiveBusinessLogicTest {
31     @Mock
32     private ComponentsUtils componentsUtils;
33     @Mock
34     private ToscaOperationFacade toscaOperationFacade;
35     @Mock
36     private User user;
37     @Mock
38     private ResponseFormat responseFormat;
39     @Mock
40     private Component component;
41
42     @InjectMocks
43     private ArchiveBusinessLogic archiveBusinessLogic;
44
45     @Test
46     public void auditLastComponentVersionOnlyAndIgnorePreviousVersions() {
47         List<String> archivedCompIds = Arrays.asList("1", "2", "3", "4", "5");
48         when(toscaOperationFacade.getToscaElement(any(String.class), any(ComponentParametersView.class)))
49                 .thenReturn(Either.left(component));
50         when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(responseFormat);
51         when(component.getUUID())
52                 .thenReturn("1")
53                 .thenReturn("1")
54                 .thenReturn("2")
55                 .thenReturn("3")
56                 .thenReturn("2");
57
58         archiveBusinessLogic.auditAction(ArchiveOperation.Action.ARCHIVE, archivedCompIds, user, ComponentTypeEnum.RESOURCE_PARAM_NAME);
59         verify(componentsUtils, times(3)).auditComponentAdmin(eq(responseFormat), eq(user), eq(component),
60                 eq(AuditingActionEnum.ARCHIVE_COMPONENT), eq(ComponentTypeEnum.RESOURCE), any(String.class));
61     }
62
63
64     @Test
65     public void auditLastComponentVersionOnly() {
66         List<String> archivedCompIds = Arrays.asList("1", "2", "3", "4", "5");
67         when(toscaOperationFacade.getToscaElement(any(String.class), any(ComponentParametersView.class)))
68                 .thenReturn(Either.left(component));
69         when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(responseFormat);
70         when(component.getUUID())
71                 .thenReturn("1")
72                 .thenReturn("2")
73                 .thenReturn("4")
74                 .thenReturn("5")
75                 .thenReturn("3");
76
77         archiveBusinessLogic.auditAction(ArchiveOperation.Action.RESTORE, archivedCompIds, user, ComponentTypeEnum.RESOURCE_PARAM_NAME);
78         verify(componentsUtils, times(5)).auditComponentAdmin(eq(responseFormat), eq(user), eq(component),
79                 eq(AuditingActionEnum.RESTORE_COMPONENT), eq(ComponentTypeEnum.RESOURCE), any(String.class));
80     }
81
82
83     @Test
84     public void noAuditDoneForEmptyList() {
85         List<String> archivedCompIds = ImmutableList.of();
86         archiveBusinessLogic.auditAction(ArchiveOperation.Action.RESTORE, archivedCompIds, user, ComponentTypeEnum.RESOURCE_PARAM_NAME);
87         verify(componentsUtils, times(0)).auditComponentAdmin(any(ResponseFormat.class), any(User.class), any(Component.class),
88                 any(AuditingActionEnum.class), any(ComponentTypeEnum.class), any(String.class));
89     }
90
91
92     @Test
93     public void noAuditOnErrorGetElementResponse() {
94         List<String> archivedCompIds = Arrays.asList("1", "2", "3", "4", "5");
95         when(toscaOperationFacade.getToscaElement(any(String.class), any(ComponentParametersView.class)))
96                 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
97         archiveBusinessLogic.auditAction(ArchiveOperation.Action.RESTORE, archivedCompIds, user, ComponentTypeEnum.RESOURCE_PARAM_NAME);
98         verify(componentsUtils, times(0)).auditComponentAdmin(any(ResponseFormat.class), any(User.class), any(Component.class),
99                 any(AuditingActionEnum.class), any(ComponentTypeEnum.class), any(String.class));
100     }
101
102
103
104 }