isFinished()); $message->finish(); self::assertTrue($message->isFinished()); $this->expectException(MessageAlreadyFinished::class); $this->expectExceptionMessage('Can\'t finish message as it already finished.'); $message->finish(); } /** * @dataProvider messages */ public function testDoubleRequeue(Message $message): void { self::assertFalse($message->isFinished()); $message->requeue(1); self::assertTrue($message->isFinished()); $this->expectException(MessageAlreadyFinished::class); $this->expectExceptionMessage('Can\'t requeue message as it already finished.'); $message->requeue(5); } /** * @dataProvider messages */ public function testTouchAfterFinish(Message $message): void { self::assertFalse($message->isFinished()); $message->finish(); $this->expectException(MessageAlreadyFinished::class); $this->expectExceptionMessage('Can\'t touch message as it already finished.'); $message->touch(); } /** * @return Generator */ public function messages(): Generator { yield [new Message(0, 0, 'id', 'body', $this->createStub(Consumer::class))]; } }