f859b7560708fa66afd38a11d8d84986e6c19dfa
[sdc.git] /
1 package org.openecomp.sdc.be.auditing.impl.ecompopenv;
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.AuditEcompOpEnvEventFactory;
12 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
13 import org.openecomp.sdc.be.config.Configuration;
14 import org.openecomp.sdc.be.dao.api.ActionStatus;
15 import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao;
16 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
17 import org.openecomp.sdc.be.dao.impl.AuditingDao;
18 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
19 import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent;
20 import org.openecomp.sdc.be.resources.data.auditing.EcompOperationalEnvironmentEvent;
21 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
22
23 import java.util.EnumMap;
24
25 import static org.assertj.core.api.Assertions.assertThat;
26 import static org.mockito.ArgumentMatchers.any;
27 import static org.mockito.ArgumentMatchers.anyMap;
28 import static org.mockito.ArgumentMatchers.eq;
29 import static org.mockito.Mockito.verify;
30 import static org.mockito.Mockito.when;
31 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CREATE_OP_ENV_LOG_STR;
32 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR;
33 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR;
34 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ACTION;
35 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ID;
36 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_NAME;
37 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_TYPE;
38 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TENANT_CONTEXT;
39 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init;
40
41 @RunWith(MockitoJUnitRunner.class)
42 public class AuditEcompOpEnvEventTest {
43
44     private AuditingManager auditingManager;
45
46     @Mock
47     private static AuditCassandraDao cassandraDao;
48     @Mock
49     private static AuditingDao auditingDao;
50     @Mock
51     private static Configuration.ElasticSearchConfig esConfig;
52
53     @Captor
54     private ArgumentCaptor<AuditingGenericEvent> eventCaptor;
55
56     @Before
57     public void setUp() {
58         init(esConfig);
59         auditingManager = new AuditingManager(auditingDao, cassandraDao);
60     }
61
62     @Test
63     public void testNewCreateOpEnvEvent() {
64         AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.CREATE_ENVIRONMENT,
65                 OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT);
66
67         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_ENVIRONMENT.getAuditingEsType())))
68                 .thenReturn(ActionStatus.OK);
69         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
70
71         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CREATE_OP_ENV_LOG_STR);
72         verifyEvent(AuditingActionEnum.CREATE_ENVIRONMENT.getName());
73     }
74
75     @Test
76     public void testOldCreateOpEnvEvent() {
77         when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.CREATE_ENVIRONMENT.getAuditingEsType())))
78                 .thenReturn(ActionStatus.OK);
79         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
80
81         assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.CREATE_ENVIRONMENT))).isEqualTo(EXPECTED_CREATE_OP_ENV_LOG_STR);
82         verifyEvent(AuditingActionEnum.CREATE_ENVIRONMENT.getName());
83
84     }
85
86     @Test
87     public void testNewUnsupportedTypeOpEnvEvent() {
88         AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE,
89                 OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT);
90
91         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getAuditingEsType())))
92                 .thenReturn(ActionStatus.OK);
93         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
94
95         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR);
96         verifyEvent(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getName());
97     }
98
99     @Test
100     public void testOldUnsupportedTypeOpEnvEvent() {
101         when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getAuditingEsType())))
102                 .thenReturn(ActionStatus.OK);
103         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
104
105         assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE))).isEqualTo(EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR);
106         verifyEvent(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getName());
107     }
108
109     @Test
110     public void testNewUnknownNotificationOpEnvEvent() {
111         AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION,
112                 OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT);
113
114         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION.getAuditingEsType())))
115                 .thenReturn(ActionStatus.OK);
116         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
117
118         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR);
119         verifyEvent(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION.getName());
120     }
121
122     @Test
123     public void testOldUnknownNotificationOpEnvEvent() {
124         when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getAuditingEsType())))
125                 .thenReturn(ActionStatus.OK);
126         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
127
128         assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION))).isEqualTo(EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR);
129         verifyEvent(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION.getName());
130     }
131
132     private EnumMap<AuditingFieldsKeysEnum, Object> fillMap(AuditingActionEnum action) {
133         EnumMap<AuditingFieldsKeysEnum, Object> auditingFields = new EnumMap<>(AuditingFieldsKeysEnum.class);
134         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_ACTION, action.getName());
135         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_OPERATIONAL_ENVIRONMENT_ID, OP_ENV_ID);
136         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_OPERATIONAL_ENVIRONMENT_TYPE, OP_ENV_TYPE);
137         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_OPERATIONAL_ENVIRONMENT_NAME, OP_ENV_NAME);
138         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_OPERATIONAL_ENVIRONMENT_ACTION, OP_ENV_ACTION);
139         auditingFields.put(AuditingFieldsKeysEnum.AUDIT_TENANT_CONTEXT, TENANT_CONTEXT);
140
141         return auditingFields;
142     }
143
144     private void verifyEvent(String action) {
145         verify(cassandraDao).saveRecord(eventCaptor.capture());
146         EcompOperationalEnvironmentEvent storedEvent = (EcompOperationalEnvironmentEvent) eventCaptor.getValue();
147         assertThat(storedEvent.getAction()).isEqualTo(action);
148         assertThat(storedEvent.getOperationalEnvironmentId()).isEqualTo(OP_ENV_ID);
149         assertThat(storedEvent.getOperationalEnvironmentName()).isEqualTo(OP_ENV_NAME);
150         assertThat(storedEvent.getOperationalEnvironmentType()).isEqualTo(OP_ENV_TYPE);
151         assertThat(storedEvent.getTenantContext()).isEqualTo(TENANT_CONTEXT);
152
153
154     }
155
156 }