/
AleksWork
/
diary_plants
Обзор
Документация
Войти
/
AleksWork
/
diary_plants
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/Unit/Domain/Entity/AttachmentTest.php
90 строк
3 KB
AlekseySerov
Make fix some bugs in Unit tests
09 май 2026, 23:31
09 май 2026, 23:31
5785780
Код
Авторство
О чём код?
<?php namespace Unit\Domain\Entity; use App\Domain\Entity\Group; use PHPUnit\Framework\TestCase; use App\Domain\Entity\Attachment; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\CoversClass; use App\Domain\ValueObject\Attachment\FileInfo; use App\Domain\ValueObject\Attachment\DisplaySettings; use App\Domain\ValueObject\Attachment\AttachableReference; #[CoversClass(Attachment::class)] class AttachmentTest extends TestCase { private function createDisplaySettings(): DisplaySettings { // Предполагаем стандартный конструктор: title, description, alt, isShown return new DisplaySettings('Photo', 'Desc', 'Alt text', true); } #[Test] public function testConstructorInitializesCorrectly(): void { $group = $this->createMock(Group::class); $displaySettings = $this->createDisplaySettings(); $attachment = new Attachment($group, $displaySettings); $this->assertSame($group, $attachment->getGroup()); $this->assertSame($displaySettings, $attachment->getDisplaySettings()); // Проверяем, что пустые VO инициализированы в конструкторе $this->assertInstanceOf(FileInfo::class, $attachment->getFileInfo()); $this->assertInstanceOf(AttachableReference::class, $attachment->getTarget()); } #[Test] public function testUpdateMethods(): void { $group = $this->createMock(Group::class); $attachment = new Attachment($group, $this->createDisplaySettings()); // Тестируем обновление DisplaySettings $newDisplay = new DisplaySettings('New Title', 'New Desc', 'New Alt', false); $attachment->updateDisplaySettings($newDisplay); $this->assertSame($newDisplay, $attachment->getDisplaySettings()); // Тестируем обновление FileInfo $fileInfo = $this->createMock(FileInfo::class); $attachment->updateFileInfo($fileInfo); $this->assertSame($fileInfo, $attachment->getFileInfo()); // Тестируем обновление Target (AttachableReference) $target = $this->createMock(AttachableReference::class); $attachment->updateTarget($target); $this->assertSame($target, $attachment->getTarget()); } #[Test] public function testMoveToGroup(): void { $oldGroup = $this->createMock(Group::class); $oldGroup->method('getId')->willReturn(1); // ID старой группы $newGroup = $this->createMock(Group::class); $newGroup->method('getId')->willReturn(2); // ID новой группы (другой!) $attachment = new Attachment($oldGroup, $this->createDisplaySettings()); $attachment->moveToGroup($newGroup); $this->assertSame($newGroup, $attachment->getGroup(), 'Группа должна обновиться, так как ID разные'); } #[Test] public function testGetIdThrowsExceptionWhenNull(): void { $attachment = new Attachment( $this->createMock(Group::class), $this->createDisplaySettings() ); $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Id of Entity App\Domain\Entity\Attachment is null.'); $attachment->getId(); } }