Server IP : 127.0.0.2 / Your IP : 52.14.232.226 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/phpunit/phpunit-mock-objects/tests/ |
Upload File : |
<?php /** * @covers PHPUnit_Framework_MockObject_Generator * * @uses PHPUnit_Framework_MockObject_InvocationMocker * @uses PHPUnit_Framework_MockObject_Builder_InvocationMocker * @uses PHPUnit_Framework_MockObject_Invocation_Object * @uses PHPUnit_Framework_MockObject_Invocation_Static * @uses PHPUnit_Framework_MockObject_Matcher * @uses PHPUnit_Framework_MockObject_Matcher_InvokedRecorder * @uses PHPUnit_Framework_MockObject_Matcher_MethodName * @uses PHPUnit_Framework_MockObject_Stub_Return * @uses PHPUnit_Framework_MockObject_Matcher_InvokedCount */ class Framework_MockObject_GeneratorTest extends PHPUnit_Framework_TestCase { /** * @var PHPUnit_Framework_MockObject_Generator */ private $generator; protected function setUp() { $this->generator = new PHPUnit_Framework_MockObject_Generator; } /** * @expectedException PHPUnit_Framework_MockObject_RuntimeException */ public function testGetMockFailsWhenInvalidFunctionNameIsPassedInAsAFunctionToMock() { $this->generator->getMock(stdClass::class, [0]); } public function testGetMockCanCreateNonExistingFunctions() { $mock = $this->generator->getMock(stdClass::class, ['testFunction']); $this->assertTrue(method_exists($mock, 'testFunction')); } /** * @expectedException PHPUnit_Framework_MockObject_RuntimeException * @expectedExceptionMessage duplicates: "foo, bar, foo" (duplicate: "foo") */ public function testGetMockGeneratorFails() { $this->generator->getMock(stdClass::class, ['foo', 'bar', 'foo']); } /** * @requires PHP 7 */ public function testGetMockBlacklistedMethodNamesPhp7() { $mock = $this->generator->getMock(InterfaceWithSemiReservedMethodName::class); $this->assertTrue(method_exists($mock, 'unset')); $this->assertInstanceOf(InterfaceWithSemiReservedMethodName::class, $mock); } public function testGetMockForAbstractClassDoesNotFailWhenFakingInterfaces() { $mock = $this->generator->getMockForAbstractClass(Countable::class); $this->assertTrue(method_exists($mock, 'count')); } public function testGetMockForAbstractClassStubbingAbstractClass() { $mock = $this->generator->getMockForAbstractClass(AbstractMockTestClass::class); $this->assertTrue(method_exists($mock, 'doSomething')); } public function testGetMockForAbstractClassWithNonExistentMethods() { $mock = $this->generator->getMockForAbstractClass( AbstractMockTestClass::class, [], '', true, true, true, ['nonexistentMethod'] ); $this->assertTrue(method_exists($mock, 'nonexistentMethod')); $this->assertTrue(method_exists($mock, 'doSomething')); } public function testGetMockForAbstractClassShouldCreateStubsOnlyForAbstractMethodWhenNoMethodsWereInformed() { $mock = $this->generator->getMockForAbstractClass(AbstractMockTestClass::class); $mock->expects($this->any()) ->method('doSomething') ->willReturn('testing'); $this->assertEquals('testing', $mock->doSomething()); $this->assertEquals(1, $mock->returnAnything()); } /** * @dataProvider getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider * @expectedException PHPUnit_Framework_Exception */ public function testGetMockForAbstractClassExpectingInvalidArgumentException($className, $mockClassName) { $this->generator->getMockForAbstractClass($className, [], $mockClassName); } /** * @expectedException PHPUnit_Framework_MockObject_RuntimeException */ public function testGetMockForAbstractClassAbstractClassDoesNotExist() { $this->generator->getMockForAbstractClass('Tux'); } public function getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider() { return [ 'className not a string' => [[], ''], 'mockClassName not a string' => [Countable::class, new stdClass], ]; } public function testGetMockForTraitWithNonExistentMethodsAndNonAbstractMethods() { $mock = $this->generator->getMockForTrait( AbstractTrait::class, [], '', true, true, true, ['nonexistentMethod'] ); $this->assertTrue(method_exists($mock, 'nonexistentMethod')); $this->assertTrue(method_exists($mock, 'doSomething')); $this->assertTrue($mock->mockableMethod()); $this->assertTrue($mock->anotherMockableMethod()); } public function testGetMockForTraitStubbingAbstractMethod() { $mock = $this->generator->getMockForTrait(AbstractTrait::class); $this->assertTrue(method_exists($mock, 'doSomething')); } public function testGetMockForSingletonWithReflectionSuccess() { $mock = $this->generator->getMock(SingletonClass::class, ['doSomething'], [], '', false); $this->assertInstanceOf('SingletonClass', $mock); } /** * @expectedException PHPUnit_Framework_MockObject_RuntimeException */ public function testExceptionIsRaisedForMutuallyExclusiveOptions() { $this->generator->getMock(stdClass::class, [], [], '', false, true, true, true, true); } /** * @requires PHP 7 */ public function testCanImplementInterfacesThatHaveMethodsWithReturnTypes() { $stub = $this->generator->getMock([AnInterfaceWithReturnType::class, AnInterface::class]); $this->assertInstanceOf(AnInterfaceWithReturnType::class, $stub); $this->assertInstanceOf(AnInterface::class, $stub); $this->assertInstanceOf(PHPUnit_Framework_MockObject_MockObject::class, $stub); } public function testCanConfigureMethodsForDoubleOfNonExistentClass() { $className = 'X' . md5(microtime()); $mock = $this->generator->getMock($className, ['someMethod']); $this->assertInstanceOf($className, $mock); } public function testCanInvokeMethodsOfNonExistentClass() { $className = 'X' . md5(microtime()); $mock = $this->generator->getMock($className, ['someMethod']); $mock->expects($this->once())->method('someMethod'); $this->assertNull($mock->someMethod()); } }