textRepo = new FakeTextRepository(); $this->nodeRepo = new FakeNodeRepository(); $this->useCase = new CreateText( $this->textRepo, $this->nodeRepo, ); } public function test_create_text(): void { $text = $this->useCase->execute(new CreateTextRequest( name: 'test', )); $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()); } }