Skip to content

Commit

Permalink
Merge a071f2b into 107868c
Browse files Browse the repository at this point in the history
  • Loading branch information
deepakhalale committed Jul 17, 2018
2 parents 107868c + a071f2b commit 7d47280
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 12 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ on [Keep a CHANGELOG](http://keepachangelog.com/). This project adheres to

## [Unreleased]

## [2.1.0] - 2018-07-17

### Changed
- fix to remove the backup events from event log when backup is not to be retained

## [2.0.0] - 2018-06-21

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public void shouldPerformCustomActionOnStreamInEventStore() throws Exception {
swarmStarterUtil.runCommand();

assertThat(eventStoreTransformedEventPresent("sample.event.name"), is(true));
assertThat(eventStoreOriginalEventIsPresent("sample.event.name.archived.old.release"), is(false));
assertThat(streamAvailableAndActive(STREAM_ID), is(false));
assertThat(clonedStreamAvailableAndActive(), is(false));
}
Expand Down Expand Up @@ -109,6 +110,13 @@ private boolean eventStoreTransformedEventPresent(final String transformedEventN
return event.isPresent() && event.get().getName().equals(transformedEventName);
}

private boolean eventStoreOriginalEventIsPresent(final String originalEventName) {
final Stream<Event> eventLogs = EVENT_LOG_JDBC_REPOSITORY.findAll();
final Optional<Event> event = eventLogs.filter(item -> item.getName().equals(originalEventName)).findFirst();

return event.isPresent();
}

private void insertEventLogData(String eventName, long sequenceId) throws InvalidSequenceIdException {
EVENT_LOG_JDBC_REPOSITORY.insert(eventLogFrom(eventName, sequenceId, STREAM_ID));
EVENT_STREAM_JDBC_REPOSITORY.insert(STREAM_ID);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
import static uk.gov.justice.tools.eventsourcing.transformation.api.Action.NO_ACTION;

import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository;
import uk.gov.justice.services.eventsourcing.source.core.EventSource;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.tools.eventsourcing.transformation.repository.StreamRepository;
import uk.gov.justice.tools.eventsourcing.transformation.api.Action;
import uk.gov.justice.tools.eventsourcing.transformation.api.EventTransformation;
import uk.gov.justice.tools.eventsourcing.transformation.api.extension.EventTransformationFoundEvent;
import uk.gov.justice.tools.eventsourcing.transformation.repository.StreamRepository;

import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -49,6 +50,9 @@ public class EventStreamTransformationService {
@Inject
private StreamRepository streamRepository;

@Inject
private EventJdbcRepository eventRepository;

Set<EventTransformation> transformations = new HashSet<>();

/**
Expand Down Expand Up @@ -80,6 +84,7 @@ public UUID transformEventStream(final UUID streamId) {
if (!action.isKeepBackup()) {
if (backupStreamId.isPresent()) {
streamRepository.deleteStream(backupStreamId.get());
eventRepository.clear(backupStreamId.get());
} else {
if (logger.isWarnEnabled()) {
logger.warn(format("cannot delete backup stream. No backup stream was created for stream '%s'", streamId));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
import static uk.gov.justice.tools.eventsourcing.transformation.api.Action.TRANSFORM;

import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository;
import uk.gov.justice.services.eventsourcing.source.core.EventSource;
import uk.gov.justice.services.eventsourcing.source.core.EventStream;
import uk.gov.justice.services.eventsourcing.source.core.exception.EventStreamException;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.spi.DefaultJsonEnvelopeProvider;
import uk.gov.justice.tools.eventsourcing.transformation.api.Action;
Expand Down Expand Up @@ -95,6 +97,9 @@ public static Object[][] provideNoActionCombinations() {
@Mock
private StreamRepository streamRepository;

@Mock
private EventJdbcRepository eventRepository;

@InjectMocks
private EventStreamTransformationService underTest;

Expand Down Expand Up @@ -132,7 +137,7 @@ public void shouldTransformStreamOfSingleEvent() {
assertThat(jsonEnvelope.metadata().streamId().isPresent(), is(true));
jsonEnvelope.metadata().streamId().ifPresent(streamId -> assertThat(streamId, is(STREAM_ID)));

verifyZeroInteractions(streamRepository);
verifyZeroInteractions(streamRepository, eventRepository);
}

@Test
Expand All @@ -146,7 +151,7 @@ public void shouldDeactivateStreamOfSingleEvent(final Action action) {

verify(streamRepository).deactivateStream(STREAM_ID);
verifyNoMoreInteractions(streamRepository);
verifyZeroInteractions(streamTransformer);
verifyZeroInteractions(streamTransformer, eventRepository);
}

@Test
Expand All @@ -173,7 +178,7 @@ public void shouldTransformAllEventsOnStream() {
assertThat(jsonEnvelope.get(1).metadata().streamId().isPresent(), is(true));
jsonEnvelope.get(1).metadata().streamId().ifPresent(streamId -> assertThat(streamId, is(STREAM_ID)));

verifyZeroInteractions(streamRepository);
verifyZeroInteractions(streamRepository, eventRepository);
}

@Test
Expand All @@ -187,7 +192,7 @@ public void shouldDeactivateStreamOnlyOnceIrrespectiveOfNoOfEventsOnStream() {

verify(streamRepository).deactivateStream(STREAM_ID);
verifyNoMoreInteractions(streamRepository);
verifyZeroInteractions(streamTransformer);
verifyZeroInteractions(streamTransformer, eventRepository);
}

@Test
Expand All @@ -199,7 +204,7 @@ public void shouldNotPerformAnyActionOnTheStreamIfNotIndicated(final Action acti

underTest.transformEventStream(STREAM_ID);

verifyZeroInteractions(streamTransformer, streamRepository);
verifyZeroInteractions(streamTransformer, streamRepository, eventRepository);
}

@Test
Expand All @@ -212,23 +217,23 @@ public void shouldNotPerformAnyActionIfMultipleActionsAreDefinedOnAStream() {

underTest.transformEventStream(STREAM_ID);

verifyZeroInteractions(streamTransformer, streamRepository);
verifyZeroInteractions(streamTransformer, streamRepository, eventRepository);
}

@Test
public void shouldRegisterTransformation() throws InstantiationException, IllegalAccessException {
underTest.transformations = new HashSet<>();
final EventTransformationFoundEvent eventTransformationEvent = new EventTransformationFoundEvent(TestTransformation.class);

underTest.register(eventTransformationEvent);

assertThat(underTest.transformations, hasSize(1));
underTest.transformations.stream().findFirst().ifPresent(transformation ->
underTest.transformations.stream().findFirst().ifPresent(transformation ->
assertThat(transformation, instanceOf(TestTransformation.class)));
}

@Test
public void shouldPerformAllTheIndicatedActionsOnAStream() {
public void shouldPerformAllTheIndicatedActionsOnAStream() throws EventStreamException {
final JsonEnvelope event = buildEnvelope(SOURCE_EVENT_NAME);
when(eventTransformation.actionFor(any(JsonEnvelope.class))).thenReturn(
new Action(true, true, false)
Expand All @@ -238,11 +243,12 @@ public void shouldPerformAllTheIndicatedActionsOnAStream() {

underTest.transformEventStream(STREAM_ID);

final InOrder inOrder = inOrder(streamTransformer, streamRepository);
final InOrder inOrder = inOrder(streamTransformer, streamRepository, eventRepository);
inOrder.verify(streamTransformer).transformAndBackupStream(STREAM_ID, underTest.transformations);
inOrder.verify(streamRepository).deleteStream(BACKUP_STREAM_ID);
inOrder.verify(eventRepository).clear(BACKUP_STREAM_ID);
inOrder.verify(streamRepository).deactivateStream(STREAM_ID);
verifyNoMoreInteractions(streamTransformer, streamRepository);
verifyNoMoreInteractions(streamTransformer, streamRepository, eventRepository);
}

private JsonEnvelope buildEnvelope(final String eventName) {
Expand Down

0 comments on commit 7d47280

Please sign in to comment.