2 declare(strict_types = 1);
46 protected function setUp()
50 $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
52 $this->request = $objectManager->get(Request::class);
53 $this->request->setControllerVendorName(
'TYPO3\\CMS');
54 $this->request->setPluginName(
'Pi1');
55 $this->request->setControllerExtensionName(
'Extbase\\Tests\\Functional\\Mvc\\Controller\\Fixture');
56 $this->request->setControllerName(
'Test');
57 $this->request->setMethod(
'GET');
58 $this->request->setFormat(
'html');
60 $this->response = $objectManager->get(Response::class);
62 $this->controller = $objectManager->get(Fixture\Controller\TestController::class);
67 unset($this->request, $this->response, $this->controller);
77 $this->request->setControllerActionName(
'foo');
78 $this->request->setArgument(
'fooParam', []);
81 $this->controller->processRequest($this->request, $this->response);
84 $arguments = $this->controller->getControllerContext()->getArguments();
85 $argument = $arguments->getArgument(
'fooParam');
88 $conjunctionValidator = $argument->getValidator();
89 static::assertInstanceOf(ConjunctionValidator::class, $conjunctionValidator);
92 $validators = $conjunctionValidator->getValidators();
93 static::assertInstanceOf(\SplObjectStorage::class, $validators);
95 $validators->rewind();
98 $subConjunctionValidator = $validators->current();
99 static::assertInstanceOf(ConjunctionValidator::class, $subConjunctionValidator);
102 $subValidators = $subConjunctionValidator->getValidators();
103 static::assertInstanceOf(\SplObjectStorage::class, $subValidators);
105 $subValidators->rewind();
106 static::assertInstanceOf(Fixture\Domain\Validator\ModelValidator::class, $subValidators->current());
115 $this->request->setControllerActionName(
'bar');
116 $this->request->setArgument(
'barParam',
'');
119 $this->controller->processRequest($this->request, $this->response);
122 $arguments = $this->controller->getControllerContext()->getArguments();
123 $argument = $arguments->getArgument(
'barParam');
126 $conjunctionValidator = $argument->getValidator();
127 static::assertInstanceOf(ConjunctionValidator::class, $conjunctionValidator);
130 $validators = $conjunctionValidator->getValidators();
131 static::assertInstanceOf(\SplObjectStorage::class, $validators);
133 $validators->rewind();
134 static::assertInstanceOf(Fixture\Validation\Validator\CustomValidator::class, $validators->current());
139 $subConjunctionValidator = $validators->current();
140 static::assertInstanceOf(ConjunctionValidator::class, $subConjunctionValidator);
143 $subValidators = $subConjunctionValidator->getValidators();
144 static::assertInstanceOf(\SplObjectStorage::class, $subValidators);
146 $subValidators->rewind();
147 static::assertInstanceOf(StringValidator::class, $subValidators->current());
156 $this->request->setControllerActionName(
'baz');
157 $this->request->setArgument(
'bazParam', [
'notEmpty' ]);
160 $this->controller->processRequest($this->request, $this->response);
163 $arguments = $this->controller->getControllerContext()->getArguments();
164 $argument = $arguments->getArgument(
'bazParam');
167 $conjunctionValidator = $argument->getValidator();
168 static::assertInstanceOf(ConjunctionValidator::class, $conjunctionValidator);
171 $validators = $conjunctionValidator->getValidators();
172 static::assertInstanceOf(\SplObjectStorage::class, $validators);
173 static::assertCount(1, $validators);
175 $validators->rewind();
176 static::assertInstanceOf(NotEmptyValidator::class, $validators->current());