@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedPojoUpdateHandler<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedPojoUpdateHandler<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedPojoUpdateHandlerSingle<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedPojoUpdateHandlerSingle<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedUpdateHandler<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedUpdateHandlerSingle<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedUpdateHandlerAggregate<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedUpdateHandler<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> fold( @NotNull final ParameterizedUpdateHandlerAggregate<TState, TParam, TEvent> handler, @NotNull final Stream<TParam> params) { return foldLeft( params, (ImmutableAggregate<TState, TEvent>) this, (state, param) -> state.apply(handler, param)); }
@Test @SuppressWarnings("unchecked") public void testUpdateSingleOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updateSingle); verify(aggregate, times(1)).apply(any(UpdateHandlerSingle.class)); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testUpdatePojoSingleOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updatePojoSingle); verify(aggregate, times(1)).apply(any(PojoUpdateHandlerSingle.class)); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testAppendParamsOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::appendParams, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedAppendHandler.class), any()); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testParameterizedUpdateSingleOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updateParamsSingle, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedUpdateHandlerSingle.class), any()); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testParameterizedUpdateStateOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updateParamsState, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedUpdateHandlerAggregate.class), any()); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testParameterizedUpdatePojoOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updateParamsPojo, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedPojoUpdateHandler.class), any()); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testAppendParamsSingleWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::appendParamsSingle, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedAppendHandlerSingle.class), any()); verifyNoMoreInteractions(aggregate); }
@Test @SuppressWarnings("unchecked") public void testParameterizedUpdateOverloadWorks() { ImmutableAggregate<State, Event> aggregate = mock(ImmutableAggregate.class); aggregate.apply(this::updateParams, new Params()); verify(aggregate, times(1)).apply( any(ParameterizedUpdateHandler.class), any()); verifyNoMoreInteractions(aggregate); }