@@ -181,6 +181,46 @@ public void validateAndBuildWithDefaultsIsIdempotentWithPollerBehavior() {
181181 assertNotNull (second .getWorkflowTaskPollersBehavior ());
182182 }
183183
184+ @ Test
185+ public void setUsingVirtualThreadsEnablesAllWorkers () {
186+ WorkerOptions options = WorkerOptions .newBuilder ().setUsingVirtualThreads (true ).build ();
187+ assertTrue (options .isUsingVirtualThreadsOnWorkflowWorker ());
188+ assertTrue (options .isUsingVirtualThreadsOnActivityWorker ());
189+ assertTrue (options .isUsingVirtualThreadsOnLocalActivityWorker ());
190+ assertTrue (options .isUsingVirtualThreadsOnNexusWorker ());
191+ }
192+
193+ @ Test
194+ public void perWorkerVirtualThreadOptionsAreIndependent () {
195+ WorkerOptions workflowOnly =
196+ WorkerOptions .newBuilder ().setUsingVirtualThreadsOnWorkflowWorker (true ).build ();
197+ assertTrue (workflowOnly .isUsingVirtualThreadsOnWorkflowWorker ());
198+ assertFalse (workflowOnly .isUsingVirtualThreadsOnActivityWorker ());
199+ assertFalse (workflowOnly .isUsingVirtualThreadsOnLocalActivityWorker ());
200+ assertFalse (workflowOnly .isUsingVirtualThreadsOnNexusWorker ());
201+
202+ WorkerOptions activityOnly =
203+ WorkerOptions .newBuilder ().setUsingVirtualThreadsOnActivityWorker (true ).build ();
204+ assertFalse (activityOnly .isUsingVirtualThreadsOnWorkflowWorker ());
205+ assertTrue (activityOnly .isUsingVirtualThreadsOnActivityWorker ());
206+ assertFalse (activityOnly .isUsingVirtualThreadsOnLocalActivityWorker ());
207+ assertFalse (activityOnly .isUsingVirtualThreadsOnNexusWorker ());
208+
209+ WorkerOptions localActivityOnly =
210+ WorkerOptions .newBuilder ().setUsingVirtualThreadsOnLocalActivityWorker (true ).build ();
211+ assertFalse (localActivityOnly .isUsingVirtualThreadsOnWorkflowWorker ());
212+ assertFalse (localActivityOnly .isUsingVirtualThreadsOnActivityWorker ());
213+ assertTrue (localActivityOnly .isUsingVirtualThreadsOnLocalActivityWorker ());
214+ assertFalse (localActivityOnly .isUsingVirtualThreadsOnNexusWorker ());
215+
216+ WorkerOptions nexusOnly =
217+ WorkerOptions .newBuilder ().setUsingVirtualThreadsOnNexusWorker (true ).build ();
218+ assertFalse (nexusOnly .isUsingVirtualThreadsOnWorkflowWorker ());
219+ assertFalse (nexusOnly .isUsingVirtualThreadsOnActivityWorker ());
220+ assertFalse (nexusOnly .isUsingVirtualThreadsOnLocalActivityWorker ());
221+ assertTrue (nexusOnly .isUsingVirtualThreadsOnNexusWorker ());
222+ }
223+
184224 @ Test
185225 public void verifyMaxTaskQueuePerSecondsDisablesEagerExecution () {
186226 // Verify that by default eager execution is enabled
0 commit comments