re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / auditing / impl / externalapi / AuditExternalApiEventFuncTest.java
index 1ddda9e..a247d61 100644 (file)
@@ -1,38 +1,5 @@
 package org.openecomp.sdc.be.auditing.impl.externalapi;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyMap;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_DATA;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_UUID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_STATE;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_VERSION;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_RESOURCE_URL;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_ACTIVATE_SERVICE_API_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DELETE_ARTIFACT_EXTERNAL_API_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DOWNLOAD_ARTIFACT_EXTERNAL_API_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_ASSET_LIST_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_TOSCA_MODEL_LOG_STR;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.INVARIANT_UUID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_STATE;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_VERSION;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_NAME;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init;
-import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier;
-
-import java.util.EnumMap;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -51,8 +18,17 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
 import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent;
 import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent;
 import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData;
-import org.openecomp.sdc.be.resources.data.auditing.model.ResourceAuditData;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
+import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData;
+import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo;
+import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*;
+
 
 @RunWith(MockitoJUnitRunner.class)
 public class AuditExternalApiEventFuncTest {
@@ -67,7 +43,7 @@ public class AuditExternalApiEventFuncTest {
     private static Configuration.ElasticSearchConfig esConfig;
 
     @Captor
-    private ArgumentCaptor<AuditingGenericEvent> eventCaptor;
+    private ArgumentCaptor<ExternalApiEvent> eventCaptor;
 
     @Before
     public void setUp() {
@@ -76,7 +52,7 @@ public class AuditExternalApiEventFuncTest {
     }
 
     @Test
-    public void testNewActivateServiceEvent() {
+    public void testActivateServiceEvent() {
         AuditEventFactory builder = new AuditActivateServiceExternalApiEventFactory(
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
@@ -84,40 +60,21 @@ public class AuditExternalApiEventFuncTest {
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(PREV_RESOURCE_STATE)
-                        .version(PREV_RESOURCE_VERSION)
-                        .build(),
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(CURRENT_STATE)
-                        .version(CURRENT_VERSION)
-                        .build(),
-                INVARIANT_UUID, modifier, ARTIFACT_DATA);
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL),
+                INVARIANT_UUID, modifier);
 
         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
 
         assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_ACTIVATE_SERVICE_API_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getName());
-    }
-
-    @Test
-    public void testOldActivateServiceEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getAuditingEsType())))
-                .thenReturn(ActionStatus.OK);
-        when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
-
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.ACTIVATE_SERVICE_BY_API))).isEqualTo(EXPECTED_ACTIVATE_SERVICE_API_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getName());
+        verifyExternalApiEventWithoutVersionInfo(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getName());
 
     }
 
     @Test
-    public void testNewDownloadArtifactEvent() {
+    public void testDownloadArtifactEvent() {
         AuditEventFactory builder = new AuditDownloadArtifactExternalApiEventFactory(
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
@@ -125,18 +82,14 @@ public class AuditExternalApiEventFuncTest {
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(PREV_RESOURCE_STATE)
-                        .version(PREV_RESOURCE_VERSION)
-                        .build(),
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(CURRENT_STATE)
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL),
+                ResourceVersionInfo.newBuilder()
                         .version(CURRENT_VERSION)
+                        .state(CURRENT_STATE)
+                        .artifactUuid(ARTIFACT_UUID)
                         .build(),
-                INVARIANT_UUID, modifier, ARTIFACT_DATA);
+                modifier);
 
         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DOWNLOAD_ARTIFACT.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
@@ -147,17 +100,7 @@ public class AuditExternalApiEventFuncTest {
     }
 
     @Test
-    public void testOldDownloadArtifactEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.DOWNLOAD_ARTIFACT.getAuditingEsType())))
-                .thenReturn(ActionStatus.OK);
-        when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
-
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.DOWNLOAD_ARTIFACT))).isEqualTo(EXPECTED_DOWNLOAD_ARTIFACT_EXTERNAL_API_LOG_STR + " ");
-        verifyExternalApiEvent(AuditingActionEnum.DOWNLOAD_ARTIFACT.getName());
-    }
-
-    @Test
-    public void testNewChangeLifecycleEvent() {
+    public void testChangeLifecycleEvent() {
         AuditEventFactory factory = new AuditChangeLifecycleExternalApiEventFactory(
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
@@ -165,18 +108,19 @@ public class AuditExternalApiEventFuncTest {
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL),
+                ResourceVersionInfo.newBuilder()
                         .artifactUuid(ARTIFACT_UUID)
                         .state(PREV_RESOURCE_STATE)
                         .version(PREV_RESOURCE_VERSION)
                         .build(),
-                ResourceAuditData.newBuilder()
+                ResourceVersionInfo.newBuilder()
                         .artifactUuid(ARTIFACT_UUID)
                         .state(CURRENT_STATE)
                         .version(CURRENT_VERSION)
                         .build(),
-                INVARIANT_UUID, modifier, ARTIFACT_DATA);
+                INVARIANT_UUID, modifier);
 
         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
@@ -187,32 +131,23 @@ public class AuditExternalApiEventFuncTest {
     }
 
     @Test
-    public void testOldChangeLifecycleEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getAuditingEsType())))
-                .thenReturn(ActionStatus.OK);
-        when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
-
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API))).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName());
-
-    }
-
-    @Test
-    public void testNewDeleteArtifactEvent() {
-        AuditEventFactory factory = new AuditDeleteArtByApiCrudExternalApiEventFactory(
+    public void testDeleteArtifactEvent() {
+        AuditEventFactory factory = new AuditCrudExternalApiArtifactEventFactory(
+                AuditingActionEnum.ARTIFACT_DELETE_BY_API,
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
                         .status(STATUS_OK)
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL),
+                ResourceVersionInfo.newBuilder()
                         .artifactUuid(ARTIFACT_UUID)
                         .state(PREV_RESOURCE_STATE)
                         .version(PREV_RESOURCE_VERSION)
                         .build(),
-                ResourceAuditData.newBuilder()
+                ResourceVersionInfo.newBuilder()
                         .artifactUuid(ARTIFACT_UUID)
                         .state(CURRENT_STATE)
                         .version(CURRENT_VERSION)
@@ -228,141 +163,183 @@ public class AuditExternalApiEventFuncTest {
     }
 
     @Test
-    public void testOldDeleteArtifactEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.ARTIFACT_DELETE_BY_API.getAuditingEsType())))
+    public void testGetAssetEvent() {
+        AuditEventFactory factory = new AuditAssetExternalApiEventFactory(AuditingActionEnum.GET_ASSET_METADATA,
+                CommonAuditData.newBuilder()
+                        .status(STATUS_OK)
+                        .description(DESCRIPTION)
+                        .requestId(REQUEST_ID)
+                        .serviceInstanceId(SERVICE_INSTANCE_ID)
+                        .build(),
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL));
+        when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ASSET_METADATA.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
 
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.ARTIFACT_DELETE_BY_API))).isEqualTo(EXPECTED_DELETE_ARTIFACT_EXTERNAL_API_LOG_STR + " ");
-        verifyExternalApiEvent(AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName());
+        assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_ASSET_LOG_STR);
+        verifyExternalApiEventWithoutVersionInfo(AuditingActionEnum.GET_ASSET_METADATA.getName());
 
     }
 
     @Test
-    public void testNewGetAssetsListEvent() {
-        AuditEventFactory factory = new AuditGetAssetListExternalApiEventFactory(
+    public void testGetAssetsListEvent() {
+        AuditEventFactory factory = new AuditAssetListExternalApiEventFactory(
+                AuditingActionEnum.GET_ASSET_LIST,
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
                         .status(STATUS_OK)
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(PREV_RESOURCE_STATE)
-                        .version(PREV_RESOURCE_VERSION)
-                        .build(),
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(CURRENT_STATE)
-                        .version(CURRENT_VERSION)
-                        .build(),
-                INVARIANT_UUID, modifier, ARTIFACT_DATA);
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL));
 
         when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ASSET_LIST.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
 
         assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_ASSET_LIST_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.GET_ASSET_LIST.getName());
+        verifyExternalApiEventWithoutResourceInfo(AuditingActionEnum.GET_ASSET_LIST.getName());
     }
 
     @Test
-    public void testOldGetAssetsListEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.GET_ASSET_LIST.getAuditingEsType())))
+    public void testGetToscaModelEvent() {
+        AuditEventFactory factory = new AuditAssetExternalApiEventFactory(
+                AuditingActionEnum.GET_TOSCA_MODEL,
+                CommonAuditData.newBuilder()
+                        .description(DESCRIPTION)
+                        .status(STATUS_OK)
+                        .requestId(REQUEST_ID)
+                        .serviceInstanceId(SERVICE_INSTANCE_ID)
+                        .build(),
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL));
+
+        when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_TOSCA_MODEL.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
 
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.GET_ASSET_LIST))).isEqualTo(EXPECTED_GET_ASSET_LIST_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.GET_ASSET_LIST.getName());
+        assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_TOSCA_MODEL_LOG_STR);
+        verifyExternalApiEventWithoutVersionInfo(AuditingActionEnum.GET_TOSCA_MODEL.getName());
     }
 
     @Test
-    public void testNewGetToscaModelEvent() {
-        AuditEventFactory factory = new AuditGetToscaModelExternalApiEventFactory(
+    public void testCreateResourceEvent() {
+        AuditEventFactory factory = new AuditCreateResourceExternalApiEventFactory(
                 CommonAuditData.newBuilder()
                         .description(DESCRIPTION)
                         .status(STATUS_OK)
                         .requestId(REQUEST_ID)
                         .serviceInstanceId(SERVICE_INSTANCE_ID)
                         .build(),
-                RESOURCE_TYPE, RESOURCE_NAME, DIST_CONSUMER_ID, DIST_RESOURCE_URL,
-                ResourceAuditData.newBuilder()
-                        .artifactUuid(ARTIFACT_UUID)
-                        .state(PREV_RESOURCE_STATE)
-                        .version(PREV_RESOURCE_VERSION)
-                        .build(),
-                ResourceAuditData.newBuilder()
+                new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE),
+                new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL),
+                ResourceVersionInfo.newBuilder()
                         .artifactUuid(ARTIFACT_UUID)
                         .state(CURRENT_STATE)
                         .version(CURRENT_VERSION)
                         .build(),
-                INVARIANT_UUID, modifier, ARTIFACT_DATA);
+                INVARIANT_UUID, modifier);
 
-        when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_TOSCA_MODEL.getAuditingEsType())))
+        when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_RESOURCE_BY_API.getAuditingEsType())))
                 .thenReturn(ActionStatus.OK);
         when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
 
-        assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_TOSCA_MODEL_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.GET_TOSCA_MODEL.getName());
-    }
-
-    @Test
-    public void testOldGetToscaModelEvent() {
-        when(auditingDao.addRecord(anyMap(), eq(AuditingActionEnum.GET_TOSCA_MODEL.getAuditingEsType())))
-                .thenReturn(ActionStatus.OK);
-        when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
-
-        assertThat(auditingManager.auditEvent(fillMap(AuditingActionEnum.GET_TOSCA_MODEL))).isEqualTo(EXPECTED_GET_TOSCA_MODEL_LOG_STR);
-        verifyExternalApiEvent(AuditingActionEnum.GET_TOSCA_MODEL.getName());
+        assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_CREATE_RESOURCE_LOG_STR);
+        verifyExternalApiEvent(AuditingActionEnum.CREATE_RESOURCE_BY_API.getName());
     }
 
     private void verifyExternalApiEvent(String action) {
         verify(cassandraDao).saveRecord(eventCaptor.capture());
-        ExternalApiEvent storedEvent = (ExternalApiEvent) eventCaptor.getValue();
+        ExternalApiEvent storedEvent = eventCaptor.getValue();
         assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID);
         assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION);
         assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK);
         assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID);
         assertThat(storedEvent.getAction()).isEqualTo(action);
-        assertThat(storedEvent.getArtifactData()).isEqualTo(ARTIFACT_DATA);
-        assertThat(storedEvent.getCurrArtifactUuid()).isEqualTo(ARTIFACT_UUID);
-        assertThat(storedEvent.getPrevArtifactUuid()).isEqualTo(ARTIFACT_UUID);
-        assertThat(storedEvent.getPrevState()).isEqualTo(PREV_RESOURCE_STATE);
-        assertThat(storedEvent.getCurrState()).isEqualTo(CURRENT_STATE);
-        assertThat(storedEvent.getPrevVersion()).isEqualTo(PREV_RESOURCE_VERSION);
-        assertThat(storedEvent.getCurrVersion()).isEqualTo(CURRENT_VERSION);
-        assertThat(storedEvent.getInvariantUuid()).isEqualTo(INVARIANT_UUID);
+
         assertThat(storedEvent.getResourceName()).isEqualTo(RESOURCE_NAME);
         assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE);
+        assertThat(storedEvent.getCurrArtifactUuid()).isEqualTo(ARTIFACT_UUID);
 
-    }
+        if (!action.equals(AuditingActionEnum.DOWNLOAD_ARTIFACT.getName())
+            && !action.equals(AuditingActionEnum.CREATE_RESOURCE_BY_API.getName())) {
+            assertThat(storedEvent.getPrevArtifactUuid()).isEqualTo(ARTIFACT_UUID);
+            assertThat(storedEvent.getCurrVersion()).isEqualTo(CURRENT_VERSION);
+            assertThat(storedEvent.getCurrState()).isEqualTo(CURRENT_STATE);
+            assertThat(storedEvent.getPrevState()).isEqualTo(PREV_RESOURCE_STATE);
+            assertThat(storedEvent.getPrevVersion()).isEqualTo(PREV_RESOURCE_VERSION);
+        }
+        else {
+            assertThat(storedEvent.getPrevArtifactUuid()).isNull();
+            assertThat(storedEvent.getCurrVersion()).isEqualTo(CURRENT_VERSION);
+            assertThat(storedEvent.getCurrState()).isEqualTo(CURRENT_STATE);
+            assertThat(storedEvent.getPrevState()).isNull();
+            assertThat(storedEvent.getPrevVersion()).isNull();
+            if (action.equals(AuditingActionEnum.DOWNLOAD_ARTIFACT.getName())) {
+                assertThat(storedEvent.getInvariantUuid()).isNull();
+            }
+            else {
+                assertThat(storedEvent.getInvariantUuid()).isEqualTo(INVARIANT_UUID);
+            }
+        }
+        if (!action.equals(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName())
+                && !action.equals(AuditingActionEnum.DOWNLOAD_ARTIFACT.getName())
+                && !action.equals(AuditingActionEnum.CREATE_RESOURCE_BY_API.getName())) {
+            assertThat(storedEvent.getArtifactData()).isEqualTo(ARTIFACT_DATA);
+        }
+        else {
+            assertThat(storedEvent.getArtifactData()).isNull();
+        }
 
-    private EnumMap<AuditingFieldsKeysEnum, Object> fillMap(AuditingActionEnum action) {
-        EnumMap<AuditingFieldsKeysEnum, Object> auditingFields = new EnumMap<>(AuditingFieldsKeysEnum.class);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_ACTION, action.getName());
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_NAME, modifier.getFirstName() + " " + modifier.getLastName());
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_UID, modifier.getUserId());
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_STATUS, STATUS_OK);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_DESC, DESCRIPTION);
-
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, RESOURCE_TYPE);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_VERSION, PREV_RESOURCE_VERSION);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_STATE, PREV_RESOURCE_STATE);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, RESOURCE_NAME);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, CURRENT_VERSION);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE, CURRENT_STATE);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, SERVICE_INSTANCE_ID);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, INVARIANT_UUID);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_ARTIFACT_DATA, ARTIFACT_DATA);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, ARTIFACT_UUID);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_PREV_ARTIFACT_UUID, ARTIFACT_UUID);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, DIST_CONSUMER_ID);
-        auditingFields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, DIST_RESOURCE_URL);
-        return auditingFields;
     }
 
+    private void verifyExternalApiEventWithoutVersionInfo(String action) {
+        verify(cassandraDao).saveRecord(eventCaptor.capture());
+        ExternalApiEvent storedEvent = eventCaptor.getValue();
+        if (action.equals(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getName())) {
+            assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID);
+            assertThat(storedEvent.getInvariantUuid()).isEqualTo(INVARIANT_UUID);
+        }
+        else {
+            assertThat(storedEvent.getModifier()).isEmpty();
+            assertThat(storedEvent.getInvariantUuid()).isNull();
+        }
+        assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION);
+        assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK);
+        assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID);
+        assertThat(storedEvent.getAction()).isEqualTo(action);
+        assertThat(storedEvent.getArtifactData()).isNull();
+        assertThat(storedEvent.getCurrArtifactUuid()).isNull();
+        assertThat(storedEvent.getPrevArtifactUuid()).isNull();
+        assertThat(storedEvent.getPrevState()).isNull();
+        assertThat(storedEvent.getCurrState()).isNull();
+        assertThat(storedEvent.getPrevVersion()).isNull();
+        assertThat(storedEvent.getCurrVersion()).isNull();
+
+        assertThat(storedEvent.getResourceName()).isEqualTo(RESOURCE_NAME);
+        assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE);
+
+    }
 
+    private void verifyExternalApiEventWithoutResourceInfo(String action) {
+        verify(cassandraDao).saveRecord(eventCaptor.capture());
+        ExternalApiEvent storedEvent = eventCaptor.getValue();
+        assertThat(storedEvent.getModifier()).isEmpty();
+        assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION);
+        assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK);
+        assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID);
+        assertThat(storedEvent.getAction()).isEqualTo(action);
+        assertThat(storedEvent.getArtifactData()).isNull();
+        assertThat(storedEvent.getCurrArtifactUuid()).isNull();
+        assertThat(storedEvent.getPrevArtifactUuid()).isNull();
+        assertThat(storedEvent.getPrevState()).isNull();
+        assertThat(storedEvent.getCurrState()).isNull();
+        assertThat(storedEvent.getPrevVersion()).isNull();
+        assertThat(storedEvent.getCurrVersion()).isNull();
+        assertThat(storedEvent.getInvariantUuid()).isNull();
+        assertThat(storedEvent.getResourceName()).isNull();
+        assertThat(storedEvent.getResourceType()).isNull();
+    }
 
-}
+}
\ No newline at end of file