File tree Expand file tree Collapse file tree
core/src/main/java/io/serverlessworkflow/impl
test/src/test/java/io/serverlessworkflow/impl/test Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -176,6 +176,10 @@ public boolean suspend() {
176176 statusLock .lock ();
177177 if (TaskExecutorHelper .isActive (status .get ())) {
178178 suspended = new CompletableFuture <TaskContext >();
179+ workflowContext .instance ().status (WorkflowStatus .SUSPENDED );
180+ publishEvent (
181+ workflowContext ,
182+ l -> l .onWorkflowSuspended (new WorkflowSuspendedEvent (workflowContext )));
179183 return true ;
180184 } else {
181185 return false ;
@@ -197,11 +201,11 @@ public boolean resume() {
197201 publishEvent (
198202 workflowContext ,
199203 l -> l .onTaskResumed (new TaskResumedEvent (workflowContext , suspendedTask )));
200- publishEvent (
201- workflowContext , l -> l .onWorkflowResumed (new WorkflowResumedEvent (workflowContext )));
202204 } else {
203205 suspended = null ;
204206 }
207+ publishEvent (
208+ workflowContext , l -> l .onWorkflowResumed (new WorkflowResumedEvent (workflowContext )));
205209 return true ;
206210 } else {
207211 return false ;
@@ -216,12 +220,8 @@ public CompletableFuture<TaskContext> completedChecks(TaskContext t) {
216220 statusLock .lock ();
217221 if (suspended != null ) {
218222 suspendedTask = t ;
219- workflowContext .instance ().status (WorkflowStatus .SUSPENDED );
220223 publishEvent (
221224 workflowContext , l -> l .onTaskSuspended (new TaskSuspendedEvent (workflowContext , t )));
222- publishEvent (
223- workflowContext ,
224- l -> l .onWorkflowSuspended (new WorkflowSuspendedEvent (workflowContext )));
225225 return suspended ;
226226 }
227227 if (cancelled != null ) {
Original file line number Diff line number Diff line change @@ -115,9 +115,18 @@ void testSuspendResumeNotWait()
115115 .instance (Map .of ());
116116 CompletableFuture <WorkflowModel > future = instance .start ();
117117 instance .suspend ();
118+ assertThat (instance .status ()).isEqualTo (WorkflowStatus .SUSPENDED );
118119 instance .resume ();
119120 assertThat (future .get (1 , TimeUnit .SECONDS ).asMap ().orElseThrow ())
120121 .isEqualTo (Map .of ("name" , "Javierito" ));
122+ assertThat (instance .status ()).isEqualTo (WorkflowStatus .COMPLETED );
123+ WorkflowSuspendedCEData workflowSuspendedEvent =
124+ assertPojoInCE (
125+ "io.serverlessworkflow.workflow.suspended.v1" , WorkflowSuspendedCEData .class );
126+ WorkflowResumedCEData workflowResumedEvent =
127+ assertPojoInCE ("io.serverlessworkflow.workflow.resumed.v1" , WorkflowResumedCEData .class );
128+ assertThat (workflowSuspendedEvent .suspendedAt ())
129+ .isBeforeOrEqualTo (workflowResumedEvent .resumedAt ());
121130 }
122131
123132 @ Test
@@ -127,10 +136,10 @@ void testSuspendResumeWait()
127136 appl .workflowDefinition (WorkflowReader .readWorkflowFromClasspath ("wait-set.yaml" ))
128137 .instance (Map .of ());
129138 CompletableFuture <WorkflowModel > future = instance .start ();
130- instance .suspend ();
131139 assertThat (instance .status ()).isEqualTo (WorkflowStatus .WAITING );
132- Thread . sleep ( 550 );
140+ instance . suspend ( );
133141 assertThat (instance .status ()).isEqualTo (WorkflowStatus .SUSPENDED );
142+ Thread .sleep (550 );
134143 instance .resume ();
135144 assertThat (future .get (1 , TimeUnit .SECONDS ).asMap ().orElseThrow ())
136145 .isEqualTo (Map .of ("name" , "Javierito" ));
You can’t perform that action at this time.
0 commit comments