Viewing file: GeneratorTest.php (6.6 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php class Framework_MockObject_GeneratorTest extends PHPUnit_Framework_TestCase { /** * @var PHPUnit_Framework_MockObject_Generator */ protected $generator;
protected function setUp() { $this->generator = new PHPUnit_Framework_MockObject_Generator; }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMock * @expectedException PHPUnit_Framework_Exception */ public function testGetMockFailsWhenInvalidFunctionNameIsPassedInAsAFunctionToMock() { $this->generator->getMock('StdClass', array(0)); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMock */ public function testGetMockCanCreateNonExistingFunctions() { $mock = $this->generator->getMock('StdClass', array('testFunction')); $this->assertTrue(method_exists($mock, 'testFunction')); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMock * @expectedException PHPUnit_Framework_MockObject_RuntimeException * @expectedExceptionMessage duplicates: "foo, foo" */ public function testGetMockGeneratorFails() { $mock = $this->generator->getMock('StdClass', array('foo', 'foo')); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass */ public function testGetMockForAbstractClassDoesNotFailWhenFakingInterfaces() { $mock = $this->generator->getMockForAbstractClass('Countable'); $this->assertTrue(method_exists($mock, 'count')); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass */ public function testGetMockForAbstractClassStubbingAbstractClass() { $mock = $this->generator->getMockForAbstractClass('AbstractMockTestClass'); $this->assertTrue(method_exists($mock, 'doSomething')); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass */ public function testGetMockForAbstractClassWithNonExistentMethods() { $mock = $this->generator->getMockForAbstractClass( 'AbstractMockTestClass', array(), '', true, true, true, array('nonexistentMethod') );
$this->assertTrue(method_exists($mock, 'nonexistentMethod')); $this->assertTrue(method_exists($mock, 'doSomething')); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass */ public function testGetMockForAbstractClassShouldCreateStubsOnlyForAbstractMethodWhenNoMethodsWereInformed() { $mock = $this->generator->getMockForAbstractClass('AbstractMockTestClass');
$mock->expects($this->any()) ->method('doSomething') ->willReturn('testing');
$this->assertEquals('testing', $mock->doSomething()); $this->assertEquals(1, $mock->returnAnything()); }
/** * @dataProvider getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass * @expectedException PHPUnit_Framework_Exception */ public function testGetMockForAbstractClassExpectingInvalidArgumentException($className, $mockClassName) { $mock = $this->generator->getMockForAbstractClass($className, array(), $mockClassName); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass * @expectedException PHPUnit_Framework_MockObject_RuntimeException */ public function testGetMockForAbstractClassAbstractClassDoesNotExist() { $mock = $this->generator->getMockForAbstractClass('Tux'); }
/** * Dataprovider for test "testGetMockForAbstractClassExpectingInvalidArgumentException" */ public static function getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider() { return array( 'className not a string' => array(array(), ''), 'mockClassName not a string' => array('Countable', new StdClass), ); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForTrait * @requires PHP 5.4.0 */ public function testGetMockForTraitWithNonExistentMethodsAndNonAbstractMethods() { $mock = $this->generator->getMockForTrait( 'AbstractTrait', array(), '', true, true, true, array('nonexistentMethod') );
$this->assertTrue(method_exists($mock, 'nonexistentMethod')); $this->assertTrue(method_exists($mock, 'doSomething')); $this->assertTrue($mock->mockableMethod()); $this->assertTrue($mock->anotherMockableMethod()); }
/** * @covers PHPUnit_Framework_MockObject_Generator::getMockForTrait * @requires PHP 5.4.0 */ public function testGetMockForTraitStubbingAbstractMethod() { $mock = $this->generator->getMockForTrait('AbstractTrait'); $this->assertTrue(method_exists($mock, 'doSomething')); }
/** * @requires PHP 5.4.0 */ public function testGetMockForSingletonWithReflectionSuccess() { // Probably, this should be moved to tests/autoload.php require_once __DIR__ . '/_fixture/SingletonClass.php';
$mock = $this->generator->getMock('SingletonClass', array('doSomething'), array(), '', false); $this->assertInstanceOf('SingletonClass', $mock); }
/** * Same as "testGetMockForSingletonWithReflectionSuccess", but we expect * warning for PHP < 5.4.0 since PHPUnit will try to execute private __wakeup * on unserialize */ public function testGetMockForSingletonWithUnserializeFail() { if (version_compare(PHP_VERSION, '5.4.0', '>=')) { $this->markTestSkipped('Only for PHP < 5.4.0'); }
$this->setExpectedException('PHPUnit_Framework_MockObject_RuntimeException');
// Probably, this should be moved to tests/autoload.php require_once __DIR__ . '/_fixture/SingletonClass.php';
$mock = $this->generator->getMock('SingletonClass', array('doSomething'), array(), '', false); }
/** * ReflectionClass::getMethods for SoapClient on PHP 5.3 produces PHP Fatal Error * @runInSeparateProcess */ public function testGetMockForSoapClientReflectionMethodsDuplication() { if (version_compare(PHP_VERSION, '5.4.0', '>=')) { $this->markTestSkipped('Only for PHP < 5.4.0'); }
$mock = $this->generator->getMock('SoapClient', array(), array(), '', false); $this->assertInstanceOf('SoapClient', $mock); } }
|