Mercurial > hg > isophonics-drupal-site
diff vendor/phpunit/phpunit-mock-objects/tests/Builder/InvocationMockerTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/phpunit/phpunit-mock-objects/tests/Builder/InvocationMockerTest.php Mon Apr 23 09:46:53 2018 +0100 @@ -0,0 +1,74 @@ +<?php +/* + * This file is part of the phpunit-mock-objects 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. + */ + +use PHPUnit\Framework\TestCase; + +class InvocationMockerTest extends TestCase +{ + public function testWillReturnWithOneValue() + { + $mock = $this->getMockBuilder(stdClass::class) + ->setMethods(['foo']) + ->getMock(); + + $mock->expects($this->any()) + ->method('foo') + ->willReturn(1); + + $this->assertEquals(1, $mock->foo()); + } + + public function testWillReturnWithMultipleValues() + { + $mock = $this->getMockBuilder(stdClass::class) + ->setMethods(['foo']) + ->getMock(); + + $mock->expects($this->any()) + ->method('foo') + ->willReturn(1, 2, 3); + + $this->assertEquals(1, $mock->foo()); + $this->assertEquals(2, $mock->foo()); + $this->assertEquals(3, $mock->foo()); + } + + public function testWillReturnOnConsecutiveCalls() + { + $mock = $this->getMockBuilder(stdClass::class) + ->setMethods(['foo']) + ->getMock(); + + $mock->expects($this->any()) + ->method('foo') + ->willReturnOnConsecutiveCalls(1, 2, 3); + + $this->assertEquals(1, $mock->foo()); + $this->assertEquals(2, $mock->foo()); + $this->assertEquals(3, $mock->foo()); + } + + public function testWillReturnByReference() + { + $mock = $this->getMockBuilder(stdClass::class) + ->setMethods(['foo']) + ->getMock(); + + $mock->expects($this->any()) + ->method('foo') + ->willReturnReference($value); + + $this->assertSame(null, $mock->foo()); + $value = 'foo'; + $this->assertSame('foo', $mock->foo()); + $value = 'bar'; + $this->assertSame('bar', $mock->foo()); + } +}