public function testParseAndRunCommand()
 {
     $result = TaskRunner::parseAndRunCommand('vm\\cron_tests\\ActionMock::returnResult()');
     $this->assertTrue($result);
     $result = TaskRunner::parseAndRunCommand('vm\\cron_tests\\ActionMock::wrongMethod()');
     $this->assertFalse($result);
     TaskLoader::setClassFolder(__DIR__ . '/runner_mocks');
     $result = TaskRunner::parseAndRunCommand('RunnerMock::anyMethod()');
     $this->assertFalse($result);
 }
 public function actionRunTask()
 {
     if (isset($_POST['task_id'])) {
         $tasks = !is_array($_POST['task_id']) ? [$_POST['task_id']] : $_POST['task_id'];
         foreach ($tasks as $t) {
             $task = Task::findOne($t);
             /**
              * @var Task $task
              */
             $output = TaskRunner::runTask($task);
             echo $output . '<hr>';
         }
     } elseif (isset($_POST['custom_task'])) {
         $result = TaskRunner::parseAndRunCommand($_POST['custom_task']);
         echo $result ? 'success' : 'failed';
     } else {
         echo 'empty task id';
     }
 }