@Override public void appendEvents(List<? extends EventMessage<?>> events) { appendEvents(events, eventSerializer); }
@DirtiesContext @Test(expected = ConcurrencyException.class) public void testStoreDuplicateEventWithExceptionTranslator() { testSubject.appendEvents(createEvent(0), createEvent(0)); }
@DirtiesContext @Test(expected = ConcurrencyException.class) public void testUniqueKeyConstraintOnEventIdentifier() { testSubject.appendEvents(createEvent("id", AGGREGATE, 0), createEvent("id", "otherAggregate", 0)); }
@Test @DirtiesContext @SuppressWarnings({"unchecked", "OptionalGetWithoutIsPresent"}) public void testStoreAndLoadEventsWithUpcaster() { EventUpcaster mockUpcasterChain = mock(EventUpcaster.class); when(mockUpcasterChain.upcast(isA(Stream.class))).thenAnswer(invocation -> { Stream<?> inputStream = (Stream) invocation.getArguments()[0]; return inputStream.flatMap(e -> Stream.of(e, e)); }); testSubject = createEngine(mockUpcasterChain); testSubject.appendEvents(createEvents(4)); List<DomainEventMessage> upcastedEvents = testSubject.readEvents(AGGREGATE).asStream().collect(toList()); assertEquals(8, upcastedEvents.size()); Iterator<DomainEventMessage> iterator = upcastedEvents.iterator(); while (iterator.hasNext()) { DomainEventMessage event1 = iterator.next(), event2 = iterator.next(); assertEquals(event1.getAggregateIdentifier(), event2.getAggregateIdentifier()); assertEquals(event1.getSequenceNumber(), event2.getSequenceNumber()); assertEquals(event1.getPayload(), event2.getPayload()); assertEquals(event1.getMetaData(), event2.getMetaData()); } }
@DirtiesContext @Test(expected = EventStoreException.class) public void testStoreDuplicateEventWithoutExceptionResolver() { testSubject = createEngine((PersistenceExceptionResolver) e -> false); testSubject.appendEvents(createEvent(0), createEvent(0)); }
@Override public void appendEvents(List<? extends EventMessage<?>> events) { appendEvents(events, eventSerializer); }
@Override public void appendEvents(List<? extends EventMessage<?>> events) { appendEvents(events, eventSerializer); }