mageekguy\atoum\test::setDataProvider PHP Method

setDataProvider() public method

public setDataProvider ( $testMethodName, $dataProvider = null )
    public function setDataProvider($testMethodName, $dataProvider = null)
    {
        if ($dataProvider === null) {
            $dataProvider = $testMethodName . 'DataProvider';
            if (method_exists($this->checkMethod($testMethodName), $dataProvider) === false) {
                $reflectedMethod = call_user_func($this->reflectionMethodFactory, $this, $testMethodName);
                $parametersProvider = new test\data\provider\aggregator();
                foreach ($reflectedMethod->getParameters() as $parameter) {
                    $parameterProvider = new test\data\providers\mock($this->mockGenerator);
                    if (($parameterClass = $parameter->getClass()) === null) {
                        throw new exceptions\logic\invalidArgument('Could not generate a data provider for ' . $this->class . '::' . $testMethodName . '() because it has at least one argument which is not type-hinted with a class or interface name');
                    }
                    $parametersProvider->addProvider($parameterProvider->setClass($parameterClass->getName()));
                }
                $dataProvider = new test\data\set($parametersProvider);
            }
        }
        if ($dataProvider instanceof \closure) {
            throw new exceptions\logic\invalidArgument('Cannot use a closure as a data provider for method ' . $this->class . '::' . $testMethodName . '()');
        }
        if ($dataProvider instanceof test\data\provider === false && method_exists($this->checkMethod($testMethodName), $dataProvider) === false) {
            throw new exceptions\logic\invalidArgument('Data provider ' . $this->class . '::' . lcfirst($dataProvider) . '() is unknown');
        }
        $this->dataProviders[$testMethodName] = $dataProvider;
        return $this;
    }
test