Chris@0
|
1 <?php
|
Chris@0
|
2 /*
|
Chris@0
|
3 * This file is part of the PHPUnit_MockObject package.
|
Chris@0
|
4 *
|
Chris@0
|
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
|
Chris@0
|
6 *
|
Chris@0
|
7 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
8 * file that was distributed with this source code.
|
Chris@0
|
9 */
|
Chris@0
|
10
|
Chris@0
|
11 /**
|
Chris@0
|
12 * @since File available since Release 1.0.0
|
Chris@0
|
13 */
|
Chris@0
|
14 class Framework_MockBuilderTest extends PHPUnit_Framework_TestCase
|
Chris@0
|
15 {
|
Chris@0
|
16 public function testMockBuilderRequiresClassName()
|
Chris@0
|
17 {
|
Chris@0
|
18 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
19 $mock = $spec->getMock();
|
Chris@0
|
20 $this->assertTrue($mock instanceof Mockable);
|
Chris@0
|
21 }
|
Chris@0
|
22
|
Chris@0
|
23 public function testByDefaultMocksAllMethods()
|
Chris@0
|
24 {
|
Chris@0
|
25 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
26 $mock = $spec->getMock();
|
Chris@0
|
27 $this->assertNull($mock->mockableMethod());
|
Chris@0
|
28 $this->assertNull($mock->anotherMockableMethod());
|
Chris@0
|
29 }
|
Chris@0
|
30
|
Chris@0
|
31 public function testMethodsToMockCanBeSpecified()
|
Chris@0
|
32 {
|
Chris@0
|
33 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
34 $spec->setMethods(array('mockableMethod'));
|
Chris@0
|
35 $mock = $spec->getMock();
|
Chris@0
|
36 $this->assertNull($mock->mockableMethod());
|
Chris@0
|
37 $this->assertTrue($mock->anotherMockableMethod());
|
Chris@0
|
38 }
|
Chris@0
|
39
|
Chris@0
|
40 public function testByDefaultDoesNotPassArgumentsToTheConstructor()
|
Chris@0
|
41 {
|
Chris@0
|
42 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
43 $mock = $spec->getMock();
|
Chris@0
|
44 $this->assertEquals(array(null, null), $mock->constructorArgs);
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 public function testMockClassNameCanBeSpecified()
|
Chris@0
|
48 {
|
Chris@0
|
49 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
50 $spec->setMockClassName('ACustomClassName');
|
Chris@0
|
51 $mock = $spec->getMock();
|
Chris@0
|
52 $this->assertTrue($mock instanceof ACustomClassName);
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 public function testConstructorArgumentsCanBeSpecified()
|
Chris@0
|
56 {
|
Chris@0
|
57 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
58 $spec->setConstructorArgs($expected = array(23, 42));
|
Chris@0
|
59 $mock = $spec->getMock();
|
Chris@0
|
60 $this->assertEquals($expected, $mock->constructorArgs);
|
Chris@0
|
61 }
|
Chris@0
|
62
|
Chris@0
|
63 public function testOriginalConstructorCanBeDisabled()
|
Chris@0
|
64 {
|
Chris@0
|
65 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
66 $spec->disableOriginalConstructor();
|
Chris@0
|
67 $mock = $spec->getMock();
|
Chris@0
|
68 $this->assertNull($mock->constructorArgs);
|
Chris@0
|
69 }
|
Chris@0
|
70
|
Chris@0
|
71 public function testByDefaultOriginalCloneIsPreserved()
|
Chris@0
|
72 {
|
Chris@0
|
73 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
74 $mock = $spec->getMock();
|
Chris@0
|
75 $cloned = clone $mock;
|
Chris@0
|
76 $this->assertTrue($cloned->cloned);
|
Chris@0
|
77 }
|
Chris@0
|
78
|
Chris@0
|
79 public function testOriginalCloneCanBeDisabled()
|
Chris@0
|
80 {
|
Chris@0
|
81 $spec = $this->getMockBuilder('Mockable');
|
Chris@0
|
82 $spec->disableOriginalClone();
|
Chris@0
|
83 $mock = $spec->getMock();
|
Chris@0
|
84 $mock->cloned = false;
|
Chris@0
|
85 $cloned = clone $mock;
|
Chris@0
|
86 $this->assertFalse($cloned->cloned);
|
Chris@0
|
87 }
|
Chris@0
|
88
|
Chris@0
|
89 public function testCallingAutoloadCanBeDisabled()
|
Chris@0
|
90 {
|
Chris@0
|
91 // it is not clear to me how to test this nor the difference
|
Chris@0
|
92 // between calling it or not
|
Chris@0
|
93 $this->markTestIncomplete();
|
Chris@0
|
94 }
|
Chris@0
|
95
|
Chris@0
|
96 public function testProvidesAFluentInterface()
|
Chris@0
|
97 {
|
Chris@0
|
98 $spec = $this->getMockBuilder('Mockable')
|
Chris@0
|
99 ->setMethods(array('mockableMethod'))
|
Chris@0
|
100 ->setConstructorArgs(array())
|
Chris@0
|
101 ->setMockClassName('DummyClassName')
|
Chris@0
|
102 ->disableOriginalConstructor()
|
Chris@0
|
103 ->disableOriginalClone()
|
Chris@0
|
104 ->disableAutoload();
|
Chris@0
|
105 $this->assertTrue($spec instanceof PHPUnit_Framework_MockObject_MockBuilder);
|
Chris@0
|
106 }
|
Chris@0
|
107 }
|