annotate vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.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@0 1 <?php
Chris@0 2 /*
Chris@14 3 * This file is part of the phpunit-mock-objects 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@14 11 use PHPUnit\Framework\TestCase;
Chris@14 12 use PHPUnit\Framework\MockObject\MockBuilder;
Chris@14 13
Chris@14 14 class MockBuilderTest extends TestCase
Chris@0 15 {
Chris@0 16 public function testMockBuilderRequiresClassName()
Chris@0 17 {
Chris@14 18 $mock = $this->getMockBuilder(Mockable::class)->getMock();
Chris@14 19
Chris@0 20 $this->assertTrue($mock instanceof Mockable);
Chris@0 21 }
Chris@0 22
Chris@0 23 public function testByDefaultMocksAllMethods()
Chris@0 24 {
Chris@14 25 $mock = $this->getMockBuilder(Mockable::class)->getMock();
Chris@14 26
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@14 33 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 34 ->setMethods(['mockableMethod'])
Chris@14 35 ->getMock();
Chris@14 36
Chris@0 37 $this->assertNull($mock->mockableMethod());
Chris@0 38 $this->assertTrue($mock->anotherMockableMethod());
Chris@0 39 }
Chris@0 40
Chris@14 41 public function testMethodExceptionsToMockCanBeSpecified()
Chris@14 42 {
Chris@14 43 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 44 ->setMethodsExcept(['mockableMethod'])
Chris@14 45 ->getMock();
Chris@14 46
Chris@14 47 $this->assertTrue($mock->mockableMethod());
Chris@14 48 $this->assertNull($mock->anotherMockableMethod());
Chris@14 49 }
Chris@14 50
Chris@14 51 public function testEmptyMethodExceptionsToMockCanBeSpecified()
Chris@14 52 {
Chris@14 53 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 54 ->setMethodsExcept()
Chris@14 55 ->getMock();
Chris@14 56
Chris@14 57 $this->assertNull($mock->mockableMethod());
Chris@14 58 $this->assertNull($mock->anotherMockableMethod());
Chris@14 59 }
Chris@14 60
Chris@0 61 public function testByDefaultDoesNotPassArgumentsToTheConstructor()
Chris@0 62 {
Chris@14 63 $mock = $this->getMockBuilder(Mockable::class)->getMock();
Chris@14 64
Chris@14 65 $this->assertEquals([null, null], $mock->constructorArgs);
Chris@0 66 }
Chris@0 67
Chris@0 68 public function testMockClassNameCanBeSpecified()
Chris@0 69 {
Chris@14 70 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 71 ->setMockClassName('ACustomClassName')
Chris@14 72 ->getMock();
Chris@14 73
Chris@0 74 $this->assertTrue($mock instanceof ACustomClassName);
Chris@0 75 }
Chris@0 76
Chris@0 77 public function testConstructorArgumentsCanBeSpecified()
Chris@0 78 {
Chris@14 79 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 80 ->setConstructorArgs([23, 42])
Chris@14 81 ->getMock();
Chris@14 82
Chris@14 83 $this->assertEquals([23, 42], $mock->constructorArgs);
Chris@0 84 }
Chris@0 85
Chris@0 86 public function testOriginalConstructorCanBeDisabled()
Chris@0 87 {
Chris@14 88 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 89 ->disableOriginalConstructor()
Chris@14 90 ->getMock();
Chris@14 91
Chris@0 92 $this->assertNull($mock->constructorArgs);
Chris@0 93 }
Chris@0 94
Chris@0 95 public function testByDefaultOriginalCloneIsPreserved()
Chris@0 96 {
Chris@14 97 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 98 ->getMock();
Chris@14 99
Chris@0 100 $cloned = clone $mock;
Chris@14 101
Chris@0 102 $this->assertTrue($cloned->cloned);
Chris@0 103 }
Chris@0 104
Chris@0 105 public function testOriginalCloneCanBeDisabled()
Chris@0 106 {
Chris@14 107 $mock = $this->getMockBuilder(Mockable::class)
Chris@14 108 ->disableOriginalClone()
Chris@14 109 ->getMock();
Chris@14 110
Chris@0 111 $mock->cloned = false;
Chris@14 112 $cloned = clone $mock;
Chris@14 113
Chris@0 114 $this->assertFalse($cloned->cloned);
Chris@0 115 }
Chris@0 116
Chris@0 117 public function testProvidesAFluentInterface()
Chris@0 118 {
Chris@14 119 $spec = $this->getMockBuilder(Mockable::class)
Chris@14 120 ->setMethods(['mockableMethod'])
Chris@14 121 ->setConstructorArgs([])
Chris@0 122 ->setMockClassName('DummyClassName')
Chris@0 123 ->disableOriginalConstructor()
Chris@0 124 ->disableOriginalClone()
Chris@0 125 ->disableAutoload();
Chris@14 126
Chris@14 127 $this->assertTrue($spec instanceof MockBuilder);
Chris@0 128 }
Chris@0 129 }