private void createSpy(final DomainEventStream eventStream) { lastSpy = mock(DomainEventStream.class); when(lastSpy.next()) .thenAnswer( new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { return eventStream.next(); } }); when(lastSpy.hasNext()) .thenAnswer( new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { return eventStream.hasNext(); } }); when(lastSpy.peek()) .thenAnswer( new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { return eventStream.peek(); } }); }
@Override public void appendEvents(String type, DomainEventStream events) { if (!events.hasNext()) { return; } String key = events.peek().getAggregateIdentifier().toString(); DomainEventMessage<?> lastEvent = null; while (events.hasNext()) { countDownLatch.countDown(); lastEvent = events.next(); } storedEvents.put(key, lastEvent); }
@Override public void appendEvents(String type, DomainEventStream events) { if (!events.hasNext()) { return; } String key = events.peek().getAggregateIdentifier().toString(); DomainEventMessage<?> lastEvent = null; while (events.hasNext()) { countDownLatch.countDown(); lastEvent = events.next(); if (FailingEvent.class.isAssignableFrom(lastEvent.getPayloadType())) { throw new RuntimeException("This is a failing event. EventStore refuses to store that"); } } storedEvents.put(key, lastEvent); }
@Override public DomainEventMessage peek() { return delegate.peek(); }