You are here

protected function TaskRunnerTest::createTestScheduledTask in Webform Scheduled Tasks 8.2

Create a mock scheduled task to pass into the task runner.

Parameters

\Drupal\search_api\Task\TaskInterface|null $task: (Optional) A mock task or NULL if a default one should be setup.

\Drupal\webform_scheduled_tasks\Plugin\WebformScheduledTasks\ResultSetPluginInterface|null $result_set: (Optional) A mock result set or NULL if a default one should be setup.

Return value

\Drupal\webform_scheduled_tasks\Entity\WebformScheduledTaskInterface A scheduled task entity.

4 calls to TaskRunnerTest::createTestScheduledTask()
TaskRunnerTest::testHaltScheduledTaskExceptionThrown in tests/src/Unit/TaskRunnerTest.php
@covers ::executeTasks @dataProvider haltScheduledTaskExceptionThrownTestCases
TaskRunnerTest::testMultipleTasksRun in tests/src/Unit/TaskRunnerTest.php
@covers ::executeTasks
TaskRunnerTest::testRetryScheduledTaskExceptionThrown in tests/src/Unit/TaskRunnerTest.php
@covers ::executeTasks
TaskRunnerTest::testSuccessfulTaskExecuted in tests/src/Unit/TaskRunnerTest.php
@covers ::executeTasks

File

tests/src/Unit/TaskRunnerTest.php, line 126

Class

TaskRunnerTest
@coversDefaultClass \Drupal\webform_scheduled_tasks\TaskRunner @group webform_scheduled_tasks

Namespace

Drupal\Tests\webform_scheduled_tasks\Unit

Code

protected function createTestScheduledTask($task = NULL, $result_set = NULL) {
  $iterator = new \ArrayIterator([]);
  $webform = $this
    ->prophesize(WebformInterface::class);
  if ($result_set === NULL) {
    $result_set = $this
      ->prophesize(ResultSetPluginInterface::class);
    $result_set
      ->getResultSet()
      ->willReturn($iterator);
  }
  if ($task === NULL) {
    $task = $this
      ->prophesize(TaskPluginInterface::class);
    $task
      ->executeTask($iterator)
      ->shouldBeCalled();
  }
  $scheduled_task = $this
    ->prophesize(WebformScheduledTaskInterface::class);
  $scheduled_task
    ->getTaskPlugin()
    ->willReturn($task
    ->reveal());
  $scheduled_task
    ->getResultSetPlugin()
    ->willReturn($result_set
    ->reveal());
  $scheduled_task
    ->getWebform()
    ->willReturn($webform
    ->reveal());
  return $scheduled_task;
}