Search in sources :

Example 6 with WorkflowClient

use of com.uber.cadence.client.WorkflowClient in project cadence-client by uber-java.

the class WorkflowTestingTest method testActivity.

@Test
public void testActivity() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(ActivityWorkflow.class);
    worker.registerActivitiesImplementations(new ActivityImpl());
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestWorkflow workflow = client.newWorkflowStub(TestWorkflow.class);
    String result = workflow.workflow1("input1");
    assertEquals("TestActivity::activity1-input1", result);
}
Also used : Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Example 7 with WorkflowClient

use of com.uber.cadence.client.WorkflowClient in project cadence-client by uber-java.

the class WorkflowTestingTest method testFailure.

@Test
public void testFailure() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(FailingWorkflowImpl.class);
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestWorkflow workflow = client.newWorkflowStub(TestWorkflow.class);
    try {
        workflow.workflow1("input1");
        fail("unreacheable");
    } catch (WorkflowException e) {
        assertEquals("TestWorkflow::workflow1-input1", e.getCause().getMessage());
    }
}
Also used : WorkflowException(com.uber.cadence.client.WorkflowException) Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Example 8 with WorkflowClient

use of com.uber.cadence.client.WorkflowClient in project cadence-client by uber-java.

the class WorkflowTestingTest method testActivityScheduleToStartTimeout.

@Test
public void testActivityScheduleToStartTimeout() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(TestActivityTimeoutWorkflowImpl.class);
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestActivityTimeoutWorkflow workflow = client.newWorkflowStub(TestActivityTimeoutWorkflow.class);
    try {
        workflow.workflow(10, 1, 10);
        fail("unreacheable");
    } catch (WorkflowException e) {
        assertTrue(e.getCause() instanceof ActivityTimeoutException);
        assertEquals(TimeoutType.SCHEDULE_TO_START, ((ActivityTimeoutException) e.getCause()).getTimeoutType());
    }
}
Also used : ActivityTimeoutException(com.uber.cadence.workflow.ActivityTimeoutException) WorkflowException(com.uber.cadence.client.WorkflowException) Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Example 9 with WorkflowClient

use of com.uber.cadence.client.WorkflowClient in project cadence-client by uber-java.

the class WorkflowTestingTest method testSignal.

@Test
public void testSignal() throws ExecutionException, InterruptedException {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(SignaledWorkflowImpl.class);
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    SignaledWorkflow workflow = client.newWorkflowStub(SignaledWorkflow.class);
    CompletableFuture<String> result = WorkflowClient.execute(workflow::workflow1, "input1");
    // after 1 hour sleep in the workflow
    testEnvironment.sleep(Duration.ofMinutes(65));
    workflow.ProcessSignal("signalInput");
    assertEquals("signalInput-input1", result.get());
}
Also used : Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Example 10 with WorkflowClient

use of com.uber.cadence.client.WorkflowClient in project cadence-client by uber-java.

the class WorkflowTestingTest method testConcurrentDecision.

@Test
public void testConcurrentDecision() throws ExecutionException, InterruptedException {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(ConcurrentDecisionWorkflowImpl.class);
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    SignaledWorkflow workflow = client.newWorkflowStub(SignaledWorkflow.class);
    CompletableFuture<String> result = WorkflowClient.execute(workflow::workflow1, "input1");
    workflow.ProcessSignal("signalInput");
    assertEquals("signalInput-input1", result.get());
    System.out.println(testEnvironment.getDiagnostics());
}
Also used : Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Aggregations

WorkflowClient (com.uber.cadence.client.WorkflowClient)16 Test (org.junit.Test)16 Worker (com.uber.cadence.worker.Worker)15 WorkflowException (com.uber.cadence.client.WorkflowException)7 WorkflowOptions (com.uber.cadence.client.WorkflowOptions)3 WorkflowStub (com.uber.cadence.client.WorkflowStub)3 ActivityTimeoutException (com.uber.cadence.workflow.ActivityTimeoutException)3 WorkflowExecution (com.uber.cadence.WorkflowExecution)2 CancellationException (java.util.concurrent.CancellationException)2 GetWorkflowExecutionHistoryRequest (com.uber.cadence.GetWorkflowExecutionHistoryRequest)1 History (com.uber.cadence.History)1 HistoryEvent (com.uber.cadence.HistoryEvent)1 DuplicateWorkflowException (com.uber.cadence.client.DuplicateWorkflowException)1 WorkflowClientInterceptorBase (com.uber.cadence.client.WorkflowClientInterceptorBase)1 WorkflowClientOptions (com.uber.cadence.client.WorkflowClientOptions)1 WorkflowTimedOutException (com.uber.cadence.client.WorkflowTimedOutException)1 DeterministicRunnerTest (com.uber.cadence.internal.sync.DeterministicRunnerTest)1 Builder (com.uber.cadence.testing.TestEnvironmentOptions.Builder)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1