EVOLUTION-MANAGER
Edit File: ConsecutiveParametersTest.php
<?php /* * This file is part of PHPUnit. * * (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\ExpectationFailedException; use PHPUnit\Framework\InvalidParameterGroupException; use PHPUnit\Framework\TestCase; class ConsecutiveParametersTest extends TestCase { public function testIntegration(): void { $mock = $this->getMockBuilder(stdClass::class) ->setMethods(['foo']) ->getMock(); $mock->expects($this->any()) ->method('foo') ->withConsecutive( ['bar'], [21, 42] ); $this->assertNull($mock->foo('bar')); $this->assertNull($mock->foo(21, 42)); } public function testIntegrationWithLessAssertionsThanMethodCalls(): void { $mock = $this->getMockBuilder(stdClass::class) ->setMethods(['foo']) ->getMock(); $mock->expects($this->any()) ->method('foo') ->withConsecutive( ['bar'] ); $this->assertNull($mock->foo('bar')); $this->assertNull($mock->foo(21, 42)); } public function testIntegrationExpectingException(): void { $mock = $this->getMockBuilder(stdClass::class) ->setMethods(['foo']) ->getMock(); $mock->expects($this->any()) ->method('foo') ->withConsecutive( ['bar'], [21, 42] ); $mock->foo('bar'); $this->expectException(ExpectationFailedException::class); $mock->foo('invalid'); } public function testIntegrationFailsWithNonIterableParameterGroup(): void { $mock = $this->getMockBuilder(stdClass::class) ->setMethods(['foo']) ->getMock(); $this->expectException(InvalidParameterGroupException::class); $this->expectExceptionMessage('Parameter group #1 must be an array or Traversable, got object'); $mock->expects($this->any()) ->method('foo') ->withConsecutive( ['bar'], $this->identicalTo([21, 42]) // this is not an array ); } }