Skip to content

Commit

Permalink
Merge a4e034e into 2f1903a
Browse files Browse the repository at this point in the history
  • Loading branch information
allanmckenzie committed Aug 7, 2019
2 parents 2f1903a + a4e034e commit 3ccfb8b
Show file tree
Hide file tree
Showing 12 changed files with 292 additions and 197 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.0.0-RC11] - 2019-08-07
### Changed
- Renamed TestEventInserter to EventStoreDataAccess as an improved test class
- Added a findEventsByStreamId() method to EventStoreDataAccess

## [2.0.0-RC10] - 2019-07-22
### Fixed
- Metadata missing event number and previous event number after a JMX REBUILD command is run.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
import uk.gov.justice.services.messaging.logging.DefaultTraceLogger;
import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer;
import uk.gov.justice.services.test.utils.core.messaging.Poller;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.messaging.jms.DummyJmsEnvelopeSender;
import uk.gov.justice.services.test.utils.persistence.OpenEjbEventStoreDataSourceProvider;
import uk.gov.justice.services.yaml.YamlParser;
Expand Down Expand Up @@ -99,13 +99,13 @@ public class EventPublishIT {
private final EventStoreInitializer eventStoreInitializer = new EventStoreInitializer();
private final Clock clock = new UtcClock();

private TestEventInserter testEventInserter;
private EventStoreDataAccess eventStoreDataAccess;

@Before
public void initializeDatabase() throws Exception {
final DataSource eventStoreDataSource = eventStoreDataSourceProvider.getDefaultDataSource();
eventStoreInitializer.initializeEventStore(eventStoreDataSource);
testEventInserter = new TestEventInserter(eventStoreDataSource);
eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
}

@Module
Expand Down Expand Up @@ -192,9 +192,9 @@ public void shouldPublishEventsInTheEventLogTable() throws Exception {
final Event event_2 = eventBuilder().withStreamId(streamId).withName("event_2").withEventNumber(2L).withPositionInStream(2L).build();
final Event event_3 = eventBuilder().withStreamId(streamId).withName("event_3").withEventNumber(3L).withPositionInStream(3L).build();

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);

testEventStreamInserter.insertIntoEventStream(streamId, 1, true, clock.now());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event;
import uk.gov.justice.services.eventsourcing.source.core.EventStoreDataSourceProvider;
import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;

import java.sql.Connection;
Expand All @@ -31,7 +31,7 @@
public class EventDeQueuerIT {

private final DataSource dataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(dataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(dataSource);
private final Clock clock = new UtcClock();

@Mock
Expand All @@ -58,9 +58,9 @@ public void shouldPopEventsFromThePrePublishQueue() throws Exception {
final Event event_2 = eventBuilder().withName("example.second-event").withPositionInStream(2L).build();
final Event event_3 = eventBuilder().withName("example.third-event").withPositionInStream(3L).build();

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);

assertThat(eventDeQueuer.popNextEventId(tableName).get(), is(event_1.getId()));
assertThat(eventDeQueuer.popNextEventId(tableName).get(), is(event_2.getId()));
Expand All @@ -84,9 +84,9 @@ public void shouldPopEventsFromThePublishQueue() throws Exception {

insertInPublishQueue(event_1, event_2, event_3);

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);

assertThat(eventDeQueuer.popNextEventId(tableName).get(), is(event_1.getId()));
assertThat(eventDeQueuer.popNextEventId(tableName).get(), is(event_2.getId()));
Expand All @@ -108,9 +108,9 @@ public void shouldGetTheSizeOfTheQueue() throws Exception {

insertInPublishQueue(event_1, event_2, event_3);

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);

assertThat(eventDeQueuer.getSizeOfQueue(tableName), is(3));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import uk.gov.justice.services.eventsourcing.publishedevent.publish.helpers.TestEventStreamInserter;
import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event;
import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;

import java.sql.Connection;
Expand All @@ -33,7 +33,7 @@
public class PrePublishRepositoryIT {

private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(eventStoreDataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
private final TestEventStreamInserter testEventStreamInserter = new TestEventStreamInserter();
private final Clock clock = new UtcClock();

Expand All @@ -54,10 +54,10 @@ public void shouldGetTheSequenceNumberOfAnEvent() throws Exception {
final Event event_3 = eventBuilder().withName("event-3").withPositionInStream(103L).build();
final Event event_4 = eventBuilder().withName("event-4").withPositionInStream(104L).build();

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
testEventInserter.insertIntoEventLog(event_4);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_4);

assertThat(prePublishRepository.getEventNumber(event_1.getId(), eventStoreDataSource), is(1L));
assertThat(prePublishRepository.getEventNumber(event_2.getId(), eventStoreDataSource), is(2L));
Expand All @@ -78,10 +78,10 @@ public void shouldGetThePreviousSequenceNumberOfAnEvent() throws Exception {
final Event event_3 = eventBuilder().withStreamId(streamId).withName("event-3").withEventNumber(3l).withPositionInStream(103L).build();
final Event event_4 = eventBuilder().withStreamId(streamId).withName("event-4").withEventNumber(4l).withPositionInStream(104L).build();

testEventInserter.insertIntoEventLog(event_1);
testEventInserter.insertIntoEventLog(event_2);
testEventInserter.insertIntoEventLog(event_3);
testEventInserter.insertIntoEventLog(event_4);
eventStoreDataAccess.insertIntoEventLog(event_1);
eventStoreDataAccess.insertIntoEventLog(event_2);
eventStoreDataAccess.insertIntoEventLog(event_3);
eventStoreDataAccess.insertIntoEventLog(event_4);


assertThat(prePublishRepository.getPreviousEventNumber(1, eventStoreDataSource), is(0L));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;

import java.sql.Connection;
Expand All @@ -33,7 +33,7 @@
public class EventLogPublishIT {

private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(eventStoreDataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);

private final UtcClock utcClock = new UtcClock();

Expand Down Expand Up @@ -65,7 +65,7 @@ public void shouldUpdateThePublishQueueTableIfARowIsInsertedIntoTheEventLogTable
.withPayloadJSON(jsonEnvelope.payloadAsJsonObject().toString())
.build();

testEventInserter.insertIntoEventLog(event);
eventStoreDataAccess.insertIntoEventLog(event);

try (final Connection connection = eventStoreDataSource.getConnection();
final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM pre_publish_queue");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event;
import uk.gov.justice.services.eventsourcing.source.core.EventStoreDataSourceProvider;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.DatabaseCleaner;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;
import uk.gov.justice.services.test.utils.persistence.SequenceSetter;
Expand All @@ -34,7 +34,7 @@ public class EventNumberRenumbererIT {
private EventNumberRenumberer eventNumberRenumberer;

private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(eventStoreDataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
private final DatabaseCleaner databaseCleaner = new DatabaseCleaner();

@Before
Expand All @@ -54,13 +54,13 @@ public void shouldResetEventSequenceAndRenumberTheEvents() throws Exception {
assertThat(sequenceSetter.getCurrentSequenceValue("event_sequence_seq", eventStoreDataSource), is(11L));


testEventInserter.insertIntoEventLog(eventBuilder().withName("event 1").build());
testEventInserter.insertIntoEventLog(eventBuilder().withName("event 2").build());
testEventInserter.insertIntoEventLog(eventBuilder().withName("event 3").build());
testEventInserter.insertIntoEventLog(eventBuilder().withName("event 4").build());
testEventInserter.insertIntoEventLog(eventBuilder().withName("event 5").build());
eventStoreDataAccess.insertIntoEventLog(eventBuilder().withName("event 1").build());
eventStoreDataAccess.insertIntoEventLog(eventBuilder().withName("event 2").build());
eventStoreDataAccess.insertIntoEventLog(eventBuilder().withName("event 3").build());
eventStoreDataAccess.insertIntoEventLog(eventBuilder().withName("event 4").build());
eventStoreDataAccess.insertIntoEventLog(eventBuilder().withName("event 5").build());

final List<Event> allEvents = testEventInserter.findAllEvents();
final List<Event> allEvents = eventStoreDataAccess.findAllEvents();

assertThat(allEvents.size(), is(5));

Expand All @@ -77,7 +77,7 @@ public void shouldResetEventSequenceAndRenumberTheEvents() throws Exception {

eventNumberRenumberer.renumberEventLogEventNumber();

final List<Event> renumberedEvents = testEventInserter.findAllEvents();
final List<Event> renumberedEvents = eventStoreDataAccess.findAllEvents();

assertThat(renumberedEvents.get(0).getName(), is("event 1"));
assertThat(renumberedEvents.get(0).getEventNumber().orElse(-1L), is(1L));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import uk.gov.justice.services.jdbc.persistence.PreparedStatementWrapperFactory;
import uk.gov.justice.services.messaging.DefaultJsonObjectEnvelopeConverter;
import uk.gov.justice.services.messaging.Metadata;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.DatabaseCleaner;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;
import uk.gov.justice.services.test.utils.persistence.OpenEjbEventStoreDataSourceProvider;
Expand Down Expand Up @@ -63,7 +63,7 @@ public class RebuildPublishedEventIT {


private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(eventStoreDataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
private final DatabaseCleaner databaseCleaner = new DatabaseCleaner();
private final SequenceSetter sequenceSetter = new SequenceSetter();
private final StreamIdGenerator streamIdGenerator = new StreamIdGenerator();
Expand Down Expand Up @@ -129,11 +129,11 @@ public void shouldRenumberEventsInEventLogTruncatePublishedEventsAndUpdatePublis

sequenceSetter.setSequenceTo(CURRENT_EVENT_START_NUMBER, "event_sequence_seq", eventStoreDataSource);

testEventInserter.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1001).withPreviousEventNumber(1000).build());
testEventInserter.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1002).withPreviousEventNumber(1001).build());
testEventInserter.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1003).withPreviousEventNumber(1002).build());
testEventInserter.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1004).withPreviousEventNumber(1003).build());
testEventInserter.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1005).withPreviousEventNumber(1004).build());
eventStoreDataAccess.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1001).withPreviousEventNumber(1000).build());
eventStoreDataAccess.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1002).withPreviousEventNumber(1001).build());
eventStoreDataAccess.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1003).withPreviousEventNumber(1002).build());
eventStoreDataAccess.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1004).withPreviousEventNumber(1003).build());
eventStoreDataAccess.insertIntoPublishedEvent(publishedEventBuilder().withEventNumber(1005).withPreviousEventNumber(1004).build());

final int numberOfStreams = 10;
final int numberOfEvents = 20;
Expand All @@ -143,11 +143,11 @@ public void shouldRenumberEventsInEventLogTruncatePublishedEventsAndUpdatePublis

eventInserter.insertSomeEvents(numberOfEvents, streamIds);

final List<Event> events = testEventInserter.findAllEvents();
final List<Event> events = eventStoreDataAccess.findAllEvents();

publishedEventRebuilder.rebuild();

final List<PublishedEvent> publishedEvents = testEventInserter.findAllPublishedEvents();
final List<PublishedEvent> publishedEvents = eventStoreDataAccess.findAllPublishedEvents();

assertThat(publishedEvents.size(), is(numberOfEvents));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import uk.gov.justice.services.jdbc.persistence.JdbcResultSetStreamer;
import uk.gov.justice.services.jdbc.persistence.PreparedStatementWrapperFactory;
import uk.gov.justice.services.messaging.DefaultJsonObjectEnvelopeConverter;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;
import uk.gov.justice.services.test.utils.persistence.DatabaseCleaner;
import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory;
import uk.gov.justice.services.test.utils.persistence.OpenEjbEventStoreDataSourceProvider;
Expand Down Expand Up @@ -56,7 +56,7 @@ public class RebuildShouldIgnoreInactiveStreamsIT {


private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource();
private final TestEventInserter testEventInserter = new TestEventInserter(eventStoreDataSource);
private final EventStoreDataAccess eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
private final DatabaseCleaner databaseCleaner = new DatabaseCleaner();
private final StreamIdGenerator streamIdGenerator = new StreamIdGenerator();
private final StreamStatusInserter streamStatusInserter = new StreamStatusInserter(eventStoreDataSource);
Expand Down Expand Up @@ -133,7 +133,7 @@ public void shouldRenumberEventsInEventLogTruncatePublishedEventsAndUpdatePublis

publishedEventRebuilder.rebuild();

final List<PublishedEvent> publishedEvents = testEventInserter.findAllPublishedEventsOrderedByEventNumber();
final List<PublishedEvent> publishedEvents = eventStoreDataAccess.findAllPublishedEventsOrderedByEventNumber();

assertThat(publishedEvents.size(), is(numberOfEvents / 2));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event;
import uk.gov.justice.services.jdbc.persistence.DataAccessException;
import uk.gov.justice.services.test.utils.events.TestEventInserter;
import uk.gov.justice.services.test.utils.events.EventStoreDataAccess;

import java.sql.SQLException;
import java.util.List;
Expand All @@ -19,10 +19,10 @@ public class EventInserter {
private final PositionInStreamCounter positionInStreamCounter = new PositionInStreamCounter();
private final Random random = new Random();

private final TestEventInserter testEventInserter;
private final EventStoreDataAccess eventStoreDataAccess;

public EventInserter(final DataSource eventStoreDataSource) {
this.testEventInserter = new TestEventInserter(eventStoreDataSource);
this.eventStoreDataAccess = new EventStoreDataAccess(eventStoreDataSource);
}

public void insertSomeEvents(final int numberOfEvents, final List<UUID> streamIds) {
Expand All @@ -39,7 +39,7 @@ public void insertSomeEvents(final int numberOfEvents, final List<UUID> streamId
.withPositionInStream(positionInStreamCounter.getNextPosition(streamId))
.build();

testEventInserter.insertIntoEventLog(event);
eventStoreDataAccess.insertIntoEventLog(event);

if ((count % 100) == 0 && count != 0) {
System.out.println("Inserted " + count + " events...");
Expand Down
Loading

0 comments on commit 3ccfb8b

Please sign in to comment.