maxEventsPerRead, resolveLinksTo), ExpectedVersion.exactly(version));
@Test public void versionPassedOnAndReturned() { ExpectedVersion expectedVersion = exactly(42); int newVersion = 45; when(eventRepository.append(any(), anyList(), any())).thenReturn(newVersion); int actualNewVersion = repository.append(AGGREGATE_ID_1, new TestEvent("test"), expectedVersion); verify(eventRepository).append(eq(AGGREGATE_ID_1), anyList(), eq(expectedVersion)); Assert.assertEquals(newVersion, actualNewVersion); }
@Test public void mergeExactlyAndNotCreated() { assertMergeFail(exactly(3), notCreated()); }
@Override public ImmutableAggregate<TState, TEvent> save( @NotNull final Aggregate<TState, TEvent> aggregate, final boolean atomic, final Map<String, String> metadata) { Preconditions.checkNotNull(aggregate); ExpectedVersion expectedVersion; if (atomic) { if (aggregate.sourceVersion() == Aggregate.VERSION_NOT_CREATED) { expectedVersion = ExpectedVersion.notCreated(); } else { expectedVersion = ExpectedVersion.exactly(aggregate.sourceVersion()); } } else { expectedVersion = ExpectedVersion.any(); } int newVersion = append( aggregate.id(), aggregate.events(), expectedVersion, metadata); return DefaultImmutableAggregate.fromExisting( projection, aggregate.id(), newVersion, aggregate.state()); }
updateExpectedVersion = ExpectedVersion.exactly(aggregate.sourceVersion()); } else { updateExpectedVersion = ExpectedVersion.notCreated();
updateExpectedVersion = ExpectedVersion.exactly(aggregate.sourceVersion()); } else { updateExpectedVersion = ExpectedVersion.notCreated();
@Override public ImmutableAggregate<TState, TEvent> save( @NotNull final Aggregate<TState, TEvent> aggregate, final boolean atomic, final Map<String, String> metadata) { Preconditions.checkNotNull(aggregate); ExpectedVersion expectedVersion; if (atomic) { if (aggregate.sourceVersion() == Aggregate.VERSION_NOT_CREATED) { expectedVersion = ExpectedVersion.notCreated(); } else { expectedVersion = ExpectedVersion.exactly(aggregate.sourceVersion()); } } else { expectedVersion = ExpectedVersion.any(); } int newVersion = append( aggregate.id(), aggregate.events(), expectedVersion, metadata); return DefaultImmutableAggregate.fromExisting( projection, aggregate.id(), newVersion, aggregate.state()); }
@Test(expected = InvalidCommandException.class) @SuppressWarnings("unchecked") public void conflictingVersionsGiveInvalidCommand() { PowerMockito.mockStatic(ExpectedVersion.class); PowerMockito.when(ExpectedVersion.merge(any(), any())) .thenThrow(new ConflictingExpectedVersionsException( "error", null, null)); Operation operation = new OperationHandlerOperation( (x, y) -> null, true, false, ExpectedVersion.exactly(42)); DefaultCommand command = new DefaultCommand(repository, operation); command.setAggregateId(AGGREGATE_ID); command.run(); }