34
34
import com .uber .cadence .internal .metrics .MetricsTag ;
35
35
import com .uber .cadence .internal .metrics .MetricsType ;
36
36
import com .uber .cadence .internal .replay .DeciderCache ;
37
+ import com .uber .cadence .serviceclient .IWorkflowService ;
38
+ import com .uber .cadence .serviceclient .WorkflowServiceTChannel ;
37
39
import com .uber .cadence .testing .TestEnvironmentOptions ;
38
40
import com .uber .cadence .testing .TestWorkflowEnvironment ;
39
41
import com .uber .cadence .workflow .Async ;
56
58
import java .util .Map ;
57
59
import java .util .Queue ;
58
60
import java .util .Random ;
59
- import org .junit .Assert ;
60
- import org .junit .Ignore ;
61
- import org .junit .Rule ;
62
- import org .junit .Test ;
61
+ import org .junit .*;
63
62
import org .junit .rules .TestName ;
63
+ import org .junit .runner .RunWith ;
64
64
import org .junit .runners .Parameterized ;
65
65
import org .slf4j .Logger ;
66
66
import org .slf4j .LoggerFactory ;
67
67
68
- // @RunWith(Parameterized.class)
69
- @ Ignore
68
+ @ RunWith (Parameterized .class )
70
69
public class StickyWorkerTest {
71
70
public static final String DOMAIN = "UnitTest" ;
72
71
73
- // TODO: Enable for docker as soon as the server commit
74
- // a36c84991664571636d37a3826b282ddbdbd2402 is released
75
- private static final boolean skipDockerService = true ;
76
- // Boolean.parseBoolean(System.getenv("SKIP_DOCKER_SERVICE"));
72
+ private static final boolean skipDockerService =
73
+ Boolean .parseBoolean (System .getenv ("SKIP_DOCKER_SERVICE" ));
77
74
78
75
@ Parameterized .Parameter public boolean useExternalService ;
79
76
@@ -91,6 +88,15 @@ public static Object[] data() {
91
88
92
89
@ Rule public TestName testName = new TestName ();
93
90
91
+ private IWorkflowService service ;
92
+
93
+ @ Before
94
+ public void setUp () {
95
+ if (testType .equals ("Docker" ) && service == null ) {
96
+ service = new WorkflowServiceTChannel ();
97
+ }
98
+ }
99
+
94
100
@ Test
95
101
public void whenStickyIsEnabledThenTheWorkflowIsCachedSignals () throws Exception {
96
102
// Arrange
@@ -104,7 +110,10 @@ public void whenStickyIsEnabledThenTheWorkflowIsCachedSignals() throws Exception
104
110
105
111
TestEnvironmentWrapper wrapper =
106
112
new TestEnvironmentWrapper (
107
- new Worker .FactoryOptions .Builder ().setMetricScope (scope ).build ());
113
+ new Worker .FactoryOptions .Builder ()
114
+ .setDisableStickyExecution (false )
115
+ .setMetricScope (scope )
116
+ .build ());
108
117
Worker .Factory factory = wrapper .getWorkerFactory ();
109
118
Worker worker = factory .newWorker (taskListName , new WorkerOptions .Builder ().build ());
110
119
worker .registerWorkflowImplementationTypes (GreetingSignalWorkflowImpl .class );
@@ -159,7 +168,10 @@ public void whenStickyIsEnabledThenTheWorkflowIsCachedActivities() throws Except
159
168
160
169
TestEnvironmentWrapper wrapper =
161
170
new TestEnvironmentWrapper (
162
- new Worker .FactoryOptions .Builder ().setMetricScope (scope ).build ());
171
+ new Worker .FactoryOptions .Builder ()
172
+ .setDisableStickyExecution (false )
173
+ .setMetricScope (scope )
174
+ .build ());
163
175
Worker .Factory factory = wrapper .getWorkerFactory ();
164
176
Worker worker = factory .newWorker (taskListName , new WorkerOptions .Builder ().build ());
165
177
worker .registerWorkflowImplementationTypes (ActivitiesWorkflowImpl .class );
@@ -214,7 +226,10 @@ public void whenStickyIsEnabledThenTheWorkflowIsCachedChildWorkflows() throws Ex
214
226
215
227
TestEnvironmentWrapper wrapper =
216
228
new TestEnvironmentWrapper (
217
- new Worker .FactoryOptions .Builder ().setMetricScope (scope ).build ());
229
+ new Worker .FactoryOptions .Builder ()
230
+ .setDisableStickyExecution (false )
231
+ .setMetricScope (scope )
232
+ .build ());
218
233
Worker .Factory factory = wrapper .getWorkerFactory ();
219
234
Worker worker = factory .newWorker (taskListName , new WorkerOptions .Builder ().build ());
220
235
worker .registerWorkflowImplementationTypes (
@@ -262,7 +277,10 @@ public void whenStickyIsEnabledThenTheWorkflowIsCachedMutableSideEffect() throws
262
277
263
278
TestEnvironmentWrapper wrapper =
264
279
new TestEnvironmentWrapper (
265
- new Worker .FactoryOptions .Builder ().setMetricScope (scope ).build ());
280
+ new Worker .FactoryOptions .Builder ()
281
+ .setDisableStickyExecution (false )
282
+ .setMetricScope (scope )
283
+ .build ());
266
284
Worker .Factory factory = wrapper .getWorkerFactory ();
267
285
Worker worker = factory .newWorker (taskListName , new WorkerOptions .Builder ().build ());
268
286
worker .registerWorkflowImplementationTypes (TestMutableSideEffectWorkflowImpl .class );
@@ -343,7 +361,8 @@ public void whenCacheIsEvictedTheWorkerCanRecover() throws Exception {
343
361
// Arrange
344
362
String taskListName = "evictedStickyTest" ;
345
363
TestEnvironmentWrapper wrapper =
346
- new TestEnvironmentWrapper (new Worker .FactoryOptions .Builder ().build ());
364
+ new TestEnvironmentWrapper (
365
+ new Worker .FactoryOptions .Builder ().setDisableStickyExecution (false ).build ());
347
366
Worker .Factory factory = wrapper .getWorkerFactory ();
348
367
Worker worker = factory .newWorker (taskListName );
349
368
worker .registerWorkflowImplementationTypes (GreetingSignalWorkflowImpl .class );
@@ -382,7 +401,8 @@ public void workflowsCanBeQueried() throws Exception {
382
401
// Arrange
383
402
String taskListName = "queryStickyTest" ;
384
403
TestEnvironmentWrapper wrapper =
385
- new TestEnvironmentWrapper (new Worker .FactoryOptions .Builder ().build ());
404
+ new TestEnvironmentWrapper (
405
+ new Worker .FactoryOptions .Builder ().setDisableStickyExecution (false ).build ());
386
406
Worker .Factory factory = wrapper .getWorkerFactory ();
387
407
Worker worker = factory .newWorker (taskListName );
388
408
worker .registerWorkflowImplementationTypes (GreetingSignalWorkflowImpl .class );
@@ -422,7 +442,8 @@ public void workflowsCanBeQueriedAfterEviction() throws Exception {
422
442
// Arrange
423
443
String taskListName = "queryEvictionStickyTest" ;
424
444
TestEnvironmentWrapper wrapper =
425
- new TestEnvironmentWrapper (new Worker .FactoryOptions .Builder ().build ());
445
+ new TestEnvironmentWrapper (
446
+ new Worker .FactoryOptions .Builder ().setDisableStickyExecution (false ).build ());
426
447
Worker .Factory factory = wrapper .getWorkerFactory ();
427
448
Worker worker = factory .newWorker (taskListName );
428
449
worker .registerWorkflowImplementationTypes (GreetingSignalWorkflowImpl .class );
@@ -467,25 +488,36 @@ private class TestEnvironmentWrapper {
467
488
468
489
public TestEnvironmentWrapper (Worker .FactoryOptions options ) {
469
490
if (options == null ) {
470
- options = new Worker .FactoryOptions .Builder ().build ();
491
+ options = new Worker .FactoryOptions .Builder ().setDisableStickyExecution (false ).build ();
492
+ }
493
+ if (useExternalService ) {
494
+ factory = new Worker .Factory (service , DOMAIN , options );
495
+ } else {
496
+ TestEnvironmentOptions testOptions =
497
+ new TestEnvironmentOptions .Builder ()
498
+ .setDomain (DOMAIN )
499
+ .setFactoryOptions (options )
500
+ .build ();
501
+ testEnv = TestWorkflowEnvironment .newInstance (testOptions );
471
502
}
472
- factory = new Worker .Factory (DOMAIN , options );
473
- TestEnvironmentOptions testOptions =
474
- new TestEnvironmentOptions .Builder ().setDomain (DOMAIN ).setFactoryOptions (options ).build ();
475
- testEnv = TestWorkflowEnvironment .newInstance (testOptions );
476
503
}
477
504
478
505
private Worker .Factory getWorkerFactory () {
479
506
return useExternalService ? factory : testEnv .getWorkerFactory ();
480
507
}
481
508
482
509
private WorkflowClient getWorkflowClient () {
483
- return useExternalService ? WorkflowClient .newInstance (DOMAIN ) : testEnv .newWorkflowClient ();
510
+ return useExternalService
511
+ ? WorkflowClient .newInstance (service , DOMAIN )
512
+ : testEnv .newWorkflowClient ();
484
513
}
485
514
486
515
private void close () {
487
- factory .shutdown (Duration .ofSeconds (1 ));
488
- testEnv .close ();
516
+ if (useExternalService ) {
517
+ factory .shutdown (Duration .ofSeconds (1 ));
518
+ } else {
519
+ testEnv .close ();
520
+ }
489
521
}
490
522
}
491
523
0 commit comments