Lines 100.00% 6 / 6
Methods 100.00% 1 / 1
Classes 100.00% 1 / 1
Name Lines Methods CRAP
 canEnter 100.00% 6 / 6 100.00% 1 / 1 10
7enum WorkerPhase: string
8{
9    case Live = 'live';
10    case Spawning = 'spawning';
11    case Stopping = 'stopping';
12    case RestartScheduled = 'restart_scheduled';
13    case Quarantined = 'quarantined';
14    case Stopped = 'stopped';
15
16    public function canEnter(self $next): bool
17    {
18        return match ($this) {
19            self::Stopped => \in_array($next, [self::Spawning, self::RestartScheduled, self::Quarantined], true),
20            self::Spawning => $next === self::Live || $next === self::Stopped,
21            self::Live => $next === self::Stopped || $next === self::Stopping,
22            self::Stopping => $next === self::Spawning || $next === self::Stopped,
23            self::RestartScheduled, self::Quarantined => $next === self::Spawning || $next === self::Stopped,
24        };
25    }
26}