|
1 | 1 | package io.temporal.workflow; |
2 | 2 |
|
3 | 3 | import static org.junit.Assert.assertEquals; |
4 | | -import static org.junit.Assert.fail; |
5 | 4 |
|
6 | 5 | import io.temporal.activity.Activity; |
7 | 6 | import io.temporal.activity.ActivityOptions; |
|
14 | 13 | import io.temporal.failure.ApplicationFailure; |
15 | 14 | import io.temporal.testing.TestWorkflowEnvironment; |
16 | 15 | import io.temporal.testing.internal.SDKTestWorkflowRule; |
| 16 | +import io.temporal.worker.WorkflowImplementationOptions; |
17 | 17 | import java.time.Duration; |
18 | 18 | import java.util.ArrayList; |
19 | 19 | import java.util.List; |
@@ -74,6 +74,13 @@ public Object execute(EncodedValues args) { |
74 | 74 | } |
75 | 75 | } |
76 | 76 |
|
| 77 | + public static class FailingDynamicWorkflowImpl implements DynamicWorkflow { |
| 78 | + @Override |
| 79 | + public Object execute(EncodedValues args) { |
| 80 | + throw new NullPointerException("simulated"); |
| 81 | + } |
| 82 | + } |
| 83 | + |
77 | 84 | @Test |
78 | 85 | public void testDynamicWorkflow() { |
79 | 86 | TestWorkflowEnvironment testEnvironment = testWorkflowRule.getTestEnvironment(); |
@@ -124,4 +131,41 @@ public void testDynamicWorkflowFailure() { |
124 | 131 | workflow.start("startArg0", true /* fail */); |
125 | 132 | workflow.getResult(String.class); |
126 | 133 | } |
| 134 | + |
| 135 | + @Test(expected = WorkflowFailedException.class) |
| 136 | + public void testDynamicWorkflowFailureTypes() { |
| 137 | + TestWorkflowEnvironment testEnvironment = testWorkflowRule.getTestEnvironment(); |
| 138 | + testEnvironment |
| 139 | + .getWorkerFactory() |
| 140 | + .getWorker(testWorkflowRule.getTaskQueue()) |
| 141 | + .registerWorkflowImplementationTypes( |
| 142 | + WorkflowImplementationOptions.newBuilder() |
| 143 | + .setFailWorkflowExceptionTypes(NullPointerException.class) |
| 144 | + .build(), |
| 145 | + FailingDynamicWorkflowImpl.class); |
| 146 | + testEnvironment.start(); |
| 147 | + |
| 148 | + WorkflowStub workflow = testWorkflowRule.newUntypedWorkflowStub("workflowFoo"); |
| 149 | + workflow.start(); |
| 150 | + workflow.getResult(String.class); |
| 151 | + } |
| 152 | + |
| 153 | + @Test(expected = WorkflowFailedException.class) |
| 154 | + public void testDynamicWorkflowFactoryFailureTypes() { |
| 155 | + TestWorkflowEnvironment testEnvironment = testWorkflowRule.getTestEnvironment(); |
| 156 | + testEnvironment |
| 157 | + .getWorkerFactory() |
| 158 | + .getWorker(testWorkflowRule.getTaskQueue()) |
| 159 | + .registerWorkflowImplementationFactory( |
| 160 | + FailingDynamicWorkflowImpl.class, |
| 161 | + FailingDynamicWorkflowImpl::new, |
| 162 | + WorkflowImplementationOptions.newBuilder() |
| 163 | + .setFailWorkflowExceptionTypes(NullPointerException.class) |
| 164 | + .build()); |
| 165 | + testEnvironment.start(); |
| 166 | + |
| 167 | + WorkflowStub workflow = testWorkflowRule.newUntypedWorkflowStub("workflowFoo"); |
| 168 | + workflow.start(); |
| 169 | + workflow.getResult(String.class); |
| 170 | + } |
127 | 171 | } |
0 commit comments