Files
state-machine/tests/StateTraitTest.php

31 lines
1.1 KiB
PHP
Raw Permalink Normal View History

2026-01-07 01:24:40 +01:00
<?php
namespace NoccyLabs\StateMachine;
use NoccyLabs\StateMachine\StateMachineTrait;
use NoccyLabs\StateMachine\StateTrait;
use NoccyLabs\StateMachine\Attributes\ValidTransitions;
require_once __DIR__."/OrderState.php";
#[\PHPUnit\Framework\Attributes\CoversClass(StateTrait::class)]
class StateTraitTest extends \PHPUnit\Framework\TestCase
{
public function testValidTransitions()
{
$os = OrderState::PENDING;
$this->assertTrue($os->canTransitionTo(OrderState::PROCESSING));
$this->assertFalse($os->canTransitionTo(OrderState::PROCESSED));
$os = OrderState::PROCESSING;
$this->assertTrue($os->canTransitionTo(OrderState::PENDING));
$this->assertTrue($os->canTransitionTo(OrderState::PROCESSED));
$this->assertFalse($os->canTransitionTo(OrderState::SHIPPED));
$os = OrderState::SHIPPED;
$this->assertFalse($os->canTransitionTo(OrderState::PENDING));
$this->assertFalse($os->canTransitionTo(OrderState::PROCESSED));
$this->assertFalse($os->canTransitionTo(OrderState::SHIPPED));
}
}