2121package io .temporal .worker ;
2222
2323import static org .junit .Assert .assertEquals ;
24+ import static org .junit .Assert .assertSame ;
2425import static org .junit .Assert .assertThrows ;
26+ import static org .mockito .Mockito .mock ;
2527
2628import io .temporal .worker .tuning .*;
29+ import java .time .Duration ;
2730import org .junit .Test ;
2831
2932public class WorkerOptionsTest {
@@ -50,6 +53,61 @@ public void verifyWorkerOptionsEquality() {
5053 assertEquals (w1 , w2 );
5154 }
5255
56+ @ Test
57+ public void verifyNewBuilderFromExistingWorkerOptions () {
58+ WorkerOptions w1 =
59+ WorkerOptions .newBuilder ()
60+ .setMaxWorkerActivitiesPerSecond (100 )
61+ .setMaxConcurrentActivityExecutionSize (1000 )
62+ .setMaxConcurrentWorkflowTaskExecutionSize (500 )
63+ .setMaxConcurrentLocalActivityExecutionSize (200 )
64+ .setWorkerTuner (mock (WorkerTuner .class ))
65+ .setMaxTaskQueueActivitiesPerSecond (50 )
66+ .setMaxConcurrentWorkflowTaskPollers (4 )
67+ .setMaxConcurrentActivityTaskPollers (3 )
68+ .setLocalActivityWorkerOnly (false )
69+ .setDefaultDeadlockDetectionTimeout (2 )
70+ .setMaxHeartbeatThrottleInterval (Duration .ofSeconds (10 ))
71+ .setDefaultHeartbeatThrottleInterval (Duration .ofSeconds (7 ))
72+ .setStickyQueueScheduleToStartTimeout (Duration .ofSeconds (60 ))
73+ .setDisableEagerExecution (false )
74+ .setUseBuildIdForVersioning (false )
75+ .setBuildId ("build-id" )
76+ .setStickyTaskQueueDrainTimeout (Duration .ofSeconds (15 ))
77+ .setIdentity ("worker-identity" )
78+ .build ();
79+
80+ WorkerOptions w2 = WorkerOptions .newBuilder (w1 ).build ();
81+
82+ assertEquals (w1 .getMaxWorkerActivitiesPerSecond (), w2 .getMaxWorkerActivitiesPerSecond (), 0 );
83+ assertEquals (
84+ w1 .getMaxConcurrentActivityExecutionSize (), w2 .getMaxConcurrentActivityExecutionSize ());
85+ assertEquals (
86+ w1 .getMaxConcurrentWorkflowTaskExecutionSize (),
87+ w2 .getMaxConcurrentWorkflowTaskExecutionSize ());
88+ assertEquals (
89+ w1 .getMaxConcurrentLocalActivityExecutionSize (),
90+ w2 .getMaxConcurrentLocalActivityExecutionSize ());
91+ assertSame (w1 .getWorkerTuner (), w2 .getWorkerTuner ());
92+ assertEquals (
93+ w1 .getMaxTaskQueueActivitiesPerSecond (), w2 .getMaxTaskQueueActivitiesPerSecond (), 0 );
94+ assertEquals (
95+ w1 .getMaxConcurrentWorkflowTaskPollers (), w2 .getMaxConcurrentWorkflowTaskPollers ());
96+ assertEquals (
97+ w1 .getMaxConcurrentActivityTaskPollers (), w2 .getMaxConcurrentActivityTaskPollers ());
98+ assertEquals (w1 .isLocalActivityWorkerOnly (), w2 .isLocalActivityWorkerOnly ());
99+ assertEquals (w1 .getMaxHeartbeatThrottleInterval (), w2 .getMaxHeartbeatThrottleInterval ());
100+ assertEquals (
101+ w1 .getDefaultHeartbeatThrottleInterval (), w2 .getDefaultHeartbeatThrottleInterval ());
102+ assertEquals (
103+ w1 .getStickyQueueScheduleToStartTimeout (), w2 .getStickyQueueScheduleToStartTimeout ());
104+ assertEquals (w1 .isEagerExecutionDisabled (), w2 .isEagerExecutionDisabled ());
105+ assertEquals (w1 .isUsingBuildIdForVersioning (), w2 .isUsingBuildIdForVersioning ());
106+ assertEquals (w1 .getBuildId (), w2 .getBuildId ());
107+ assertEquals (w1 .getStickyTaskQueueDrainTimeout (), w2 .getStickyTaskQueueDrainTimeout ());
108+ assertEquals (w1 .getIdentity (), w2 .getIdentity ());
109+ }
110+
53111 @ Test
54112 public void canBuildMixedSlotSupplierTuner () {
55113 ResourceBasedController resourceController =
0 commit comments