### Question:
AxonDBEventStore extends AbstractEventStore { @Override public TrackingEventStream openStream(TrackingToken trackingToken) { return storageEngine().openStream(trackingToken); } AxonDBEventStore(AxonDBConfiguration configuration, Serializer serializer);  AxonDBEventStore(AxonDBConfiguration configuration, Serializer serializer, EventUpcaster upcasterChain);  AxonDBEventStore(AxonDBConfiguration configuration, Serializer snapshotSerializer, Serializer eventSerializer, EventUpcaster upcasterChain); @Override TrackingEventStream openStream(TrackingToken trackingToken); QueryResultStream query(String query, boolean liveUpdates);  }### Answer:
@Test public void testPublishAndConsumeEvents() throws Exception { UnitOfWork<Message<?>> uow = DefaultUnitOfWork.startAndGet(null); testSubject.publish(GenericEventMessage.asEventMessage("Test1"), GenericEventMessage.asEventMessage("Test2"), GenericEventMessage.asEventMessage("Test3")); uow.commit(); TrackingEventStream stream = testSubject.openStream(null); List<String> received = new ArrayList<>(); while(stream.hasNextAvailable(100, TimeUnit.MILLISECONDS)) { received.add(stream.nextAvailable().getPayload().toString()); } stream.close(); assertEquals(Arrays.asList("Test1", "Test2", "Test3"), received); }