Class EventSourcedTestKit<S,E,ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S,E>>

Object
kalix.javasdk.testkit.impl.EventSourcedEntityEffectsRunner<S,E>
kalix.javasdk.testkit.EventSourcedTestKit<S,E,ES>

public class EventSourcedTestKit<S,E,ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S,E>> extends kalix.javasdk.testkit.impl.EventSourcedEntityEffectsRunner<S,E>
EventSourced Testkit for use in unit tests for EventSourced entities.

To test a EventSourced create a testkit instance by calling one of the available EventSourcedTestKit.of methods. The returned testkit is stateful, and it holds internally the state of the entity.

Use the call methods to interact with the testkit.

  • Method Summary

    Modifier and Type
    Method
    Description
    <R> kalix.javasdk.testkit.EventSourcedResult<R>
    call(Function<ES,kalix.javasdk.eventsourcedentity.EventSourcedEntity.Effect<R>> func)
    The call method can be used to simulate a call to the EventSourcedEntity.
    <R> kalix.javasdk.testkit.EventSourcedResult<R>
    call(Function<ES,kalix.javasdk.eventsourcedentity.EventSourcedEntity.Effect<R>> func, kalix.javasdk.Metadata metadata)
    The call method can be used to simulate a call to the EventSourcedEntity.
    protected final S
    handleEvent(S state, E event)
     
    static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>>
    EventSourcedTestKit<S,E,ES>
    of(String entityId, Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,ES> entityFactory)
    Creates a new testkit instance from a user defined entity id and a function EventSourcedEntityContext to EventSourcedEntity.
    static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>>
    EventSourcedTestKit<S,E,ES>
    of(String entityId, Supplier<ES> entityFactory)
    Creates a new testkit instance from a user defined entity id and an EventSourcedEntity Supplier.
    static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>>
    EventSourcedTestKit<S,E,ES>
    of(Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,ES> entityFactory)
    Creates a new testkit instance from a function EventSourcedEntityContext to EventSourcedEntity.
    static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>>
    EventSourcedTestKit<S,E,ES>
    of(Supplier<ES> entityFactory)
    Creates a new testkit instance from a EventSourcedEntity Supplier.

    Methods inherited from class kalix.javasdk.testkit.impl.EventSourcedEntityEffectsRunner

    getAllEvents, getState, interpretEffects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • of

      public static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>> EventSourcedTestKit<S,E,ES> of(Supplier<ES> entityFactory)
      Creates a new testkit instance from a EventSourcedEntity Supplier.

      A default test entity id will be automatically provided.

    • of

      public static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>> EventSourcedTestKit<S,E,ES> of(Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,ES> entityFactory)
      Creates a new testkit instance from a function EventSourcedEntityContext to EventSourcedEntity.

      A default test entity id will be automatically provided.

    • of

      public static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>> EventSourcedTestKit<S,E,ES> of(String entityId, Supplier<ES> entityFactory)
      Creates a new testkit instance from a user defined entity id and an EventSourcedEntity Supplier.
    • of

      public static <S, E, ES extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S, E>> EventSourcedTestKit<S,E,ES> of(String entityId, Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,ES> entityFactory)
      Creates a new testkit instance from a user defined entity id and a function EventSourcedEntityContext to EventSourcedEntity.
    • call

      public <R> kalix.javasdk.testkit.EventSourcedResult<R> call(Function<ES,kalix.javasdk.eventsourcedentity.EventSourcedEntity.Effect<R>> func)
      The call method can be used to simulate a call to the EventSourcedEntity. The passed java lambda should return an EventSourcedEntity.Effect. The Effect is interpreted into an EventSourcedResult that can be used in test assertions.
      Type Parameters:
      R - The type of reply that is expected from invoking a command handler
      Parameters:
      func - A function from EventSourcedEntity to EventSourcedEntity.Effect.
      Returns:
      a EventSourcedResult
    • call

      public <R> kalix.javasdk.testkit.EventSourcedResult<R> call(Function<ES,kalix.javasdk.eventsourcedentity.EventSourcedEntity.Effect<R>> func, kalix.javasdk.Metadata metadata)
      The call method can be used to simulate a call to the EventSourcedEntity. The passed java lambda should return an EventSourcedEntity.Effect. The Effect is interpreted into an EventSourcedResult that can be used in test assertions.
      Type Parameters:
      R - The type of reply that is expected from invoking a command handler
      Parameters:
      func - A function from EventSourcedEntity to EventSourcedEntity.Effect.
      metadata - A metadata passed as a call context.
      Returns:
      a EventSourcedResult
    • handleEvent

      protected final S handleEvent(S state, E event)
      Specified by:
      handleEvent in class kalix.javasdk.testkit.impl.EventSourcedEntityEffectsRunner<S,E>