function it_should_sort_on_priority(TaskInterface $task1, TaskInterface $task2, TaskInterface $task3, GrumPHP $grumPHP)
{
$this->beConstructedWith([$task1, $task2, $task3]);
$task1->getName()->willReturn('task1');
$task2->getName()->willReturn('task2');
$task3->getName()->willReturn('task3');
$grumPHP->getTaskMetadata('task1')->willReturn(['priority' => 100]);
$grumPHP->getTaskMetadata('task2')->willReturn(['priority' => 200]);
$grumPHP->getTaskMetadata('task3')->willReturn(['priority' => 100]);
$result = $this->sortByPriority($grumPHP);
$result->shouldBeAnInstanceOf(TasksCollection::class);
$result->count()->shouldBe(3);
$tasks = $result->toArray();
$tasks[0]->shouldBe($task2);
$tasks[1]->shouldBe($task1);
$tasks[2]->shouldBe($task3);
}