예제 #1
0
 public static function make($class, $params = array())
 {
     if (!class_exists($class)) {
         throw new \RuntimeException("Stubbed class {$class} doesn't exist. Use Stub::factory instead");
     }
     $reflection = new \ReflectionClass($class);
     $callables = array_filter($params, function ($a) {
         return is_callable($a);
     });
     if (!empty($callables)) {
         if ($reflection->isAbstract()) {
             $mock = \PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass($class, array_keys($callables), '', false);
         } else {
             $mock = \PHPUnit_Framework_MockObject_Generator::getMock($class, array_keys($callables), array(), '', false);
         }
     } else {
         if ($reflection->isAbstract()) {
             $mock = \PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass($class, null, '', false);
         } else {
             $mock = \PHPUnit_Framework_MockObject_Generator::getMock($class, null, array(), '', false);
         }
     }
     self::bindParameters($mock, $params);
     $mock->__mocked = $class;
     return $mock;
 }
예제 #2
0
 /**
  * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
  * @expectedException PHPUnit_Framework_Exception
  */
 public function testGetMockForAbstractClassAnstractClassDoesNotExist()
 {
     $mock = PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass('Tux');
 }
예제 #3
0
 /**
  * Returns a mock object for the specified abstract class with all abstract
  * methods of the class mocked. Concrete methods to mock can be specified with
  * the last parameter
  *
  * @param  string  $originalClassName
  * @param  array   $arguments
  * @param  string  $mockClassName
  * @param  boolean $callOriginalConstructor
  * @param  boolean $callOriginalClone
  * @param  boolean $callAutoload
  * @param  array   $mockedMethods
  * @param  boolean $cloneArguments
  * @return PHPUnit_Framework_MockObject_MockObject
  * @since  Method available since Release 3.4.0
  * @throws PHPUnit_Framework_Exception
  */
 public function getMockForAbstractClass($originalClassName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE, $mockedMethods = array(), $cloneArguments = FALSE)
 {
     $mockObject = PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass($originalClassName, $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments);
     $this->mockObjects[] = $mockObject;
     return $mockObject;
 }
 /**
  * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
  * @expectedException PHPUnit_Framework_MockObject_RuntimeException
  */
 public function testGetMockForAbstractClassAbstractClassDoesNotExist()
 {
     $mock = $this->generator->getMockForAbstractClass('Tux');
 }
예제 #5
0
 /**
  * Creates a mock object for an abstract class using a fluent interface.
  *
  * @return PHPUnit_Framework_MockObject_MockObject
  */
 public function getMockForAbstractClass()
 {
     $object = $this->generator->getMockForAbstractClass($this->type, $this->constructorArgs, $this->mockClassName, $this->originalConstructor, $this->originalClone, $this->autoload, $this->methods, $this->cloneArguments);
     $this->testCase->registerMockObject($object);
     return $object;
 }
/**
 * @param $className
 * @return PHPUnit_Framework_MockObject_MockObject
 */
function getMockForAbstractClass($className)
{
    return PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass($className);
}
예제 #7
0
파일: Helper.php 프로젝트: dakulov/DbEasy
 /**
  * @param $placeholderName
  * @return \PHPUnit_Framework_MockObject_MockObject | PlaceholderAbstract
  */
 public static function getMockCustomPlaceholder($placeholderName)
 {
     $myPlaceholder = \PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass('\\DbEasy\\Placeholder\\PlaceholderAbstract', [], '', true, true, true, ['getName']);
     $myPlaceholder->expects(\PHPUnit_Framework_TestCase::any())->method('getName')->will(\PHPUnit_Framework_TestCase::returnValue($placeholderName));
     $myPlaceholder->expects(\PHPUnit_Framework_TestCase::any())->method('transformValue')->will(\PHPUnit_Framework_TestCase::returnCallback(function ($value) {
         if ($value === 'in1') {
             return 'out1';
         }
         if ($value === 'in2') {
             return 'out2';
         }
         if ($value === 'in3') {
             return 'out3';
         }
         if ($value === 'in4') {
             return 'out4';
         }
         if ($value === true) {
             return true;
         }
         if ($value === false) {
             return false;
         }
         if ($value === 0) {
             return 0;
         }
         if ($value === '') {
             return '';
         }
         if ($value === 'skip_me_please') {
             return Database::SKIP_VALUE;
         }
     }));
     $myPlaceholder->expects(\PHPUnit_Framework_TestCase::any())->method('transformPlaceholder')->will(\PHPUnit_Framework_TestCase::returnCallback(function ($value, $nativePlaceholder) {
         if (!empty($nativePlaceholder)) {
             if ($value === 'skip_me_please') {
                 return "SQL_PART_WITHOUT_PARAMS";
             }
             return $nativePlaceholder;
         }
         if ($value === 'in1') {
             return '"out1"';
         }
         if ($value === 'in2') {
             return '"out2"';
         }
         if ($value === 'in3') {
             return '"out3"';
         }
         if ($value === 'in4') {
             return '"out4"';
         }
         if ($value === true) {
             return 'TRUE';
         }
         if ($value === false) {
             return 'FALSE';
         }
         if ($value === 0) {
             return '0';
         }
         if ($value === '') {
             return '""';
         }
     }));
     return $myPlaceholder;
 }
예제 #8
0
 private static function buildAlternatingSelector()
 {
     $alternating = true;
     $mockGenerator = new \PHPUnit_Framework_MockObject_Generator();
     $selector = $mockGenerator->getMockForAbstractClass('Superruzafa\\Settings\\Selector');
     $selector->expects(self::any())->method('select')->will(self::returnCallback(function () use(&$alternating) {
         return $alternating = !$alternating;
     }));
     return $selector;
 }