{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/tests\/Unit\/Domain\/ValueObject\/TaskStatusTest.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/tests\/Unit\/Domain\/ValueObject\/TaskStatusTest.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Tests\\Unit\\Domain\\ValueObject;\n\nuse Domain\\ValueObject\\TaskStatus;\nuse PHPUnit\\Framework\\Attributes\\CoversClass;\nuse PHPUnit\\Framework\\Attributes\\DataProvider;\nuse PHPUnit\\Framework\\TestCase;\n\n#[CoversClass(TaskStatus::class)]\nclass TaskStatusTest extends TestCase\n{\n public function testAllStatusValuesExist(): void\n {\n $this->assertSame('pending', TaskStatus::PENDING->value);\n $this->assertSame('in_progress', TaskStatus::IN_PROGRESS->value);\n $this->assertSame('completed', TaskStatus::COMPLETED->value);\n $this->assertSame('failed', TaskStatus::FAILED->value);\n $this->assertSame('cancelled', TaskStatus::CANCELLED->value);\n }\n\n public function testPendingCanTransitionToInProgress(): void\n {\n $this->assertTrue(TaskStatus::PENDING->canTransitionTo(TaskStatus::IN_PROGRESS));\n }\n\n public function testPendingCanTransitionToCancelled(): void\n {\n $this->assertTrue(TaskStatus::PENDING->canTransitionTo(TaskStatus::CANCELLED));\n }\n\n public function testPendingCannotTransitionToCompleted(): void\n {\n $this->assertFalse(TaskStatus::PENDING->canTransitionTo(TaskStatus::COMPLETED));\n }\n\n public function testInProgressCanTransitionToCompleted(): void\n {\n $this->assertTrue(TaskStatus::IN_PROGRESS->canTransitionTo(TaskStatus::COMPLETED));\n }\n\n public function testInProgressCanTransitionToFailed(): void\n {\n $this->assertTrue(TaskStatus::IN_PROGRESS->canTransitionTo(TaskStatus::FAILED));\n }\n\n public function testCompletedCannotTransition(): void\n {\n $this->assertFalse(TaskStatus::COMPLETED->canTransitionTo(TaskStatus::PENDING));\n $this->assertFalse(TaskStatus::COMPLETED->canTransitionTo(TaskStatus::IN_PROGRESS));\n }\n\n #[DataProvider('terminalStatusProvider')]\n public function testIsTerminal(TaskStatus $status, bool $expected): void\n {\n $this->assertSame($expected, $status->isTerminal());\n }\n\n public static function terminalStatusProvider(): array\n {\n return [\n 'pending is not terminal' => [TaskStatus::PENDING, false],\n 'in_progress is not terminal' => [TaskStatus::IN_PROGRESS, false],\n 'completed is terminal' => [TaskStatus::COMPLETED, true],\n 'failed is terminal' => [TaskStatus::FAILED, true],\n 'cancelled is terminal' => [TaskStatus::CANCELLED, true],\n ];\n }\n\n #[DataProvider('labelProvider')]\n public function testLabel(TaskStatus $status, string $expected): void\n {\n $this->assertSame($expected, $status->label());\n }\n\n public static function labelProvider(): array\n {\n return [\n [TaskStatus::PENDING, 'Offen'],\n [TaskStatus::IN_PROGRESS, 'In Arbeit'],\n [TaskStatus::COMPLETED, 'Abgeschlossen'],\n [TaskStatus::FAILED, 'Fehlgeschlagen'],\n [TaskStatus::CANCELLED, 'Abgebrochen'],\n ];\n }\n}\n",
"numLines": 89,
"startLine": 1,
"totalLines": 89
}
}
}