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:----W62yDhsbjWxkLW53Kgfef7+ccNDH4uyRozosG5MervoLWjHdGZhGCdNhd+uUbHN7+OxnieJQA33eaNTpAO4bGCboKYDD09Wdd6t57YSlyIew7bGWRYZ3XtVt6LsmHjiHFYL1MkT5gXnHslwaLcQdiZlAs2NKM7FJir9pQMOth5lxFf8AY9botK5m/OzQDi1sLvu04xZty+tmHOLdyybtMCGKmFBCWBnPHu5FeoNcf9d+QusuTpfUOa9UGsURFn293m0Et6PBzKQzjhayizUeCQy8ze1sgtjHe6zGmH6yXXQKrkTfMK0sEEoIhhTRZkNM2vFQVtZNC1JjNh3A0ObTv+HCGE260tl0mK5oEtNkEX5y4HH78bdwdPazPo0fY/cRgquTeI/MUUThMj64Y1K+QyR+VXLPOTNpaK8JqjavwUJ4t2OnmLtcwUyYGU5ZwXoi/eWfVZwjFtF5m1zH9po9Yq724NruDrM5HdWHwh3wxxzggNmPhQbVg6YdpDdqsYTH+/8IFmXDrOMjeHSBRWuD+aqx1JTxO3v6iBtNedH5AVC6crh+kQmkJdSjXhRcgitnV8QYFC33upnn0BKMv52E6da2GHBDZQvb95Yg4TpUmJfyBW1O/b/evheXJzkuKKw83RxRdmi3qR2Y1EQaqelZtE9KIIC712AJavRIPtWPSXo=----ATTACHMENT:----NjQ1OTg4OTAwMzU2OTYyOSAzMTkwMDUzOTIyMzExODUgMTE4NzExNjIxNDIzNzI2Nw==