aboutsummaryrefslogtreecommitdiffstats
path: root/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java')
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java295
1 files changed, 242 insertions, 53 deletions
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java
index af93fc2414..c8d7c9953a 100644
--- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/DataMigrationTest.java
@@ -1,61 +1,250 @@
package org.openecomp.sdc.asdctool.impl;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.dao.cassandra.schema.Table;
+import org.openecomp.sdc.be.resources.data.auditing.*;
+import org.openecomp.sdc.common.datastructure.AuditingFieldsKey;
+
+import java.io.IOException;
import java.text.SimpleDateFormat;
-import java.util.EnumMap;
-import java.util.TimeZone;
+import java.util.Date;
+import java.util.HashMap;
-import org.elasticsearch.common.settings.SettingsException;
-import org.junit.Test;
-import org.openecomp.sdc.asdctool.impl.DataMigration.TypeToTableMapping;
-import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.openecomp.sdc.common.datastructure.AuditingFieldsKey.*;
+@RunWith(MockitoJUnitRunner.class)
public class DataMigrationTest {
+ private final static String DESCRIPTION = "OK";
+ private final static String STATUS = "200";
+ private final static String SERVICE_INSTANCE_ID = "SERVICE_INSTANCE_ID";
+ private final static String MODIFIER = "MODIFIER";
+ private final static String REQUEST_ID = "REQUEST_ID";
+ private final static String USER = "USER";
+ private final static String USER_BEFORE = "USER_BEFORE";
+ private final static String USER_AFTER = "USER_AFTER";
+ private final static String ARTIFACT_UUID = "ARTIFACT_UUID";
+
+ private final static String PREV_STATE = "PREV_STATE";
+ private final static String CURR_STATE = "CURR_STATE";
+ private final static String PREV_VERSION = "PREV_VERSION";
+ private final static String CURR_VERSION = "CURR_VERSION";
+ private final static String DPREV_STATUS = "DPREV_STATUS";
+ private final static String DCURR_STATUS = "CURR_STATUS";
+ private final static String INVARIANT_UUID = "INVARIANT_UUID";
+ private final static String ARTIFACT_DATA = "ARTIFACT_DATA";
+ private final static String COMMENT = "COMMENT";
+ private final static String DISTRIBUTION_ID = "DISTRIBUTION_ID";
+ private final static String TOSCA_NODE_TYPE = "TOSCA_NODE_TYPE";
+ private final static String CONSUMER_ID = "CONSUMER_ID";
+ private final static String RESOURCE_URL = "RESOURCE_URL";
+ private final static String ENV_ID = "ENV_ID";
+ private final static String VNF_WORKLOAD_CONTEXT = "VNF_WORKLOAD_CONTEXT";
+ private final static String TENANT = "TENANT";
+ private final static String RESOURCE_NAME = "RESOURCE_NAME";
+ private final static String RESOURCE_TYPE = "RESOURCE_TYPE";
+ private final static String AUTH_URL = "AUTH_URL";
+ private final static String AUTH_RELM = "AUTH_RELM";
+ private final static String TOPIC_NAME = "TOPIC_NAME";
+
+ private final static String dateFormatPattern = "yyyy-MM-dd HH:mm:ss.SSS z";
+
+ private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern);
+
+ private static DataMigration dataMigration = new DataMigration();
+
+ private final static String ES_STRING = "{\"" + AuditingFieldsKey.AUDIT_ACTION + "\":\"%s\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_NAME + "\":\"" + RESOURCE_NAME + "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_TOSCA_NODE_TYPE + "\":\"" + TOSCA_NODE_TYPE +
+ "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_PREV_VERSION + "\":\"" + PREV_VERSION + "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_PREV_STATE + "\":\"" + PREV_STATE +
+ "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_TYPE + "\":\"" + RESOURCE_TYPE + "\", \"" + AuditingFieldsKey.AUDIT_SERVICE_INSTANCE_ID + "\":\"" + SERVICE_INSTANCE_ID +
+ "\", \"" + AuditingFieldsKey.AUDIT_INVARIANT_UUID + "\":\"" + INVARIANT_UUID + "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_CURR_VERSION + "\":\"" + CURR_VERSION +
+ "\", \"" + AuditingFieldsKey.AUDIT_RESOURCE_CURR_STATE + "\":\"" + CURR_STATE + "\", \"" + AuditingFieldsKey.AUDIT_MODIFIER_UID + "\":\"" + MODIFIER +
+ "\", \"" + AuditingFieldsKey.AUDIT_DESC + "\":\"" + DESCRIPTION + "\", \"" + AuditingFieldsKey.AUDIT_STATUS + "\":\"" + STATUS +
+ "\", \"" + AuditingFieldsKey.AUDIT_REQUEST_ID + "\":\"" + REQUEST_ID + "\", \"" + AuditingFieldsKey.AUDIT_CURR_ARTIFACT_UUID + "\":\"" + ARTIFACT_UUID +
+ "\", \"" + AuditingFieldsKey.AUDIT_PREV_ARTIFACT_UUID + "\":\"" + ARTIFACT_UUID + "\", \"" + AuditingFieldsKey.AUDIT_ARTIFACT_DATA + "\":\"" + ARTIFACT_DATA +
+ "\", \"" + AuditingFieldsKey.AUDIT_TIMESTAMP + "\":\"%s\"}";
+
+
+ private String timestampStr;
+
+ private HashMap<AuditingFieldsKey, String> dataMap = new HashMap<>();
+
+ @Before
+ public void setUp() {
+ dataMap.put(AUDIT_DESC, DESCRIPTION);
+ dataMap.put(AUDIT_STATUS, STATUS);
+ dataMap.put(AUDIT_REQUEST_ID, REQUEST_ID);
+ dataMap.put(AUDIT_SERVICE_INSTANCE_ID, SERVICE_INSTANCE_ID);
+ dataMap.put(AUDIT_MODIFIER_UID, MODIFIER);
+ dataMap.put(AUDIT_USER_BEFORE, USER_BEFORE);
+ dataMap.put(AUDIT_USER_UID, USER);
+ dataMap.put(AUDIT_USER_AFTER, USER_AFTER);
+ dataMap.put(AUDIT_AUTH_URL, AUTH_URL);
+ dataMap.put(AUDIT_AUTH_REALM, AUTH_RELM);
+ dataMap.put(AUDIT_PREV_ARTIFACT_UUID, ARTIFACT_UUID);
+ dataMap.put(AUDIT_CURR_ARTIFACT_UUID, ARTIFACT_UUID);
+ dataMap.put(AUDIT_RESOURCE_PREV_STATE, PREV_STATE);
+ dataMap.put(AUDIT_RESOURCE_PREV_VERSION, PREV_VERSION);
+ dataMap.put(AUDIT_RESOURCE_CURR_STATE, CURR_STATE);
+ dataMap.put(AUDIT_RESOURCE_CURR_VERSION, CURR_VERSION);
+ dataMap.put(AUDIT_RESOURCE_DPREV_STATUS, DPREV_STATUS);
+ dataMap.put(AUDIT_RESOURCE_DCURR_STATUS, DCURR_STATUS);
+ dataMap.put(AUDIT_INVARIANT_UUID, INVARIANT_UUID);
+ dataMap.put(AUDIT_ARTIFACT_DATA, ARTIFACT_DATA);
+ dataMap.put(AUDIT_RESOURCE_COMMENT, COMMENT);
+ dataMap.put(AUDIT_DISTRIBUTION_ID, DISTRIBUTION_ID);
+ dataMap.put(AUDIT_RESOURCE_TOSCA_NODE_TYPE, TOSCA_NODE_TYPE);
+ dataMap.put(AUDIT_DISTRIBUTION_CONSUMER_ID, CONSUMER_ID);
+ dataMap.put(AUDIT_RESOURCE_URL, RESOURCE_URL);
+ dataMap.put(AUDIT_DISTRIBUTION_ENVIRONMENT_ID, ENV_ID);
+ dataMap.put(AUDIT_DISTRIBUTION_VNF_WORKLOAD_CONTEXT, VNF_WORKLOAD_CONTEXT);
+ dataMap.put(AUDIT_DISTRIBUTION_TENANT, TENANT);
+ dataMap.put(AUDIT_RESOURCE_NAME, RESOURCE_NAME);
+ dataMap.put(AUDIT_RESOURCE_TYPE, RESOURCE_TYPE);
+ timestampStr = simpleDateFormat.format(new Date());
+ dataMap.put(AUDIT_TIMESTAMP, timestampStr);
+ dataMap.put(AUDIT_DISTRIBUTION_TOPIC_NAME, TOPIC_NAME);
+
+ }
+
+ @Test
+ public void createUserAdminEvent() {
+ dataMap.put(AUDIT_ACTION, AuditingActionEnum.ADD_USER.getName());
+ AuditingGenericEvent event = dataMigration.createAuditEvent(dataMap, Table.USER_ADMIN_EVENT);
+ assertThat(AuditingActionEnum.ADD_USER.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, true);
+ verifyUserAdminEvent((UserAdminEvent) event);
+ }
+
+ @Test
+ public void createResourceAdminEvent() {
+ dataMap.put(AUDIT_ACTION, AuditingActionEnum.UPDATE_RESOURCE_METADATA.getName());
+ AuditingGenericEvent event = dataMigration.createAuditEvent(dataMap, Table.RESOURCE_ADMIN_EVENT);
+ assertThat(AuditingActionEnum.UPDATE_RESOURCE_METADATA.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, true);
+ verifyResourceAdminEvent((ResourceAdminEvent)event);
+ }
+
+ @Test
+ public void createDistributionNotificationEvent() {
+ dataMap.put(AUDIT_ACTION, AuditingActionEnum.DISTRIBUTION_NOTIFY.getName());
+ AuditingGenericEvent event = dataMigration.createAuditEvent(dataMap, Table.DISTRIBUTION_NOTIFICATION_EVENT);
+ assertThat(AuditingActionEnum.DISTRIBUTION_NOTIFY.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, true);
+ verifyDistributionNotificationEvent((DistributionNotificationEvent)event);
+ }
+
+
+ @Test
+ public void createEventForNoneAuditTable() {
+ assertThat(dataMigration.createAuditEvent(dataMap, Table.COMPONENT_CACHE)).isNull();
+
+ }
+
+ @Test
+ public void createEventWhenSomeFieldValuesNotSet() {
+ dataMap.clear();
+ dataMap.put(AUDIT_ACTION, AuditingActionEnum.AUTH_REQUEST.getName());
+ AuditingGenericEvent event = dataMigration.createAuditEvent(dataMap, Table.AUTH_EVENT);
+ assertThat(AuditingActionEnum.AUTH_REQUEST.getName()).isEqualTo(event.getAction());
+ assertThat(event.getStatus()).isNull();
+ assertThat(event.getDesc()).isNull();
+ assertThat(event.getRequestId()).isNull();
+ }
+
+ @Test
+ public void createAuthEvent() {
+ dataMap.put(AUDIT_ACTION, AuditingActionEnum.AUTH_REQUEST.getName());
+ AuditingGenericEvent event = dataMigration.createAuditEvent(dataMap, Table.AUTH_EVENT);
+ assertThat(AuditingActionEnum.AUTH_REQUEST.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, false);
+ verifyAuthEvent((AuthEvent) event);
+ }
+
+ @Test
+ public void createImportResourceEventFromEsObject() throws IOException{
+ AuditingGenericEvent event = dataMigration.createAuditRecordForCassandra(String.format(ES_STRING, AuditingActionEnum.IMPORT_RESOURCE.getName(), timestampStr), Table.RESOURCE_ADMIN_EVENT);
+ assertThat(AuditingActionEnum.IMPORT_RESOURCE.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, true);
+ verifyResourceAdminEvent((ResourceAdminEvent)event);
+ }
+
+ @Test
+ public void createGetUserListEventFromEsObject() throws IOException{
+ AuditingGenericEvent event = dataMigration.createAuditRecordForCassandra(String.format(ES_STRING, AuditingActionEnum.GET_USERS_LIST.getName(), timestampStr),
+ Table.GET_USERS_LIST_EVENT);
+ assertThat(AuditingActionEnum.GET_USERS_LIST.getName()).isEqualTo(event.getAction());
+ verifyCommonData(event, false);
+ assertThat(((GetUsersListEvent)event).getModifier()).isEqualTo(MODIFIER);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void createEventFromEsFailedWhenActionDoesNotExist() throws IOException {
+ dataMigration.createAuditRecordForCassandra(String.format(ES_STRING, "WRONG", timestampStr),
+ Table.CONSUMER_EVENT);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void createRecordWhenJsonIsEmpty() throws IOException{
+ dataMigration.createAuditRecordForCassandra("{}",
+ Table.CONSUMER_EVENT);
+ }
+
+ private void verifyCommonData(AuditingGenericEvent event, boolean isServiceInstanceProvided) {
+ assertThat(STATUS).isEqualTo(event.getStatus());
+ if (isServiceInstanceProvided) {
+ assertThat(SERVICE_INSTANCE_ID).isEqualTo(event.getServiceInstanceId());
+ }
+ else {
+ assertThat(event.getServiceInstanceId()).isNull();
+ }
+ assertThat(DESCRIPTION).isEqualTo(event.getDesc());
+ assertThat(REQUEST_ID).isEqualTo(event.getRequestId());
+ }
+
+ private void verifyUserAdminEvent(UserAdminEvent event) {
+ assertThat(USER_AFTER).isEqualTo(event.getUserAfter());
+ assertThat(USER_BEFORE).isEqualTo(event.getUserBefore());
+ verifyTimestamp(event.getTimestamp1());
+ }
+
+ private void verifyAuthEvent(AuthEvent event) {
+ assertThat(USER).isEqualTo(event.getUser());
+ assertThat(AUTH_URL).isEqualTo(event.getUrl());
+ assertThat(event.getAuthStatus()).isNull();
+ assertThat(AUTH_RELM).isEqualTo(event.getRealm());
+ }
+
+ private void verifyTimestamp(Date date) {
+ assertThat(timestampStr).isEqualTo(simpleDateFormat.format(date));
+ }
+
+ private void verifyResourceAdminEvent(ResourceAdminEvent event) {
+ assertThat(CURR_STATE).isEqualTo(event.getCurrState());
+ assertThat(CURR_VERSION).isEqualTo(event.getCurrVersion());
+ assertThat(ARTIFACT_UUID).isEqualTo(event.getCurrArtifactUUID());
+ assertThat(PREV_STATE).isEqualTo(event.getPrevState());
+ assertThat(PREV_VERSION).isEqualTo(event.getPrevVersion());
+ assertThat(ARTIFACT_UUID).isEqualTo(event.getPrevArtifactUUID());
+ assertThat(INVARIANT_UUID).isEqualTo(event.getInvariantUUID());
+ assertThat(ARTIFACT_DATA).isEqualTo(event.getArtifactData());
+ assertThat(RESOURCE_NAME).isEqualTo(event.getResourceName());
+ assertThat(RESOURCE_TYPE).isEqualTo(event.getResourceType());
+ verifyTimestamp(event.getTimestamp1());
+ assertThat(TOSCA_NODE_TYPE).isEqualTo( event.getToscaNodeType());
+ }
+
+ private void verifyDistributionNotificationEvent(DistributionNotificationEvent event) {
+ assertThat(CURR_STATE).isEqualTo(event.getCurrState());
+ assertThat(CURR_VERSION).isEqualTo(event.getCurrVersion());
+ assertThat(TOPIC_NAME).isEqualTo(event.getTopicName());
+ assertThat(DISTRIBUTION_ID).isEqualTo(event.getDid());
+ assertThat(ENV_ID).isEqualTo(event.getEnvId());
+ assertThat(VNF_WORKLOAD_CONTEXT).isEqualTo(event.getVnfWorkloadContext());
+ assertThat(TENANT).isEqualTo(event.getTenant());
+ verifyTimestamp(event.getTimestamp1());
+ }
- private DataMigration createTestSubject() {
- return new DataMigration();
- }
-
- /*@Test(expected=IllegalArgumentException.class)
- public void testMigrateDataEsToCassandra() throws Exception {
- DataMigration testSubject;
- String appConfigDir = "src/main/resources/config/";
- boolean exportFromEs = false;
- boolean importToCassandra = false;
-
- // default test
- testSubject = createTestSubject();
- testSubject.migrateDataEsToCassandra(appConfigDir, exportFromEs, importToCassandra);
- }*/
-
- @Test(expected=NullPointerException.class)
- public void testCreateAuditRecord() throws Exception {
- DataMigration testSubject;
-
- EnumMap<AuditingFieldsKeysEnum, Object> auditingFields = new EnumMap<AuditingFieldsKeysEnum, Object>(AuditingFieldsKeysEnum.class);
- auditingFields.put(AuditingFieldsKeysEnum.AUDIT_ACTION, AuditingActionEnum.GET_CATEGORY_HIERARCHY.getName());
-
- String DATE_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS z";
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT_PATTERN);
- simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
-
- auditingFields.put(AuditingFieldsKeysEnum.AUDIT_TIMESTAMP, "2018-05-02 06:06:18.294 UTC");
-
- // default test
- testSubject = createTestSubject();
- testSubject.createAuditRecord(auditingFields);
- }
-
- @Test
- public void testTypeToTableMapping() throws Exception {
- TypeToTableMapping[] values = TypeToTableMapping.values();
-
- for (TypeToTableMapping typeToTableMapping : values) {
- TypeToTableMapping.getTableByType(typeToTableMapping.getTypeName());
- typeToTableMapping.getTable();
-
- }
-
- TypeToTableMapping.getTableByType("stam");
- }
} \ No newline at end of file