47 lines
807 B
PHP
47 lines
807 B
PHP
<?php
|
|
|
|
namespace Mollie\Api\Fake;
|
|
|
|
use Closure;
|
|
|
|
class SequenceMockResponse
|
|
{
|
|
/**
|
|
* @var array<Closure|MockResponse>
|
|
*/
|
|
private array $responses;
|
|
|
|
public function __construct(...$responses)
|
|
{
|
|
$this->responses = $responses;
|
|
}
|
|
|
|
/**
|
|
* @return Closure|MockResponse
|
|
*/
|
|
public function shift()
|
|
{
|
|
if (empty($this->responses)) {
|
|
throw new \RuntimeException('No more responses available.');
|
|
}
|
|
|
|
$response = array_shift($this->responses);
|
|
|
|
return $response;
|
|
}
|
|
|
|
/**
|
|
* @deprecated use shift instead
|
|
* @return Closure|MockResponse
|
|
*/
|
|
public function pop()
|
|
{
|
|
return $this->shift();
|
|
}
|
|
|
|
public function isEmpty(): bool
|
|
{
|
|
return empty($this->responses);
|
|
}
|
|
}
|