Neos\Flow\Tests\Unit\Aop\Pointcut\PointcutFilterCompositeTest::getRuntimeEvaluationsClosureCodeHandlesDefinitionsConcatenatedByNegatedOperatorsCorrectly PHP Метод

getRuntimeEvaluationsClosureCodeHandlesDefinitionsConcatenatedByNegatedOperatorsCorrectly() публичный Метод

    public function getRuntimeEvaluationsClosureCodeHandlesDefinitionsConcatenatedByNegatedOperatorsCorrectly()
    {
        $runtimeEvaluationsDefintion = ['&&' => ['&&' => ['&&' => ['evaluateConditions' => [0 => ['operator' => '!=', 'leftValue' => 'this.some.thing', 'rightValue' => 'current.party.name']], '&&!' => ['methodArgumentConstraints' => ['identifier' => ['operator' => [0 => '>', 1 => '<='], 'value' => [0 => '3', 1 => '5']]]]]]], '||!' => ['&&' => ['methodArgumentConstraints' => ['identifier' => ['operator' => ['=='], 'value' => ['42']]]]]];
        $expectedResult = "\n\t\t\t\t\t\tfunction(\\Neos\\Flow\\Aop\\JoinPointInterface \$joinPoint, \$objectManager) {\n" . "\t\t\t\t\t\t\t\$currentObject = \$joinPoint->getProxy();\n" . "\t\t\t\t\t\t\t\$globalObjectNames = \$objectManager->getSettingsByPath(array('Neos', 'Flow', 'aop', 'globalObjects'));\n" . "\t\t\t\t\t\t\t\$globalObjects = array_map(function(\$objectName) use (\$objectManager) { return \$objectManager->get(\$objectName); }, \$globalObjectNames);\n" . "\t\t\t\t\t\t\treturn (((\\Neos\\Utility\\ObjectAccess::getPropertyPath(\$currentObject, 'some.thing') != \\Neos\\Utility\\ObjectAccess::getPropertyPath(\$globalObjects['party'], 'name')) && (!(\$joinPoint->getMethodArgument('identifier') > 3 && \$joinPoint->getMethodArgument('identifier') <= 5))) || (!(\$joinPoint->getMethodArgument('identifier') == 42)));\n" . "\t\t\t\t\t\t}";
        $pointcutFilterComposite = $this->getAccessibleMock(Pointcut\PointcutFilterComposite::class, ['dummy'], [], '', false);
        $pointcutFilterComposite->_set('runtimeEvaluationsDefinition', $runtimeEvaluationsDefintion);
        $result = $pointcutFilterComposite->getRuntimeEvaluationsClosureCode();
        $this->assertTrue($pointcutFilterComposite->_call('hasRuntimeEvaluationsDefinition'));
        $this->assertEquals($expectedResult, $result, 'The wrong Code has been built.');
    }