@@ -1293,6 +1293,35 @@ public void testExecute() throws ExecutionException, InterruptedException {
1293
1293
assertEquals ("123456" , stubP6 .query ());
1294
1294
}
1295
1295
1296
+ @ Test
1297
+ public void testWorkflowIdResuePolicy () {
1298
+ startWorkerFor (TestMultiargsWorkflowsImpl .class );
1299
+
1300
+ // Without setting WorkflowIdReusePolicy, the semantics is to get result for the previous run.
1301
+ String workflowID = UUID .randomUUID ().toString ();
1302
+ WorkflowOptions workflowOptions =
1303
+ newWorkflowOptionsBuilder (taskList ).setWorkflowId (workflowID ).build ();
1304
+ TestMultiargsWorkflowsFunc1 stubF1_1 =
1305
+ workflowClient .newWorkflowStub (TestMultiargsWorkflowsFunc1 .class , workflowOptions );
1306
+ assertEquals (1 , stubF1_1 .func1 (1 ));
1307
+ TestMultiargsWorkflowsFunc1 stubF1_2 =
1308
+ workflowClient .newWorkflowStub (TestMultiargsWorkflowsFunc1 .class , workflowOptions );
1309
+ assertEquals (1 , stubF1_2 .func1 (2 ));
1310
+
1311
+ // Setting WorkflowIdReusePolicy to AllowDuplicate will trigger new run.
1312
+ workflowOptions =
1313
+ newWorkflowOptionsBuilder (taskList )
1314
+ .setWorkflowIdReusePolicy (WorkflowIdReusePolicy .AllowDuplicate )
1315
+ .setWorkflowId (workflowID )
1316
+ .build ();
1317
+ TestMultiargsWorkflowsFunc1 stubF1_3 =
1318
+ workflowClient .newWorkflowStub (TestMultiargsWorkflowsFunc1 .class , workflowOptions );
1319
+ assertEquals (2 , stubF1_3 .func1 (2 ));
1320
+
1321
+ // Setting WorkflowIdReusePolicy to RejectDuplicate or AllowDuplicateFailedOnly does not work as
1322
+ // expected. See https://github.com/uber/cadence-java-client/issues/295.
1323
+ }
1324
+
1296
1325
public static class TestChildAsyncWorkflow implements TestWorkflow1 {
1297
1326
1298
1327
@ Override
0 commit comments