Search in sources :

Example 11 with Worker

use of com.uber.cadence.worker.Worker 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 12 with Worker

use of com.uber.cadence.worker.Worker 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)

Example 13 with Worker

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

the class WorkflowTestingTest method testActivityCancellation.

@Test
public void testActivityCancellation() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(TestCancellationWorkflow.class);
    worker.registerActivitiesImplementations(new TestCancellationActivityImpl());
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestWorkflow workflow = client.newWorkflowStub(TestWorkflow.class);
    try {
        WorkflowExecution execution = WorkflowClient.start(workflow::workflow1, "input1");
        WorkflowStub untyped = client.newUntypedWorkflowStub(execution, Optional.empty());
        // While activity is running time skipping is disabled.
        // So sleep for 1 second after it is scheduled.
        testEnvironment.sleep(Duration.ofSeconds(3601));
        untyped.cancel();
        untyped.getResult(String.class);
        fail("unreacheable");
    } catch (CancellationException e) {
    }
}
Also used : WorkflowStub(com.uber.cadence.client.WorkflowStub) CancellationException(java.util.concurrent.CancellationException) Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) WorkflowExecution(com.uber.cadence.WorkflowExecution) Test(org.junit.Test)

Example 14 with Worker

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

the class WorkflowTestingTest method testTimer.

@Test
public void testTimer() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(TimerWorkflow.class);
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestWorkflow workflow = client.newWorkflowStub(TestWorkflow.class);
    long start = testEnvironment.currentTimeMillis();
    String result = workflow.workflow1("input1");
    assertEquals("TestWorkflow::workflow1-input1", result);
    assertTrue(testEnvironment.currentTimeMillis() - start >= Duration.ofHours(2).toMillis());
}
Also used : Worker(com.uber.cadence.worker.Worker) WorkflowClient(com.uber.cadence.client.WorkflowClient) Test(org.junit.Test)

Example 15 with Worker

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

the class WorkflowTestingTest method testActivityStartToCloseTimeout.

@Test
public void testActivityStartToCloseTimeout() {
    Worker worker = testEnvironment.newWorker(TASK_LIST);
    worker.registerWorkflowImplementationTypes(TestActivityTimeoutWorkflowImpl.class);
    worker.registerActivitiesImplementations(new TimingOutActivityImpl());
    worker.start();
    WorkflowClient client = testEnvironment.newWorkflowClient();
    TestActivityTimeoutWorkflow workflow = client.newWorkflowStub(TestActivityTimeoutWorkflow.class);
    try {
        workflow.workflow(10, 10, 1);
        fail("unreacheable");
    } catch (WorkflowException e) {
        assertTrue(e.getCause() instanceof ActivityTimeoutException);
        assertEquals(TimeoutType.START_TO_CLOSE, ((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)

Aggregations

Worker (com.uber.cadence.worker.Worker)18 Test (org.junit.Test)16 WorkflowClient (com.uber.cadence.client.WorkflowClient)15 WorkflowException (com.uber.cadence.client.WorkflowException)7 WorkflowExecution (com.uber.cadence.WorkflowExecution)3 WorkflowOptions (com.uber.cadence.client.WorkflowOptions)3 ActivityTimeoutException (com.uber.cadence.workflow.ActivityTimeoutException)3 CancellationException (java.util.concurrent.CancellationException)3 WorkflowStub (com.uber.cadence.client.WorkflowStub)2 GetWorkflowExecutionHistoryRequest (com.uber.cadence.GetWorkflowExecutionHistoryRequest)1 History (com.uber.cadence.History)1 HistoryEvent (com.uber.cadence.HistoryEvent)1 ActivityCancelledException (com.uber.cadence.client.ActivityCancelledException)1 ActivityCompletionClient (com.uber.cadence.client.ActivityCompletionClient)1 ActivityNotExistsException (com.uber.cadence.client.ActivityNotExistsException)1 DuplicateWorkflowException (com.uber.cadence.client.DuplicateWorkflowException)1 WorkflowClientOptions (com.uber.cadence.client.WorkflowClientOptions)1 WorkflowFailureException (com.uber.cadence.client.WorkflowFailureException)1 WorkflowTimedOutException (com.uber.cadence.client.WorkflowTimedOutException)1 DeterministicRunnerTest (com.uber.cadence.internal.sync.DeterministicRunnerTest)1