Interface TestActivityEnvironment

  • All Known Implementing Classes:
    TestActivityEnvironmentInternal

    public interface TestActivityEnvironment
    The helper class for unit testing activity implementations. Supports calls to Activity methods from the tested activities. An example test:
    
       public interface TestActivity {
         String activity1(String input);
       }
    
       private static class ActivityImpl implements TestActivity {
        @Override
         public String activity1(String input) {
           return Activity.getExecutionContext().getInfo().getActivityType() + "-" + input;
         }
       }
    
      @Test
       public void testSuccess() {
         testEnvironment.registerActivitiesImplementations(new ActivityImpl());
         TestActivity activity = testEnvironment.newActivityStub(TestActivity.class);
         String result = activity.activity1("input1");
         assertEquals("TestActivity::activity1-input1", result);
       }
     
    Use TestWorkflowEnvironment to test a workflow code.
    • Method Detail

      • registerActivitiesImplementations

        void registerActivitiesImplementations​(java.lang.Object... activityImplementations)
        Registers activity implementations to test. Use newActivityStub(Class) to create stubs that can be used to invoke them.
      • newActivityStub

        <T> T newActivityStub​(java.lang.Class<T> activityInterface)
        Creates a stub that can be used to invoke activities registered through registerActivitiesImplementations(Object...).
        Type Parameters:
        T - Type of the activity interface.
        Parameters:
        activityInterface - activity interface class that the object under test implements.
        Returns:
        The stub that implements the activity interface.
      • newActivityStub

        <T> T newActivityStub​(java.lang.Class<T> activityInterface,
                              io.temporal.activity.ActivityOptions options)
        Creates a stub that can be used to invoke activities registered through registerActivitiesImplementations(Object...).
        Type Parameters:
        T - Type of the activity interface.
        Parameters:
        activityInterface - activity interface class that the object under test implements
        options - options that specify the activity invocation parameters
        Returns:
        The stub that implements the activity interface.
      • newLocalActivityStub

        <T> T newLocalActivityStub​(java.lang.Class<T> activityInterface,
                                   io.temporal.activity.LocalActivityOptions options,
                                   java.util.Map<java.lang.String,​io.temporal.activity.LocalActivityOptions> activityMethodOptions)
        Creates a stub that can be used to invoke activities registered through registerActivitiesImplementations(Object...).
        Type Parameters:
        T - Type of the activity interface.
        Parameters:
        activityInterface - activity interface class that the object under test implements
        options - options that specify the activity invocation parameters
        activityMethodOptions - a map keyed on Activity Type Name to its specific invocation parameters. By default the name of an activity type is its method name with the first letter capitalized.
        Returns:
        The stub that implements the activity interface.
      • setActivityHeartbeatListener

        <T> void setActivityHeartbeatListener​(java.lang.Class<T> detailsClass,
                                              io.temporal.workflow.Functions.Proc1<T> listener)
        Sets a listener that is called every time an activity implementation heartbeats through ActivityExecutionContext.heartbeat(Object).
        Type Parameters:
        T - Type of the heartbeat details.
        Parameters:
        detailsClass - class of the details passed to the ActivityExecutionContext.heartbeat(Object).
        listener - listener to register.
      • setActivityHeartbeatListener

        <T> void setActivityHeartbeatListener​(java.lang.Class<T> detailsClass,
                                              java.lang.reflect.Type detailsType,
                                              io.temporal.workflow.Functions.Proc1<T> listener)
        Sets a listener that is called every time an activity implementation heartbeats through ActivityExecutionContext.heartbeat(Object).
        Type Parameters:
        T - Type of the heartbeat details.
        Parameters:
        detailsClass - class of the details passed to the ActivityExecutionContext.heartbeat(Object).
        detailsType - type of the details. Differs for detailsClass for generic types.
        listener - listener to register.
      • requestCancelActivity

        void requestCancelActivity()
        Requests activity cancellation. The cancellation is going to be delivered to the activity on the next heartbeat.
      • close

        void close()