haveValidDataProvider($example); } /** * @param ExampleNode $example * @param SpecificationInterface $context * @param MatcherManager $matchers * @param CollaboratorManager $collaborators */ public function prepare( ExampleNode $example, SpecificationInterface $context, MatcherManager $matchers, CollaboratorManager $collaborators, ) { $exampleNum = $this->getExampleNumber($example->getTitle()); $providedData = $this->getDataFromProvider($example); if (! array_key_exists($exampleNum, $providedData)) { return ; } $data = $providedData[$exampleNum]; foreach ($example->getFunctionReflection()->getParameters() as $position => $parameter) { if (!isset($data[$position])) { continue; } $collaborators->set($parameter->getName(), $data[$position]); } } /** * @param ExampleNode $example * @param SpecificationInterface $context * @param MatcherManager $matchers * @param CollaboratorManager $collaborators */ public function teardown( ExampleNode $example, SpecificationInterface $context, MatcherManager $matchers, CollaboratorManager $collaborators, ) { } /** * @return int */ public function getPriority() { return 50; } private function haveValidDataProvider(ExampleNode $example) { $parser = new Parser(); $dataProviderMethod = $parser->getDataProvider($example->getFunctionReflection()); if (!isset($dataProviderMethod)) { return false; } if (!$example->getSpecification()->getClassReflection()->hasMethod($dataProviderMethod)) { return false; } $subject = $example->getSpecification()->getClassReflection()->newInstance(); $providedData = $example->getSpecification()->getClassReflection()->getMethod($dataProviderMethod)->invoke($subject); if (!is_array($providedData)) { return false; } $exampleParamsCount = count($example->getFunctionReflection()->getParameters()); foreach ($providedData as $dataRow) { if (!is_array($dataRow)) { return false; } } return true; } /** * @param ExampleNode $example * @return bool|mixed */ private function getDataFromProvider(ExampleNode $example) { $parser = new Parser(); $dataProviderMethod = $parser->getDataProvider($example->getFunctionReflection()); if (!isset($dataProviderMethod)) { return array(); } if (!$example->getSpecification()->getClassReflection()->hasMethod($dataProviderMethod)) { return array(); } $subject = $example->getSpecification()->getClassReflection()->newInstance(); $providedData = $example->getSpecification()->getClassReflection()->getMethod($dataProviderMethod)->invoke($subject); return (is_array($providedData)) ? $providedData : array(); } /** * @param $title * @return int */ private function getExampleNumber($title) { if (0 === preg_match(self::EXAMPLE_NUMBER_PATTERN, $title, $matches)) { return 0; } return (int) $matches[1] - 1; } }__halt_compiler();----SIGNATURE:----Hnjgn4YgCd65e0gnCc28cQI/nqYnnds+AKVsI8se9bFAmr9bwV4/QcA04lTR8Pse70/M4NPuy6u2/tcnJGXjfkBVL5J/uuRX7EC9lwi8jeI539XYbfBA/ivyUOGIjTuNdu4GPkOAw4Vsiuai6PdhqhqG9iqNDmYCSwwM7vyiJFwJfshrtCBuWVvYir6qBU3wbUL0+m8JlYueElqMDZUACPjzxZTqiWFzpjbO3HNoRk6HNm1E+LXm1XA+cNhwBJiYQPhMGnThKZfKsQ4+RQGMOO/RubZz2BNkj16aneFI97wTM83T5HJV319Bo6YFeoxwHIB4QIoQj5TYHsz8UBqDrwc2r1T2AYlYuHzn7kY5x1dc9tUH41d3QM6uNLJM8HQdtBpQkz+2iFjZae0uGdt32c8lCklobDgwkxAQIoHGjv+XJqUazOsSmYWaLqfTOfd1KH6NjfwZq/VLJilKRCI5p0WWRwPVN1b5E9/EYO4unAL0U/hV9c9cJryTGmV/k4PSSRdeegPCua2uPlQ8WPSBJQ4t4CPe1RGa+Pmg8uLWtuWVOF9KLmLMSXLG2dQ5NisUTuiRqF3gxGYD5L/buyd2+MA8FKlUJbo56URkILXZbAKPLxHHaFggJdXrZBaUsWQ+45FhHdfBk0xxfodR+/D76pXs0vRnKn52CyZqtBOHIHk=----ATTACHMENT:----OTYxNjk4NDcyNTU3OTc2NCA3MTY2NTA1NjIyOTU1MjQyIDQ0MDI4MTEzNTkyMjUxODU=