コード例 #1
0
 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);
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 /**
  * @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());
 }
コード例 #4
0
 /**
  * @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);
     }
 }