Initial commit

This commit is contained in:
Christopher Vagnetoft
2026-01-07 01:24:40 +01:00
commit 3d276060ec
14 changed files with 2258 additions and 0 deletions

30
tests/StateTraitTest.php Normal file
View File

@@ -0,0 +1,30 @@
<?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));
}
}