/** * @test * it should return proper clas and method name for instance method replacement requests */ public function it_should_return_proper_clas_and_method_name_for_instance_method_replacement_requests() { $sut = ReplacementRequest::on(__NAMESPACE__ . '\\RequestClassOne->methodTwo'); $this->assertEquals(__NAMESPACE__ . '\\RequestClassOne', $sut->getClassName()); $this->assertEquals('methodTwo', $sut->getMethodName()); }
/** * @param $functionName * @param $returnValue * * @return mixed|null|Call\Verifier\InstanceMethodCallVerifier|static * @throws \Exception */ private static function _replace($functionName, $returnValue) { $request = ReplacementRequest::on($functionName); $returnValue = ReturnValue::from($returnValue); $methodName = $request->getMethodName(); if ($request->isClass()) { return self::get_instance_replacement_chain_head($functionName); } if ($request->isInstanceMethod()) { return self::get_instance_replacement($request, $returnValue); } return self::get_function_or_static_method_replacement($functionName, $returnValue, $request, $methodName); }