re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / auditing / impl / category / AuditCategoryEventFuncTest.java
1 package org.openecomp.sdc.be.auditing.impl.category;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.mockito.ArgumentCaptor;
7 import org.mockito.Captor;
8 import org.mockito.Mock;
9 import org.mockito.junit.MockitoJUnitRunner;
10 import org.openecomp.sdc.be.auditing.api.AuditEventFactory;
11 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
12 import org.openecomp.sdc.be.config.Configuration;
13 import org.openecomp.sdc.be.dao.api.ActionStatus;
14 import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao;
15 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
16 import org.openecomp.sdc.be.dao.impl.AuditingDao;
17 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
18 import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent;
19 import org.openecomp.sdc.be.resources.data.auditing.CategoryEvent;
20 import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData;
21 import org.openecomp.sdc.common.util.ThreadLocalsHolder;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.mockito.ArgumentMatchers.any;
25 import static org.mockito.ArgumentMatchers.eq;
26 import static org.mockito.Mockito.verify;
27 import static org.mockito.Mockito.when;
28 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*;
29
30 @RunWith(MockitoJUnitRunner.class)
31 public class AuditCategoryEventFuncTest {
32     private AuditingManager auditingManager;
33
34     @Mock
35     private static AuditCassandraDao cassandraDao;
36     @Mock
37     private static AuditingDao auditingDao;
38     @Mock
39     private static Configuration.ElasticSearchConfig esConfig;
40
41     @Captor
42     private ArgumentCaptor<CategoryEvent> eventCaptor;
43
44     @Before
45     public void setUp() {
46         init(esConfig);
47         auditingManager = new AuditingManager(auditingDao, cassandraDao);
48         ThreadLocalsHolder.setUuid(REQUEST_ID);
49     }
50
51     @Test
52     public void testAddCategoryEvent() {
53         AuditEventFactory builder = new AuditCategoryEventFactory(
54                 AuditingActionEnum.ADD_CATEGORY,
55                 CommonAuditData.newBuilder()
56                         .description(DESCRIPTION)
57                         .status(STATUS_OK)
58                         .requestId(REQUEST_ID)
59                         .serviceInstanceId(SERVICE_INSTANCE_ID)
60                         .build(),
61                 modifier, CATEGORY, SUB_CATEGORY, GROUPING_NAME, RESOURCE_TYPE);
62
63         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_CATEGORY.getAuditingEsType())))
64                 .thenReturn(ActionStatus.OK);
65         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
66
67         assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_ADD_CATEGORY_LOG_STR);
68         verifyCategoryEvent(AuditingActionEnum.ADD_CATEGORY.getName());
69     }
70
71     private void verifyCategoryEvent(String action) {
72         verify(cassandraDao).saveRecord(eventCaptor.capture());
73         CategoryEvent storedEvent = eventCaptor.getValue();
74         assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID);
75         assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION);
76         assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK);
77         assertThat(storedEvent.getRequestId()).isEqualTo(REQUEST_ID);
78         assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID);
79         assertThat(storedEvent.getAction()).isEqualTo(action);
80         assertThat(storedEvent.getCategoryName()).isEqualTo(CATEGORY);
81         assertThat(storedEvent.getSubCategoryName()).isEqualTo(SUB_CATEGORY);
82         assertThat(storedEvent.getGroupingName()).isEqualTo(GROUPING_NAME);
83         assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE);
84
85     }
86 }