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 }
|