+ assertThat(testSubject.getLogMessage()).isNotBlank();
+ assertThat(testSubject.getLogMessage()).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR);
+ }
+
+ @Test
+ public void testChangeLifecycleEvent() {
+ AuditEventFactory factory = new AuditChangeLifecycleExternalApiEventFactory(
+ 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),
+ ResourceVersionInfo.newBuilder()
+ .artifactUuid(ARTIFACT_UUID)
+ .state(PREV_RESOURCE_STATE)
+ .version(PREV_RESOURCE_VERSION)
+ .build(),
+ ResourceVersionInfo.newBuilder()
+ .artifactUuid(ARTIFACT_UUID)
+ .state(CURRENT_STATE)
+ .version(CURRENT_VERSION)
+ .build(),
+ INVARIANT_UUID, modifier);
+
+ when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getAuditingEsType())))
+ .thenReturn(ActionStatus.OK);
+ when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK);
+
+ assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR);
+ verifyExternalApiEvent(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName());
+ }
+
+ private void verifyExternalApiEvent(String action) {
+ verify(cassandraDao).saveRecord(eventCaptor.capture());
+ 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.getResourceType()).isEqualTo(RESOURCE_TYPE);