<?php 
 
declare(strict_types=1); 
 
use Tomloprod\TimeWarden\Group; 
use Tomloprod\TimeWarden\Task; 
 
it('can be created with a name', function (): void { 
    $group = new Group('GroupName'); 
 
    expect($group->name) 
        ->toBe('GroupName'); 
}); 
 
it('can add a task', function (): void { 
    $group = new Group('GroupName'); 
    $task = $group->createTask('TaskName'); 
 
    expect($group->getTasks()) 
        ->toContain($task); 
 
    /** @todo comprobar que task tenga el grupo (taskable) */ 
}); 
 
it('can replace the last task', function (): void { 
    $group = new Group('GroupName'); 
 
    $task1 = $group->createTask('TaskName1'); 
    $task2 = new Task('TaskName2', $group); 
 
    $group->replaceLastTask($task2); 
 
    expect($group->getTasks()) 
        ->not->toContain($task1); 
 
    expect($group->getTasks()) 
        ->toContain($task2); 
}); 
 
it('can start the last task if it exists', function (): void { 
    $group = new Group('GroupName'); 
    $task = $group->createTask('TaskName'); 
 
    $group->start(); 
 
    expect($task->hasStarted()) 
        ->toBeTrue(); 
}); 
 
it('does not start any task if no tasks exist', function (): void { 
    $group = new Group('GroupName'); 
 
    $group->start(); 
 
    expect($group->getLastTask()) 
        ->toBeNull(); 
}); 
 
 |