Class TestWorkflowEnvironmentInternal

    • Constructor Detail

      • TestWorkflowEnvironmentInternal

        public TestWorkflowEnvironmentInternal​(@Nullable
                                               TestEnvironmentOptions testEnvironmentOptions)
    • Method Detail

      • newWorker

        public io.temporal.worker.Worker newWorker​(java.lang.String taskQueue)
        Description copied from interface: TestWorkflowEnvironment
        Creates a new Worker instance that is connected to the in-memory test Temporal service.
        Specified by:
        newWorker in interface TestWorkflowEnvironment
        Parameters:
        taskQueue - task queue to poll.
      • newWorker

        public io.temporal.worker.Worker newWorker​(java.lang.String taskQueue,
                                                   io.temporal.worker.WorkerOptions options)
        Description copied from interface: TestWorkflowEnvironment
        Creates a new Worker instance that is connected to the in-memory test Temporal service.
        Specified by:
        newWorker in interface TestWorkflowEnvironment
        Parameters:
        taskQueue - task queue to poll.
      • currentTimeMillis

        public long currentTimeMillis()
        Description copied from interface: TestWorkflowEnvironment
        This time might not be equal to System.currentTimeMillis() due to time skipping.
        Specified by:
        currentTimeMillis in interface TestWorkflowEnvironment
        Returns:
        the current in-memory test Temporal service time in milliseconds or System.currentTimeMillis() if an external service without time skipping support is used
      • sleep

        public void sleep​(java.time.Duration duration)
        Description copied from interface: TestWorkflowEnvironment
        Wait until internal test Temporal service time passes the specified duration. This call also indicates that workflow time might jump forward (if none of the activities are running) up to the specified duration.

        This method falls back to Thread.sleep(long) if an external service without time skipping support is used

        Specified by:
        sleep in interface TestWorkflowEnvironment
      • registerDelayedCallback

        public void registerDelayedCallback​(java.time.Duration delay,
                                            java.lang.Runnable r)
        Description copied from interface: TestWorkflowEnvironment
        Registers a callback to run after the specified delay according to the test Temporal service internal clock.
        Specified by:
        registerDelayedCallback in interface TestWorkflowEnvironment
      • registerSearchAttribute

        public boolean registerSearchAttribute​(java.lang.String name,
                                               io.temporal.api.enums.v1.IndexedValueType type)
        Description copied from interface: TestWorkflowEnvironment
        Register a Search Attribute with the server.
        Specified by:
        registerSearchAttribute in interface TestWorkflowEnvironment
        Parameters:
        name - Search Attribute name
        type - Search Attribute type to be used for an elastic search index
        Returns:
        true if the search attribute was registered, false if it was registered already
        See Also:
        Add a Custom Search Attribute Using tctl
      • getWorkflowService

        @Deprecated
        public io.temporal.serviceclient.WorkflowServiceStubs getWorkflowService()
        Deprecated.
        Specified by:
        getWorkflowService in interface TestWorkflowEnvironment
        Returns:
        the in-memory test Temporal service that is owned by this.
      • getWorkflowServiceStubs

        public io.temporal.serviceclient.WorkflowServiceStubs getWorkflowServiceStubs()
        Specified by:
        getWorkflowServiceStubs in interface TestWorkflowEnvironment
        Returns:
        WorkflowServiceStubs connected to the test server (in-memory or external)
      • getDiagnostics

        public java.lang.String getDiagnostics()
        Description copied from interface: TestWorkflowEnvironment
        Currently prints histories of all workflow instances stored in the service. This is useful information to print in the case of a unit test failure. A convenient way to achieve this is to add the following Rule to a unit test:
        
          @Rule
           public TestWatcher watchman =
               new TestWatcher() {
                @Override
                 protected void failed(Throwable e, Description description) {
                   System.err.println(testEnvironment.getDiagnostics());
                   testEnvironment.close();
                 }
               };
         
        Specified by:
        getDiagnostics in interface TestWorkflowEnvironment
        Returns:
        the diagnostic data about the internal service state.
      • getWorkflowExecutionHistory

        @Deprecated
        public io.temporal.common.WorkflowExecutionHistory getWorkflowExecutionHistory​(@Nonnull
                                                                                       io.temporal.api.common.v1.WorkflowExecution execution)
        Deprecated.
        Specified by:
        getWorkflowExecutionHistory in interface TestWorkflowEnvironment
        Parameters:
        execution - identifies the workflowId and runId (optionally) to reach the history for
        Returns:
        history of the execution
      • shutdownTestService

        @Deprecated
        public void shutdownTestService()
        Deprecated.
        Description copied from interface: TestWorkflowEnvironment
        Initiates Test Service shutdown. This method is temporarily exposed to solve long poll thread shutdown for io.temporal.workflow.interceptorsTests.InterceptorExceptionTests#testExceptionOnStart(). See issue: https://github.com/temporalio/sdk-java/issues/608
        Specified by:
        shutdownTestService in interface TestWorkflowEnvironment
      • shutdown

        public void shutdown()
        Description copied from interface: TestWorkflowEnvironment
        Initiates an orderly shutdown in which polls are stopped and already received workflow and activity tasks are executed. After the shutdown calls to ActivityExecutionContext.heartbeat(Object) start throwing ActivityWorkerShutdownException. Invocation has no additional effect if already shut down. This method does not wait for previously received tasks to complete execution. Use TestWorkflowEnvironment.awaitTermination(long, TimeUnit) to do that.
        Specified by:
        shutdown in interface TestWorkflowEnvironment
      • shutdownNow

        public void shutdownNow()
        Description copied from interface: TestWorkflowEnvironment
        Initiates an orderly shutdown in which polls are stopped and already received workflow and activity tasks are attempted to be stopped. This implementation cancels tasks via Thread.interrupt(), so any task that fails to respond to interrupts may never terminate. Also, after the shutdownNow calls to ActivityExecutionContext.heartbeat(Object) start throwing ActivityWorkerShutdownException. Invocation has no additional effect if already shut down. This method does not wait for previously received tasks to complete execution. Use TestWorkflowEnvironment.awaitTermination(long, TimeUnit) to do that.
        Specified by:
        shutdownNow in interface TestWorkflowEnvironment
      • awaitTermination

        public void awaitTermination​(long timeout,
                                     java.util.concurrent.TimeUnit unit)
        Description copied from interface: TestWorkflowEnvironment
        Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
        Specified by:
        awaitTermination in interface TestWorkflowEnvironment