Search
Search
Search
Search
Information
Information
Light
Dark
Open actions menu
Basic upload method
Bypass upload method
Tips!
If you encounter an error (by firewall) while uploading using both methods,
try changing extension of the file before uploading it and rename it right after.
This uploader supports multiple file upload.
Submit
~
var
www
podiocopy.bitkit.dk
httpdocs
vendor
phpunit
phpunit-mock-objects
tests
File Content:
MockObjectTest.php
<?php /* * This file is part of the PHPUnit_MockObject package. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * * * @since Class available since Release 3.0.0 */ class Framework_MockObjectTest extends PHPUnit_Framework_TestCase { public function testMockedMethodIsNeverCalled() { $mock = $this->getMock('AnInterface'); $mock->expects($this->never()) ->method('doSomething'); } public function testMockedMethodIsNeverCalledWithParameter() { $mock = $this->getMock('SomeClass'); $mock->expects($this->never()) ->method('doSomething') ->with('someArg'); } public function testMockedMethodIsNotCalledWhenExpectsAnyWithParameter() { $mock = $this->getMock('SomeClass'); $mock->expects($this->any()) ->method('doSomethingElse') ->with('someArg'); } public function testMockedMethodIsNotCalledWhenMethodSpecifiedDirectlyWithParameter() { $mock = $this->getMock('SomeClass'); $mock->method('doSomethingElse') ->with('someArg'); } public function testMockedMethodIsCalledAtLeastOnce() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atLeastOnce()) ->method('doSomething'); $mock->doSomething(); } public function testMockedMethodIsCalledAtLeastOnce2() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atLeastOnce()) ->method('doSomething'); $mock->doSomething(); $mock->doSomething(); } public function testMockedMethodIsCalledAtLeastTwice() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atLeast(2)) ->method('doSomething'); $mock->doSomething(); $mock->doSomething(); } public function testMockedMethodIsCalledAtLeastTwice2() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atLeast(2)) ->method('doSomething'); $mock->doSomething(); $mock->doSomething(); $mock->doSomething(); } public function testMockedMethodIsCalledAtMostTwice() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atMost(2)) ->method('doSomething'); $mock->doSomething(); $mock->doSomething(); } public function testMockedMethodIsCalledAtMosttTwice2() { $mock = $this->getMock('AnInterface'); $mock->expects($this->atMost(2)) ->method('doSomething'); $mock->doSomething(); } public function testMockedMethodIsCalledOnce() { $mock = $this->getMock('AnInterface'); $mock->expects($this->once()) ->method('doSomething'); $mock->doSomething(); } public function testMockedMethodIsCalledOnceWithParameter() { $mock = $this->getMock('SomeClass'); $mock->expects($this->once()) ->method('doSomethingElse') ->with($this->equalTo('something')); $mock->doSomethingElse('something'); } public function testMockedMethodIsCalledExactly() { $mock = $this->getMock('AnInterface'); $mock->expects($this->exactly(2)) ->method('doSomething'); $mock->doSomething(); $mock->doSomething(); } public function testStubbedException() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->throwException(new Exception)); try { $mock->doSomething(); } catch (Exception $e) { return; } $this->fail(); } public function testStubbedWillThrowException() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willThrowException(new Exception); try { $mock->doSomething(); } catch (Exception $e) { return; } $this->fail(); } public function testStubbedReturnValue() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->returnValue('something')); $this->assertEquals('something', $mock->doSomething()); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willReturn('something'); $this->assertEquals('something', $mock->doSomething()); } public function testStubbedReturnValueMap() { $map = array( array('a', 'b', 'c', 'd'), array('e', 'f', 'g', 'h') ); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->returnValueMap($map)); $this->assertEquals('d', $mock->doSomething('a', 'b', 'c')); $this->assertEquals('h', $mock->doSomething('e', 'f', 'g')); $this->assertEquals(null, $mock->doSomething('foo', 'bar')); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willReturnMap($map); $this->assertEquals('d', $mock->doSomething('a', 'b', 'c')); $this->assertEquals('h', $mock->doSomething('e', 'f', 'g')); $this->assertEquals(null, $mock->doSomething('foo', 'bar')); } public function testStubbedReturnArgument() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->returnArgument(1)); $this->assertEquals('b', $mock->doSomething('a', 'b')); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willReturnArgument(1); $this->assertEquals('b', $mock->doSomething('a', 'b')); } public function testFunctionCallback() { $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', false); $mock->expects($this->once()) ->method('doSomething') ->will($this->returnCallback('functionCallback')); $this->assertEquals('pass', $mock->doSomething('foo', 'bar')); $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', false); $mock->expects($this->once()) ->method('doSomething') ->willReturnCallback('functionCallback'); $this->assertEquals('pass', $mock->doSomething('foo', 'bar')); } public function testStubbedReturnSelf() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->returnSelf()); $this->assertEquals($mock, $mock->doSomething()); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willReturnSelf(); $this->assertEquals($mock, $mock->doSomething()); } public function testStubbedReturnOnConsecutiveCalls() { $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->will($this->onConsecutiveCalls('a', 'b', 'c')); $this->assertEquals('a', $mock->doSomething()); $this->assertEquals('b', $mock->doSomething()); $this->assertEquals('c', $mock->doSomething()); $mock = $this->getMock('AnInterface'); $mock->expects($this->any()) ->method('doSomething') ->willReturnOnConsecutiveCalls('a', 'b', 'c'); $this->assertEquals('a', $mock->doSomething()); $this->assertEquals('b', $mock->doSomething()); $this->assertEquals('c', $mock->doSomething()); } public function testStaticMethodCallback() { $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', false); $mock->expects($this->once()) ->method('doSomething') ->will($this->returnCallback(array('MethodCallback', 'staticCallback'))); $this->assertEquals('pass', $mock->doSomething('foo', 'bar')); } public function testPublicMethodCallback() { $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', false); $mock->expects($this->once()) ->method('doSomething') ->will($this->returnCallback(array(new MethodCallback, 'nonStaticCallback'))); $this->assertEquals('pass', $mock->doSomething('foo', 'bar')); } public function testMockClassOnlyGeneratedOnce() { $mock1 = $this->getMock('AnInterface'); $mock2 = $this->getMock('AnInterface'); $this->assertEquals(get_class($mock1), get_class($mock2)); } public function testMockClassDifferentForPartialMocks() { $mock1 = $this->getMock('PartialMockTestClass'); $mock2 = $this->getMock('PartialMockTestClass', array('doSomething')); $mock3 = $this->getMock('PartialMockTestClass', array('doSomething')); $mock4 = $this->getMock('PartialMockTestClass', array('doAnotherThing')); $mock5 = $this->getMock('PartialMockTestClass', array('doAnotherThing')); $this->assertNotEquals(get_class($mock1), get_class($mock2)); $this->assertNotEquals(get_class($mock1), get_class($mock3)); $this->assertNotEquals(get_class($mock1), get_class($mock4)); $this->assertNotEquals(get_class($mock1), get_class($mock5)); $this->assertEquals(get_class($mock2), get_class($mock3)); $this->assertNotEquals(get_class($mock2), get_class($mock4)); $this->assertNotEquals(get_class($mock2), get_class($mock5)); $this->assertEquals(get_class($mock4), get_class($mock5)); } public function testMockClassStoreOverrulable() { $mock1 = $this->getMock('PartialMockTestClass'); $mock2 = $this->getMock('PartialMockTestClass', array(), array(), 'MyMockClassNameForPartialMockTestClass1'); $mock3 = $this->getMock('PartialMockTestClass'); $mock4 = $this->getMock('PartialMockTestClass', array('doSomething'), array(), 'AnotherMockClassNameForPartialMockTestClass'); $mock5 = $this->getMock('PartialMockTestClass', array(), array(), 'MyMockClassNameForPartialMockTestClass2'); $this->assertNotEquals(get_class($mock1), get_class($mock2)); $this->assertEquals(get_class($mock1), get_class($mock3)); $this->assertNotEquals(get_class($mock1), get_class($mock4)); $this->assertNotEquals(get_class($mock2), get_class($mock3)); $this->assertNotEquals(get_class($mock2), get_class($mock4)); $this->assertNotEquals(get_class($mock2), get_class($mock5)); $this->assertNotEquals(get_class($mock3), get_class($mock4)); $this->assertNotEquals(get_class($mock3), get_class($mock5)); $this->assertNotEquals(get_class($mock4), get_class($mock5)); } /** * @covers PHPUnit_Framework_MockObject_Generator::getMock */ public function testGetMockWithFixedClassNameCanProduceTheSameMockTwice() { $mock = $this->getMockBuilder('StdClass')->setMockClassName('FixedName')->getMock(); $mock = $this->getMockBuilder('StdClass')->setMockClassName('FixedName')->getMock(); $this->assertInstanceOf('StdClass', $mock); } public function testOriginalConstructorSettingConsidered() { $mock1 = $this->getMock('PartialMockTestClass'); $mock2 = $this->getMock('PartialMockTestClass', array(), array(), '', false); $this->assertTrue($mock1->constructorCalled); $this->assertFalse($mock2->constructorCalled); } public function testOriginalCloneSettingConsidered() { $mock1 = $this->getMock('PartialMockTestClass'); $mock2 = $this->getMock('PartialMockTestClass', array(), array(), '', true, false); $this->assertNotEquals(get_class($mock1), get_class($mock2)); } public function testGetMockForAbstractClass() { $mock = $this->getMock('AbstractMockTestClass'); $mock->expects($this->never()) ->method('doSomething'); } public function traversableProvider() { return array( array('Traversable'), array('\Traversable'), array('TraversableMockTestInterface'), array(array('Traversable')), array(array('Iterator','Traversable')), array(array('\Iterator','\Traversable')) ); } /** * @dataProvider traversableProvider */ public function testGetMockForTraversable($type) { $mock = $this->getMock($type); $this->assertInstanceOf('Traversable', $mock); } public function testMultipleInterfacesCanBeMockedInSingleObject() { $mock = $this->getMock(array('AnInterface', 'AnotherInterface')); $this->assertInstanceOf('AnInterface', $mock); $this->assertInstanceOf('AnotherInterface', $mock); } /** * @requires PHP 5.4.0 */ public function testGetMockForTrait() { $mock = $this->getMockForTrait('AbstractTrait'); $mock->expects($this->never())->method('doSomething'); $parent = get_parent_class($mock); $traits = class_uses($parent, false); $this->assertContains('AbstractTrait', $traits); } public function testClonedMockObjectShouldStillEqualTheOriginal() { $a = $this->getMock('stdClass'); $b = clone $a; $this->assertEquals($a, $b); } public function testMockObjectsConstructedIndepentantlyShouldBeEqual() { $a = $this->getMock('stdClass'); $b = $this->getMock('stdClass'); $this->assertEquals($a, $b); } public function testMockObjectsConstructedIndepentantlyShouldNotBeTheSame() { $a = $this->getMock('stdClass'); $b = $this->getMock('stdClass'); $this->assertNotSame($a, $b); } public function testClonedMockObjectCanBeUsedInPlaceOfOriginalOne() { $x = $this->getMock('stdClass'); $y = clone $x; $mock = $this->getMock('stdClass', array('foo')); $mock->expects($this->once())->method('foo')->with($this->equalTo($x)); $mock->foo($y); } public function testClonedMockObjectIsNotIdenticalToOriginalOne() { $x = $this->getMock('stdClass'); $y = clone $x; $mock = $this->getMock('stdClass', array('foo')); $mock->expects($this->once())->method('foo')->with($this->logicalNot($this->identicalTo($x))); $mock->foo($y); } public function testObjectMethodCallWithArgumentCloningEnabled() { $expectedObject = new StdClass; $mock = $this->getMockBuilder('SomeClass') ->setMethods(array('doSomethingElse')) ->enableArgumentCloning() ->getMock(); $actualArguments = array(); $mock->expects($this->any()) ->method('doSomethingElse') ->will($this->returnCallback(function () use (&$actualArguments) { $actualArguments = func_get_args(); })); $mock->doSomethingElse($expectedObject); $this->assertEquals(1, count($actualArguments)); $this->assertEquals($expectedObject, $actualArguments[0]); $this->assertNotSame($expectedObject, $actualArguments[0]); } public function testObjectMethodCallWithArgumentCloningDisabled() { $expectedObject = new StdClass; $mock = $this->getMockBuilder('SomeClass') ->setMethods(array('doSomethingElse')) ->disableArgumentCloning() ->getMock(); $actualArguments = array(); $mock->expects($this->any()) ->method('doSomethingElse') ->will($this->returnCallback(function () use (&$actualArguments) { $actualArguments = func_get_args(); })); $mock->doSomethingElse($expectedObject); $this->assertEquals(1, count($actualArguments)); $this->assertSame($expectedObject, $actualArguments[0]); } public function testArgumentCloningOptionGeneratesUniqueMock() { $mockWithCloning = $this->getMockBuilder('SomeClass') ->setMethods(array('doSomethingElse')) ->enableArgumentCloning() ->getMock(); $mockWithoutCloning = $this->getMockBuilder('SomeClass') ->setMethods(array('doSomethingElse')) ->disableArgumentCloning() ->getMock(); $this->assertNotEquals($mockWithCloning, $mockWithoutCloning); } public function testVerificationOfMethodNameFailsWithoutParameters() { $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', true, true, true); $mock->expects($this->once()) ->method('right'); $mock->wrong(); try { $mock->__phpunit_verify(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n" . "Method was expected to be called 1 times, actually called 0 times.\n", $e->getMessage() ); } $this->resetMockObjects(); } public function testVerificationOfMethodNameFailsWithParameters() { $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', true, true, true); $mock->expects($this->once()) ->method('right'); $mock->wrong(); try { $mock->__phpunit_verify(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n" . "Method was expected to be called 1 times, actually called 0 times.\n", $e->getMessage() ); } $this->resetMockObjects(); } public function testVerificationOfMethodNameFailsWithWrongParameters() { $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', true, true, true); $mock->expects($this->once()) ->method('right') ->with(array('first', 'second')); try { $mock->right(array('second')); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( "Expectation failed for method name is equal to <string:right> when invoked 1 time(s)\n" . "Parameter 0 for invocation SomeClass::right(Array (...)) does not match expected value.\n" . "Failed asserting that two arrays are equal.", $e->getMessage() ); } try { $mock->__phpunit_verify(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n" . "Parameter 0 for invocation SomeClass::right(Array (...)) does not match expected value.\n" . "Failed asserting that two arrays are equal.\n" . "--- Expected\n" . "+++ Actual\n" . "@@ @@\n" . " Array (\n" . "- 0 => 'first'\n" . "- 1 => 'second'\n" . "+ 0 => 'second'\n" . " )\n", $e->getMessage() ); } $this->resetMockObjects(); } public function testVerificationOfNeverFailsWithEmptyParameters() { $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', true, true, true); $mock->expects($this->never()) ->method('right') ->with(); try { $mock->right(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( 'SomeClass::right() was not expected to be called.', $e->getMessage() ); } $this->resetMockObjects(); } public function testVerificationOfNeverFailsWithAnyParameters() { $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', true, true, true); $mock->expects($this->never()) ->method('right') ->withAnyParameters(); try { $mock->right(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( 'SomeClass::right() was not expected to be called.', $e->getMessage() ); } $this->resetMockObjects(); } /** * @ticket 199 */ public function testWithAnythingInsteadOfWithAnyParameters() { $mock = $this->getMock('SomeClass', array('right'), array(), '', true, true, true); $mock->expects($this->once()) ->method('right') ->with($this->anything()); try { $mock->right(); $this->fail('Expected exception'); } catch (PHPUnit_Framework_ExpectationFailedException $e) { $this->assertSame( "Expectation failed for method name is equal to <string:right> when invoked 1 time(s)\n" . "Parameter count for invocation SomeClass::right() is too low.\n" . "To allow 0 or more parameters with any value, omit ->with() or use ->withAnyParameters() instead.", $e->getMessage() ); } $this->resetMockObjects(); } /** * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81 */ public function testMockArgumentsPassedByReference() { $foo = $this->getMockBuilder('MethodCallbackByReference') ->setMethods(array('bar')) ->disableOriginalConstructor() ->disableArgumentCloning() ->getMock(); $foo->expects($this->any()) ->method('bar') ->will($this->returnCallback(array($foo, 'callback'))); $a = $b = $c = 0; $foo->bar($a, $b, $c); $this->assertEquals(1, $b); } /** * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81 */ public function testMockArgumentsPassedByReference2() { $foo = $this->getMockBuilder('MethodCallbackByReference') ->disableOriginalConstructor() ->disableArgumentCloning() ->getMock(); $foo->expects($this->any()) ->method('bar') ->will($this->returnCallback( function (&$a, &$b, $c) { $b = 1; } )); $a = $b = $c = 0; $foo->bar($a, $b, $c); $this->assertEquals(1, $b); } /** * https://github.com/sebastianbergmann/phpunit-mock-objects/issues/116 */ public function testMockArgumentsPassedByReference3() { $foo = $this->getMockBuilder('MethodCallbackByReference') ->setMethods(array('bar')) ->disableOriginalConstructor() ->disableArgumentCloning() ->getMock(); $a = new stdClass(); $b = $c = 0; $foo->expects($this->any()) ->method('bar') ->with($a, $b, $c) ->will($this->returnCallback(array($foo, 'callback'))); $foo->bar($a, $b, $c); } /** * https://github.com/sebastianbergmann/phpunit/issues/796 */ public function testMockArgumentsPassedByReference4() { $foo = $this->getMockBuilder('MethodCallbackByReference') ->setMethods(array('bar')) ->disableOriginalConstructor() ->disableArgumentCloning() ->getMock(); $a = new stdClass(); $b = $c = 0; $foo->expects($this->any()) ->method('bar') ->with($this->isInstanceOf("stdClass"), $b, $c) ->will($this->returnCallback(array($foo, 'callback'))); $foo->bar($a, $b, $c); } /** * @requires extension soap */ public function testCreateMockFromWsdl() { $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl', 'WsdlMock'); $this->assertStringStartsWith( 'Mock_WsdlMock_', get_class($mock) ); } /** * @requires extension soap */ public function testCreateNamespacedMockFromWsdl() { $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl', 'My\\Space\\WsdlMock'); $this->assertStringStartsWith( 'Mock_WsdlMock_', get_class($mock) ); } /** * @requires extension soap */ public function testCreateTwoMocksOfOneWsdlFile() { $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl'); $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl'); } /** * @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/156 * @ticket 156 */ public function testInterfaceWithStaticMethodCanBeStubbed() { $this->assertInstanceOf( 'InterfaceWithStaticMethod', $this->getMock('InterfaceWithStaticMethod') ); } /** * @expectedException PHPUnit_Framework_MockObject_BadMethodCallException */ public function testInvokingStubbedStaticMethodRaisesException() { $mock = $this->getMock('ClassWithStaticMethod'); $mock->staticMethod(); } /** * @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/171 * @ticket 171 */ public function testStubForClassThatImplementsSerializableCanBeCreatedWithoutInvokingTheConstructor() { $this->assertInstanceOf( 'ClassThatImplementsSerializable', $this->getMockBuilder('ClassThatImplementsSerializable') ->disableOriginalConstructor() ->getMock() ); } private function resetMockObjects() { $refl = new ReflectionObject($this); $refl = $refl->getParentClass(); $prop = $refl->getProperty('mockObjects'); $prop->setAccessible(true); $prop->setValue($this, array()); } }
Edit
Download
Unzip
Chmod
Delete