public function testLeaveNewOnDelete() { $post = new Item06(); $post->name = 'post name'; $post->enterWorkflow(); verify($post->save())->true(); verify($post->getWorkflowStatus()->getId())->equals('Item06Workflow/new'); $post->canLeaveWorkflow(true); Item06Behavior::$countBeforeLeaveNew = 0; Item06Behavior::$countAfterLeaveNew = 0; expect_that($post->delete()); expect('the beforeLeaveNew has been called once', Item06Behavior::$countBeforeLeaveNew)->equals(1); expect('the afterLeaveNew has been called once', Item06Behavior::$countAfterLeaveNew)->equals(1); }
public function testLeaveWorkflowOnDelete() { $post = new Item06(); $post->name = 'post name'; $post->enterWorkflow(); verify($post->save())->true(); verify($post->getWorkflowStatus()->getId())->equals('Item06Workflow/new'); Item06Behavior::$countLeaveWorkflow = 0; $post->canLeaveWorkflow(true); expect_that($post->delete()); verify(Item06Behavior::$countLeaveWorkflow)->equals(1); $post = new Item06(); $post->name = 'post name'; $post->enterWorkflow(); verify($post->save())->true(); verify($post->getWorkflowStatus()->getId())->equals('Item06Workflow/new'); $post->canLeaveWorkflow(false); // refuse leave workflow // Now, the handler attached to the beforeLeaveWorkflow Event (see Item06Behavior) // will invalidate the event and return false (preventing the DELETE operation) expect_not($post->delete()); }