Class KalixTestKitExtension

Object
kalix.javasdk.testkit.junit.jupiter.KalixTestKitExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.Extension

public final class KalixTestKitExtension extends Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
A JUnit 5 "Jupiter" Extension for KalixTestKit, which automatically manages the lifecycle of the testkit. The testkit will be automatically stopped when the test completes or fails.

Example:

 import kalix.javasdk.testkit.junit.jupiter.KalixTestKitExtension;

 public class MyKalixIntegrationTest {

   private static final Kalix MY_KALIX = new Kalix(); // with registered services

   @RegisterExtension
   public static final KalixTestKitExtension testKit = new KalixTestKitExtension(MY_KALIX);

   private final MyServiceClient client; // generated Akka gRPC client

   public MyKalixIntegrationTest() {
     this.client = MyServiceClient.create(testKit.getGrpcClientSettings(), testKit.getActorSystem());
   }

   @Test
   public void test() {
     // use client to test service
   }
 }
 
  • Constructor Details

    • KalixTestKitExtension

      public KalixTestKitExtension(kalix.javasdk.Kalix kalix)
    • KalixTestKitExtension

      public KalixTestKitExtension(kalix.javasdk.Kalix kalix, KalixTestKit.Settings settings)
    • KalixTestKitExtension

      public KalixTestKitExtension(kalix.javasdk.Kalix kalix, kalix.javasdk.impl.MessageCodec messageCodec, KalixTestKit.Settings settings)
  • Method Details

    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception
      JUnit5 support - extension based
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
      Throws:
      Exception
    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception
      JUnit5 support - extension based
      Specified by:
      beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      Throws:
      Exception
    • getValueEntityIncomingMessages

      public EventingTestKit.IncomingMessages getValueEntityIncomingMessages(String typeId)
      Get incoming messages for ValueEntity.
      Parameters:
      typeId - @TypeId or entity_type of the ValueEntity (depending on the used SDK)
    • getEventSourcedEntityIncomingMessages

      public EventingTestKit.IncomingMessages getEventSourcedEntityIncomingMessages(String typeId)
      Get incoming messages for EventSourcedEntity.
      Parameters:
      typeId - @TypeId or entity_type of the EventSourcedEntity (depending on the used SDK)
    • getStreamIncomingMessages

      public EventingTestKit.IncomingMessages getStreamIncomingMessages(String service, String streamId)
      Get incoming messages for Stream (eventing.in.direct in case of protobuf SDKs).
      Parameters:
      service - service name
      streamId - service stream id
    • getTopicIncomingMessages

      public EventingTestKit.IncomingMessages getTopicIncomingMessages(String topic)
      Get incoming messages for Topic.
      Parameters:
      topic - topic name
    • getTopicOutgoingMessages

      public EventingTestKit.OutgoingMessages getTopicOutgoingMessages(String topic)
      Get mocked topic destination.
      Parameters:
      topic - topic name
    • getMessageBuilder

      public EventingTestKit.MessageBuilder getMessageBuilder()
      Returns EventingTestKit.MessageBuilder utility to create EventingTestKit.Messages for the eventing testkit.
    • getHost

      public String getHost()
      Get the host name/IP address where the Kalix service is available. This is relevant in certain Continuous Integration environments.
      Returns:
      Kalix host
    • getPort

      public int getPort()
      Get the local port where the Kalix service is available.
      Returns:
      local Kalix port
    • getGrpcClient

      public <T> T getGrpcClient(Class<T> clientClass)
      Get an Akka gRPC client for the given service name. The same client instance is shared for the test. The lifecycle of the client is managed by the SDK and it should not be stopped by user code.
      Type Parameters:
      T - The "service" interface generated for the service by Akka gRPC
      Parameters:
      clientClass - The class of a gRPC service generated by Akka gRPC
    • getMaterializer

      public akka.stream.Materializer getMaterializer()
      An Akka Stream materializer to use for running streams. Needed for example in a command handler which accepts streaming elements but returns a single async reply once all streamed elements has been consumed.
    • getActorSystem

      public akka.actor.ActorSystem getActorSystem()
      Get an ActorSystem for creating Akka HTTP clients.
      Returns:
      test actor system