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


  • public class EventSourcedTestKit<S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>>
    extends kalix.javasdk.testkit.impl.EventSourcedEntityEffectsRunner<S>
    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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <R> kalix.javasdk.testkit.EventSourcedResult<R> call​(java.util.function.Function<E,​kalix.javasdk.eventsourcedentity.EventSourcedEntity.Effect<R>> func)
      The call method can be used to simulate a call to the EventSourcedEntity.
      protected S handleEvent​(S state, Object event)  
      static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>>
      EventSourcedTestKit<S,​E>
      of​(String entityId, java.util.function.Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,​E> entityFactory)
      Creates a new testkit instance from a user defined entity id and a function EventSourcedEntityContext to EventSourcedEntity.
      static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>>
      EventSourcedTestKit<S,​E>
      of​(String entityId, java.util.function.Supplier<E> entityFactory)
      Creates a new testkit instance from a user defined entity id and an EventSourcedEntity Supplier.
      static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>>
      EventSourcedTestKit<S,​E>
      of​(java.util.function.Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,​E> entityFactory)
      Creates a new testkit instance from a function EventSourcedEntityContext to EventSourcedEntity.
      static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>>
      EventSourcedTestKit<S,​E>
      of​(java.util.function.Supplier<E> 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 Detail

      • of

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

        A default test entity id will be automatically provided.

      • of

        public static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>> EventSourcedTestKit<S,​E> of​(java.util.function.Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,​E> 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 extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>> EventSourcedTestKit<S,​E> of​(String entityId,
                                                                                                                                   java.util.function.Supplier<E> entityFactory)
        Creates a new testkit instance from a user defined entity id and an EventSourcedEntity Supplier.
      • of

        public static <S,​E extends kalix.javasdk.eventsourcedentity.EventSourcedEntity<S>> EventSourcedTestKit<S,​E> of​(String entityId,
                                                                                                                                   java.util.function.Function<kalix.javasdk.eventsourcedentity.EventSourcedEntityContext,​E> 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​(java.util.function.Function<E,​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
      • handleEvent

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