getAllStatusListData() public static method

The array returned is suitable to be used as list data value in (for instance) a dropdown list control. Usage example : assuming model Post has a SimpleWorkflowBehavior the following code displays a dropdown list containing all statuses defined in $post current the workflow :
echo Html::dropDownList(
		'status',
		null,
		WorkflowHelper::getAllStatusListData(
			$post->getWorkflow()->getId(),
			$post->getWorkflowSource()
		)
)
public static getAllStatusListData ( string $workflowId, IWorkflowSource $workflowSource ) : array
$workflowId string
$workflowSource IWorkflowSource
return array
 public function testGetStatusDropDownData()
 {
     $model = new Item04();
     $model->enterWorkflow();
     $ar = WorkflowHelper::GetStatusDropDownData($model);
     $listData = WorkflowHelper::getAllStatusListData($model->getWorkflow()->getId(), $model->getWorkflowSource());
     codecept_debug($ar);
     $expected = ['Item04Workflow/A' => 'Entry', 'Item04Workflow/B' => 'Published'];
     $this->assertTrue(is_array($ar));
     $this->assertTrue(isset($ar['items']) && is_array($ar['items']));
     $this->assertTrue(isset($ar['options']) && is_array($ar['options']));
     $this->assertEquals(2, count($ar));
     foreach ($listData as $status => $label) {
         $this->assertTrue(array_key_exists($status, $ar['items']));
     }
     $this->assertTrue($ar['options']['Item04Workflow/C']['disabled']);
     $this->assertTrue($ar['options']['Item04Workflow/D']['disabled']);
 }
 public function testGetAllStatusListData()
 {
     $ar = WorkflowHelper::getAllStatusListData('Item04Workflow', Yii::$app->workflowSource);
     $expected = ['Item04Workflow/A' => 'Entry', 'Item04Workflow/B' => 'Published', 'Item04Workflow/C' => 'node C', 'Item04Workflow/D' => 'node D'];
     $this->assertEquals(4, count(array_intersect_assoc($expected, $ar)));
 }
 /**
  * Returns the items and options for a dropDownList
  * All status options are in the list, but invalid transitions are disabled
  *
  * Example:
  * <pre>
  * $statusDropDownData = WorkflowHelper::getStatusDropDownData($model);
  * // Html
  * echo Html::dropDownList('status', $model->status, $statusDropdown['items'], ['options' => $statusDropdown['options']]);
  * // ActiveForm
  * echo $form->field($model, 'status')->dropDownList($statusDropDownData['items'], ['options' => $statusDropDownData['options']]);
  * </pre>
  *
  * @param BaseActiveRecord|SimpleWorkflowBehavior $model
  * @return array
  */
 public static function getStatusDropDownData($model)
 {
     $transitions = array_keys($model->getWorkflowSource()->getTransitions($model->getWorkflowStatus()->getId()));
     $items = WorkflowHelper::getAllStatusListData($model->getWorkflow()->getId(), $model->getWorkflowSource());
     $options = [];
     foreach (array_keys($items) as $status) {
         if ($status != $model->getWorkflowStatus()->getId() && !in_array($status, $transitions)) {
             $options[$status]['disabled'] = true;
         }
     }
     return ['items' => $items, 'options' => $options];
 }