public function testReturnReportWithEventsOnEnterWorkflow()
 {
     $model = new Item04();
     $model->on(WorkflowEvent::beforeEnterStatus('Item04Workflow/A'), function ($event) {
         $event->invalidate('my error message');
     });
     $report = $model->getNextStatuses(false, true);
     $this->assertCount(1, $report);
     $this->assertArrayHasKey('Item04Workflow/A', $report);
     $this->assertInstanceOf('raoul2000\\workflow\\base\\Status', $report['Item04Workflow/A']['status']);
     $this->assertCount(3, $report['Item04Workflow/A']['event']);
     $this->assertEquals([0 => ['name' => SimpleWorkflowBehavior::EVENT_BEFORE_CHANGE_STATUS, 'success' => null], 1 => ['name' => 'beforeEnterWorkflow{Item04Workflow}', 'success' => null], 2 => ['name' => 'beforeEnterStatus{Item04Workflow/A}', 'success' => false, 'messages' => [0 => 'my error message']]], $report['Item04Workflow/A']['event']);
     $this->assertEquals(false, $report['Item04Workflow/A']['isValid']);
 }
 public function testReturnReportWithEventsOnEnterWorkflow()
 {
     /** @var Item04|ActiveWorkflowBehavior $model */
     $model = new Item04();
     $model->on(WorkflowEvent::beforeEnterStatus('Item04Workflow/A'), function ($event) {
         /** @var WorkflowEvent $event*/
         $event->invalidate('my error message');
     });
     $report = $model->getNextStatuses(false, true);
     $this->assertCount(1, $report);
     $this->assertArrayHasKey('Item04Workflow/A', $report);
     $this->assertInstanceOf('fproject\\workflow\\core\\Status', $report['Item04Workflow/A']['status']);
     $this->assertCount(2, $report['Item04Workflow/A']['event']);
     $this->assertEquals([0 => ['name' => 'beforeEnterWorkflow{Item04Workflow}', 'success' => null], 1 => ['name' => 'beforeEnterStatus{Item04Workflow/A}', 'success' => false, 'messages' => [0 => 'my error message']]], $report['Item04Workflow/A']['event']);
     $this->assertEquals(false, $report['Item04Workflow/A']['isValid']);
 }