Class TestKit

Object
akka.javasdk.testkit.TestKit

public class TestKit extends Object
Testkit for running services locally.

Requires Docker for starting a local instance of the runtime.

Create a TestKit and then start() the testkit before testing the service with HTTP clients. Call stop() after tests are complete.

  • Constructor Details

    • TestKit

      public TestKit()
      Create a new testkit for a service descriptor with the default settings.
    • TestKit

      public TestKit(TestKit.Settings settings)
      Create a new testkit for a service descriptor with custom settings.
      Parameters:
      settings - custom testkit settings
  • Method Details

    • start

      public TestKit start()
      Start this testkit with default configuration. The default configuration is loaded from application-test.conf if that exists, otherwise from application.conf.
      Returns:
      this TestKit instance
    • getHost

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

      public int getPort()
      Get the local port where the service is available.
    • getApplicationConfig

      public com.typesafe.config.Config getApplicationConfig()
      Returns:
      The config as the components of the service under test sees it, if injected.
    • 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.typed.ActorSystem<?> getActorSystem()
      Get an ActorSystem for creating Akka HTTP clients.
      Returns:
      test actor system
    • getComponentClient

      public akka.javasdk.client.ComponentClient getComponentClient()
      Get an ComponentClient for interacting "internally" with the components of a service.
    • getTimerScheduler

      public akka.javasdk.timer.TimerScheduler getTimerScheduler()
      Get a TimerScheduler for scheduling TimedAction.
    • getHttpClientProvider

      public akka.javasdk.http.HttpClientProvider getHttpClientProvider()
      Get a HttpClientProvider for looking up HTTP clients to interact with other services than the current. Requests will appear as coming from this service from an ACL perspective.
    • getSelfHttpClient

      public akka.javasdk.http.HttpClient getSelfHttpClient()
      Get a HttpClient for interacting with the service itself, the client will not be authenticated and will appear to the service as a request with the internet principal.
    • getKeyValueEntityIncomingMessages

      public EventingTestKit.IncomingMessages getKeyValueEntityIncomingMessages(String componentId)
      Get incoming messages for KeyValueEntity.
      Parameters:
      componentId - As annotated with @ComponentId on the KeyValueEntity
    • getEventSourcedEntityIncomingMessages

      public EventingTestKit.IncomingMessages getEventSourcedEntityIncomingMessages(String componentId)
      Get incoming messages for EventSourcedEntity.
      Parameters:
      componentId - As annotated with @ComponentId on the EventSourcedEntity
    • getStreamIncomingMessages

      public EventingTestKit.IncomingMessages getStreamIncomingMessages(String service, String streamId)
      Get incoming messages for Consume.ServiceStream.
      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
    • stop

      public void stop()
      Stop the testkit and local runtime.
    • availableLocalPort

      public static int availableLocalPort()
      Get an available local port for testing.
      Returns:
      available local port
    • getMessageBuilder

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

      public Optional<akka.javasdk.DependencyProvider> getDependencyProvider()
      Returns:
      The custom dependency provider used in this test, if one is defined, when overriding the dependency provided through TestKit.Settings.withDependencyProvider(DependencyProvider) the overridden provider is returned.