public function testReflectsMethodReference() { $data = ['arg_1' => 'arg_1', 'arg_2' => ['arg_2'], 'arg_3' => 'strtolower', 'arg_4' => new BuildParameterTestClass(), 'arg_5' => false]; $expected = array_values($data); $class = new BuildParameterTestClass(); $output = BuildParameterArray::forFunction([$class, 'testMethod'])->apply($data); $this->assertEquals($expected, $output); }
public function apply($instance) { $params = BuildParameterArray::forMethod($instance, $this->getMethod())->apply($this->getArgs()); return call_user_func_array([$instance, $this->getMethod()], $params); }