mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-23 16:13:50 +00:00
Fix Canceling of stale workflow cronjob
Refactor workflow cancellation logic to encapsulate transition checks in a dedicated method, and update CronJob handling to use entity workflows instead of IDs. Enhance test coverage to ensure proper handling and instantiate mocks for EntityManagerInterface.
This commit is contained in:
@@ -131,18 +131,22 @@ class CancelStaleWorkflowHandlerTest extends TestCase
|
||||
->setInitialPlaces('initial')
|
||||
->addPlaces(['initial', 'step1', 'canceled', 'final'])
|
||||
->addTransition(new Transition('to_step1', 'initial', 'step1'))
|
||||
->addTransition($cancelInit = new Transition('cancel', 'initial', 'canceled'))
|
||||
->addTransition($finalizeInit = new Transition('finalize', 'initial', 'final'))
|
||||
->addTransition($cancelStep1 = new Transition('cancel', 'step1', 'canceled'))
|
||||
->addTransition($finalizeStep1 = new Transition('finalize', 'step1', 'final'));
|
||||
->addTransition(new Transition('cancel', 'initial', 'canceled'))
|
||||
->addTransition(new Transition('finalize', 'initial', 'final'))
|
||||
->addTransition(new Transition('cancel', 'step1', 'canceled'))
|
||||
->addTransition(new Transition('finalize', 'step1', 'final'));
|
||||
|
||||
$transitionStorage = new \SplObjectStorage();
|
||||
$transitionStorage->attach($finalizeInit, ['isFinal' => true, 'isFinalPositive' => true]);
|
||||
$transitionStorage->attach($cancelInit, ['isFinal' => true, 'isFinalPositive' => false]);
|
||||
$transitionStorage->attach($finalizeStep1, ['isFinal' => true, 'isFinalPositive' => true]);
|
||||
$transitionStorage->attach($cancelStep1, ['isFinal' => true, 'isFinalPositive' => false]);
|
||||
$definitionBuilder->setMetadataStore(new InMemoryMetadataStore(placesMetadata: [
|
||||
'canceled' => [
|
||||
'isFinal' => true,
|
||||
'isFinalPositive' => false,
|
||||
],
|
||||
'final' => [
|
||||
'isFinal' => true,
|
||||
'isFinalPositive', true,
|
||||
],
|
||||
]));
|
||||
|
||||
$definitionBuilder->setMetadataStore(new InMemoryMetadataStore([], [], $transitionStorage));
|
||||
$workflow = new Workflow($definitionBuilder->build(), new EntityWorkflowMarkingStore(), null, 'dummy_workflow');
|
||||
$supports =
|
||||
new class () implements WorkflowSupportStrategyInterface {
|
||||
|
Reference in New Issue
Block a user