re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / auditing / impl / AuditConsumerEventFuncTest.java
1 package org.openecomp.sdc.be.auditing.impl;
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.config.Configuration;
12 import org.openecomp.sdc.be.dao.api.ActionStatus;
13 import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao;
14 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
15 import org.openecomp.sdc.be.dao.impl.AuditingDao;
16 import org.openecomp.sdc.be.model.ConsumerDefinition;
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.ConsumerEvent;
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.junit.Assert.assertEquals;
25 import static org.mockito.ArgumentMatchers.any;
26 import static org.mockito.ArgumentMatchers.eq;
27 import static org.mockito.Mockito.verify;
28 import static org.mockito.Mockito.when;
29 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*;
30
31 @RunWith(MockitoJUnitRunner.class)
32 public class AuditConsumerEventFuncTest {
33     private AuditingManager auditingManager;
34     private ConsumerDefinition consumer;
35
36     @Mock
37     private static AuditCassandraDao cassandraDao;
38     @Mock
39     private static AuditingDao auditingDao;
40     @Mock
41     private static Configuration.ElasticSearchConfig esConfig;
42
43     @Captor
44     private ArgumentCaptor<ConsumerEvent> eventCaptor;
45
46     @Before
47     public void setUp() {
48         init(esConfig);
49         auditingManager = new AuditingManager(auditingDao, cassandraDao);
50         consumer = new ConsumerDefinition();
51         consumer.setConsumerName(USER_ID);
52         ThreadLocalsHolder.setUuid(REQUEST_ID);
53     }
54
55     @Test
56     public void testNewAddEcompUserCredEvent() {
57         AuditEventFactory factory = new AuditConsumerEventFactory(
58                 AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS,
59                 CommonAuditData.newBuilder()
60                         .description(DESCRIPTION)
61                         .status(STATUS_OK)
62                         .requestId(REQUEST_ID)
63                         .serviceInstanceId(SERVICE_INSTANCE_ID)
64                         .build(),
65                 modifier, consumer);
66
67         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS.getAuditingEsType())))
68                 .thenReturn(ActionStatus.OK);
69         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
70
71         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_ADD_ECOMP_USER_CRED_LOG_STR);
72         verifyConsumerEvent(AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS.getName());
73     }
74
75     @Test
76     public void testNewGetEcompUserCredEvent() {
77         AuditEventFactory factory = new AuditConsumerEventFactory(
78                 AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS,
79                 CommonAuditData.newBuilder()
80                         .description(DESCRIPTION)
81                         .status(STATUS_OK)
82                         .requestId(REQUEST_ID)
83                         .serviceInstanceId(SERVICE_INSTANCE_ID)
84                         .build(),
85                 modifier, consumer);
86
87         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS.getAuditingEsType())))
88                 .thenReturn(ActionStatus.OK);
89         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
90
91         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_ECOMP_USER_CRED_LOG_STR);
92         verifyConsumerEvent(AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS.getName());
93     }
94
95     @Test
96     public void buildConsumerNameWhenAllFieldsAreProvided() {
97         consumer.setConsumerName(CONSUMER_NAME);
98         consumer.setConsumerSalt(CONSUMER_SALT);
99         consumer.setConsumerPassword(CONSUMER_PASSWORD);
100         assertEquals(CONSUMER_NAME + "," + CONSUMER_SALT + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer));
101     }
102
103     @Test
104     public void buildConsumerNameWhenSaltIsNull() {
105         consumer.setConsumerName(CONSUMER_NAME);
106         consumer.setConsumerPassword(CONSUMER_PASSWORD);
107         assertEquals(CONSUMER_NAME + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer));
108     }
109
110     @Test
111     public void buildConsumerNameWhenNameIsNull() {
112         consumer.setConsumerName(null);
113         consumer.setConsumerSalt(CONSUMER_SALT);
114         consumer.setConsumerPassword(CONSUMER_PASSWORD);
115         assertEquals(CONSUMER_SALT + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer));
116     }
117
118     @Test
119     public void buildConsumerNameWhenNameAndPwAreNull() {
120         consumer.setConsumerName(null);
121         consumer.setConsumerSalt(CONSUMER_SALT);
122         assertEquals(CONSUMER_SALT, AuditConsumerEventFactory.buildConsumerName(consumer));
123     }
124
125     @Test
126     public void buildConsumerNameWhenNameAndSaltAreNull() {
127         consumer.setConsumerName(null);
128         consumer.setConsumerPassword(CONSUMER_PASSWORD);
129         assertEquals(CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer));
130     }
131
132     @Test
133     public void buildConsumerNameWhenConsumerObjectIsNull() {
134         assertEquals("", AuditConsumerEventFactory.buildConsumerName(null));
135     }
136
137     private void verifyConsumerEvent(String action) {
138         verify(cassandraDao).saveRecord(eventCaptor.capture());
139         ConsumerEvent storedEvent = eventCaptor.getValue();
140         assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID);
141         assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION);
142         assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK);
143         assertThat(storedEvent.getRequestId()).isEqualTo(REQUEST_ID);
144         assertThat(storedEvent.getServiceInstanceId()).isNull();
145         assertThat(storedEvent.getAction()).isEqualTo(action);
146         assertThat(storedEvent.getEcompUser()).isEqualTo(USER_ID);
147     }
148 }