From f6791b645959c2cc921c701bdf7157dab42172a4 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Fri, 17 Apr 2026 10:49:41 +0300 Subject: [PATCH] unit test for create text that it creates a root node as well. refactor to setUp as well --- tests/Unit/Text/UseCases/CreateTextTest.php | 37 ++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/tests/Unit/Text/UseCases/CreateTextTest.php b/tests/Unit/Text/UseCases/CreateTextTest.php index e4b8422..4119662 100644 --- a/tests/Unit/Text/UseCases/CreateTextTest.php +++ b/tests/Unit/Text/UseCases/CreateTextTest.php @@ -7,19 +7,48 @@ use App\Text\TextRepository; use App\Text\UseCases\CreateText; use App\Text\UseCases\CreateTextRequest; use PHPUnit\Framework\TestCase; +use Tests\Fakes\FakeNodeRepository; use Tests\Fakes\FakeTextRepository; class CreateTextTest extends TestCase { + private FakeTextRepository $textRepo; + + private FakeNodeRepository $nodeRepo; + + private CreateText $useCase; + + protected function setUp(): void + { + $this->textRepo = new FakeTextRepository; + $this->nodeRepo = new FakeNodeRepository; + $this->useCase = new CreateText( + $this->textRepo, + $this->nodeRepo, + ); + } + public function test_create_text(): void { - $textRepo = new FakeTextRepository; - $useCase = new CreateText($textRepo); - $text = $useCase->execute(new CreateTextRequest( + $text = $this->useCase->execute(new CreateTextRequest( name: 'test', )); - $this->assertInstanceOf(TextRepository::class, $textRepo); + $this->assertInstanceOf(TextRepository::class, $this->textRepo); $this->assertInstanceOf(Text::class, $text); $this->assertEquals('test', $text->getName()); } + + public function test_creates_root_node_on_text_creation(): void + { + $text = $this->useCase->execute(new CreateTextRequest( + name: 'my text', + )); + + $nodes = $this->nodeRepo->findByTextId($text->getId()); + $this->assertCount(1, $nodes); + + $rootNode = array_values($nodes)[0]; + $this->assertEquals('my text', $rootNode->getTitle()); + $this->assertNull($rootNode->getParentNode()); + } }