annotate vendor/phpunit/phpunit-mock-objects/tests/Invocation/ObjectInvocationTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 /*
Chris@14 3 * This file is part of the phpunit-mock-objects package.
Chris@14 4 *
Chris@14 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 use PHPUnit\Framework\MockObject\Invocation\ObjectInvocation;
Chris@14 12 use PHPUnit\Framework\TestCase;
Chris@14 13
Chris@14 14 class ObjectInvocationTest extends TestCase
Chris@14 15 {
Chris@14 16 public function testConstructorRequiresClassAndMethodAndParametersAndObject()
Chris@14 17 {
Chris@14 18 $this->assertInstanceOf(
Chris@14 19 ObjectInvocation::class,
Chris@14 20 new ObjectInvocation(
Chris@14 21 'FooClass',
Chris@14 22 'FooMethod',
Chris@14 23 ['an_argument'],
Chris@14 24 'ReturnType',
Chris@14 25 new stdClass
Chris@14 26 )
Chris@14 27 );
Chris@14 28 }
Chris@14 29
Chris@14 30 public function testAllowToGetClassNameSetInConstructor()
Chris@14 31 {
Chris@14 32 $invocation = new ObjectInvocation(
Chris@14 33 'FooClass',
Chris@14 34 'FooMethod',
Chris@14 35 ['an_argument'],
Chris@14 36 'ReturnType',
Chris@14 37 new stdClass
Chris@14 38 );
Chris@14 39
Chris@14 40 $this->assertSame('FooClass', $invocation->getClassName());
Chris@14 41 }
Chris@14 42
Chris@14 43 public function testAllowToGetMethodNameSetInConstructor()
Chris@14 44 {
Chris@14 45 $invocation = new ObjectInvocation(
Chris@14 46 'FooClass',
Chris@14 47 'FooMethod',
Chris@14 48 ['an_argument'],
Chris@14 49 'ReturnType',
Chris@14 50 new stdClass
Chris@14 51 );
Chris@14 52
Chris@14 53 $this->assertSame('FooMethod', $invocation->getMethodName());
Chris@14 54 }
Chris@14 55
Chris@14 56 public function testAllowToGetObjectSetInConstructor()
Chris@14 57 {
Chris@14 58 $expectedObject = new stdClass;
Chris@14 59
Chris@14 60 $invocation = new ObjectInvocation(
Chris@14 61 'FooClass',
Chris@14 62 'FooMethod',
Chris@14 63 ['an_argument'],
Chris@14 64 'ReturnType',
Chris@14 65 $expectedObject
Chris@14 66 );
Chris@14 67
Chris@14 68 $this->assertSame($expectedObject, $invocation->getObject());
Chris@14 69 }
Chris@14 70
Chris@14 71 public function testAllowToGetMethodParametersSetInConstructor()
Chris@14 72 {
Chris@14 73 $expectedParameters = [
Chris@14 74 'foo', 5, ['a', 'b'], new stdClass, null, false
Chris@14 75 ];
Chris@14 76
Chris@14 77 $invocation = new ObjectInvocation(
Chris@14 78 'FooClass',
Chris@14 79 'FooMethod',
Chris@14 80 $expectedParameters,
Chris@14 81 'ReturnType',
Chris@14 82 new stdClass
Chris@14 83 );
Chris@14 84
Chris@14 85 $this->assertSame($expectedParameters, $invocation->getParameters());
Chris@14 86 }
Chris@14 87
Chris@14 88 public function testConstructorAllowToSetFlagCloneObjectsInParameters()
Chris@14 89 {
Chris@14 90 $parameters = [new stdClass];
Chris@14 91 $cloneObjects = true;
Chris@14 92
Chris@14 93 $invocation = new ObjectInvocation(
Chris@14 94 'FooClass',
Chris@14 95 'FooMethod',
Chris@14 96 $parameters,
Chris@14 97 'ReturnType',
Chris@14 98 new stdClass,
Chris@14 99 $cloneObjects
Chris@14 100 );
Chris@14 101
Chris@14 102 $this->assertEquals($parameters, $invocation->getParameters());
Chris@14 103 $this->assertNotSame($parameters, $invocation->getParameters());
Chris@14 104 }
Chris@14 105
Chris@14 106 public function testAllowToGetReturnTypeSetInConstructor()
Chris@14 107 {
Chris@14 108 $expectedReturnType = 'string';
Chris@14 109
Chris@14 110 $invocation = new ObjectInvocation(
Chris@14 111 'FooClass',
Chris@14 112 'FooMethod',
Chris@14 113 ['an_argument'],
Chris@14 114 $expectedReturnType,
Chris@14 115 new stdClass
Chris@14 116 );
Chris@14 117
Chris@14 118 $this->assertSame($expectedReturnType, $invocation->getReturnType());
Chris@14 119 }
Chris@14 120 }