@Test @SuppressWarnings("OptionalGetWithoutIsPresent") public void testLoad_LargeAmountOfEvents() { int eventCount = testSubject.batchSize() + 10; testSubject.appendEvents(createEvents(eventCount)); assertEquals(eventCount, testSubject.readEvents(AGGREGATE).asStream().count()); assertEquals(eventCount - 1, testSubject.readEvents(AGGREGATE).asStream().reduce((a, b) -> b).get().getSequenceNumber()); }
private List<TrackedEventMessage<?>> readEvents(int eventCount) { List<TrackedEventMessage<?>> result = new ArrayList<>(); TrackingToken lastToken = null; while (result.size() < eventCount) { List<? extends TrackedEventMessage<?>> batch = testSubject.readEvents(lastToken, false).collect(Collectors.toList()); for (TrackedEventMessage<?> message : batch) { result.add(message); if (logger.isDebugEnabled()) { logger.debug(message.getPayload() + " / " + ((DomainEventMessage<?>) message).getSequenceNumber() + " => " + message.trackingToken().toString()); } lastToken = message.trackingToken(); } } return result; } }