diff --git a/Classes/Domain/Model/Product/Tea.php b/Classes/Domain/Model/Product/Tea.php index f98aad6..514ef4f 100644 --- a/Classes/Domain/Model/Product/Tea.php +++ b/Classes/Domain/Model/Product/Tea.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace TTN\Tea\Domain\Model\Product; use TYPO3\CMS\Extbase\Annotation\ORM\Lazy; +use TYPO3\CMS\Extbase\Annotation\Validate; use TYPO3\CMS\Extbase\Domain\Model\FileReference; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; use TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy; @@ -30,6 +31,9 @@ class Tea extends AbstractEntity return $this->title; } + /** + * @Validate("StringLength", options={"maximum": 255}) + */ public function setTitle(string $title): void { $this->title = $title; @@ -40,6 +44,9 @@ class Tea extends AbstractEntity return $this->description; } + /** + * @Validate("StringLength", options={"maximum": 2000}) + */ public function setDescription(string $description): void { $this->description = $description; diff --git a/Tests/Unit/Controller/TeaControllerTest.php b/Tests/Unit/Controller/TeaControllerTest.php index 1331d9d..56c12c8 100644 --- a/Tests/Unit/Controller/TeaControllerTest.php +++ b/Tests/Unit/Controller/TeaControllerTest.php @@ -101,4 +101,24 @@ class TeaControllerTest extends UnitTestCase $this->subject->showAction($tea) ); } + + + /** + * @test + */ + public function showActionWithOverlongTeaTitleCallsErrorAction(): void + { + $tea = new Tea(); + $stringLength256 = 'Lorem ipsum dolor sit amet, consetetur sadipscing ' + .'elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore' + .' magna aliquyam erat, sed diam voluptua. At vero eos et accusam' + .' et justo duo dolores et ea rebum. Stet clita kasd gubergren, ' + .'no sea takimata xxx'; + $tea->setTitle($stringLength256); + + self::assertEquals( + 400, + $this->subject->showAction($tea)->getStatusCode(), + ); + } }