From 47da86d97172b072573808d6be95f4a6afd67493 Mon Sep 17 00:00:00 2001 From: Cassie Coyle Date: Wed, 11 Jun 2025 15:48:10 -0500 Subject: [PATCH] pull out logical changes from @salaboy's PR to release it (#1420) Signed-off-by: Cassandra Coyle Signed-off-by: Cassie Coyle Signed-off-by: siri-varma --- .../io/dapr/workflows/WorkflowContext.java | 5 +---- .../runtime/DefaultWorkflowContext.java | 6 ++++++ .../workflows/DefaultWorkflowContextTest.java | 19 +++++++++++-------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowContext.java index f649f0086..9994cb779 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowContext.java @@ -347,10 +347,7 @@ public interface WorkflowContext { * @param zonedDateTime timestamp with specific zone when the timer should expire * @return a new {@code Task} that completes after the specified delay */ - default Task createTimer(ZonedDateTime zonedDateTime) { - throw new UnsupportedOperationException("This method is not implemented."); - } - + Task createTimer(ZonedDateTime zonedDateTime); /** * Gets the deserialized input of the current task orchestration. diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java index f3e93a7c3..d11e1fe77 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java @@ -33,6 +33,7 @@ import javax.annotation.Nullable; import java.time.Duration; import java.time.Instant; +import java.time.ZonedDateTime; import java.util.List; import java.util.UUID; @@ -189,6 +190,11 @@ public class DefaultWorkflowContext implements WorkflowContext { return this.innerContext.createTimer(duration); } + @Override + public Task createTimer(ZonedDateTime zonedDateTime) { + return this.innerContext.createTimer(zonedDateTime); + } + /** * {@inheritDoc} */ diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java index bfe567364..15e8c8449 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java @@ -39,14 +39,10 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.*; public class DefaultWorkflowContextTest { private DefaultWorkflowContext context; @@ -124,6 +120,11 @@ public class DefaultWorkflowContextTest { return null; } + @Override + public Task createTimer(ZonedDateTime zonedDateTime) { + return null; + } + @Override public V getInput(Class targetType) { return null; @@ -269,8 +270,10 @@ public class DefaultWorkflowContextTest { } @Test - public void createTimerWithZonedDateTimeThrowsTest() { - assertThrows(UnsupportedOperationException.class, () -> context.createTimer(ZonedDateTime.now())); + public void createTimerWithZonedDateTimeTest() { + ZonedDateTime now = ZonedDateTime.now(); + context.createTimer(now); + verify(mockInnerContext, times(1)).createTimer(now); } @Test