public static function make(ReplacementRequest $request, Checker $checker, ReturnValue $returnValue, LoggerInterface $callLogger) { if ($request->isFunction()) { return FunctionCallVerifier::__from($checker, $returnValue, $callLogger); } if ($request->isStaticMethod()) { return StaticMethodCallVerifier::__from($checker, $returnValue, $callLogger); } return InstanceMethodCallVerifier::from($returnValue, $callLogger); }
public function getMock(ReplacementRequest $request, ReturnValue $returnValue) { $className = $request->getClassName(); $methodName = $request->getMethodName(); $methods = ['__construct', $methodName]; $mockObject = $this->getPHPUnitMockObjectFor($className, $methods); $this->setMockObjectExpectation($mockObject, $methodName, $returnValue); $wrapperInstance = $this->getWrappedMockObject($mockObject, $className, $request); return $wrapperInstance; }
/** * @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 * @param $request * @param $methodName * @param $callLogger */ private static function replace_with_patchwork($functionName, ReturnValue $returnValue, ReplacementRequest $request, $methodName, LoggerInterface $callLogger) { $functionOrMethodName = $request->isMethod() ? $methodName : $functionName; $replacementFunction = self::getReplacementFunction($functionOrMethodName, $returnValue, $callLogger); if (function_exists('\\Patchwork\\replace')) { \Patchwork\redefine($functionName, $replacementFunction); } }