8dd66800e229a483c453ad70866ef90de67795be
[sdc.git] /
1 package org.openecomp.sdc.be.auditing.impl.ecompopenv;
2
3 import static org.assertj.core.api.Assertions.assertThat;
4 import static org.mockito.ArgumentMatchers.any;
5 import static org.mockito.ArgumentMatchers.anyMap;
6 import static org.mockito.ArgumentMatchers.eq;
7 import static org.mockito.Mockito.verify;
8 import static org.mockito.Mockito.when;
9 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CREATE_OP_ENV_LOG_STR;
10 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR;
11 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR;
12 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ACTION;
13 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ID;
14 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_NAME;
15 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_TYPE;
16 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TENANT_CONTEXT;
17 import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init;
18
19 import java.util.EnumMap;
20
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24 import org.mockito.ArgumentCaptor;
25 import org.mockito.Captor;
26 import org.mockito.Mock;
27 import org.mockito.junit.MockitoJUnitRunner;
28 import org.openecomp.sdc.be.auditing.api.AuditEventFactory;
29 import org.openecomp.sdc.be.auditing.impl.AuditEcompOpEnvEventFactory;
30 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
31 import org.openecomp.sdc.be.config.Configuration;
32 import org.openecomp.sdc.be.dao.api.ActionStatus;
33 import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao;
34 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
35 import org.openecomp.sdc.be.dao.impl.AuditingDao;
36 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
37 import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent;
38 import org.openecomp.sdc.be.resources.data.auditing.EcompOperationalEnvironmentEvent;
39 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
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 }