mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Обновлены тесты для всех форм, что отправляли письма
This commit is contained in:
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
namespace tests\codeception\common\_support\queue;
|
||||
|
||||
use Codeception\Exception\ModuleException;
|
||||
use Codeception\Module;
|
||||
use Codeception\Module\Yii2;
|
||||
|
||||
class CodeceptionQueueHelper extends Module {
|
||||
|
||||
/**
|
||||
* Returns last sent message
|
||||
*
|
||||
* @return \yii\queue\JobInterface|null
|
||||
*/
|
||||
public function grabLastQueuedJob() {
|
||||
$messages = $this->grabQueueJobs();
|
||||
return end($messages);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns array of all sent amqp messages.
|
||||
* Each message is `\PhpAmqpLib\Message\AMQPMessage` instance.
|
||||
* Useful to perform additional checks using `Asserts` module.
|
||||
*
|
||||
* @param string|null $exchange
|
||||
* @return \yii\queue\JobInterface[]
|
||||
* @throws ModuleException
|
||||
*/
|
||||
public function grabQueueJobs() {
|
||||
$amqp = $this->grabComponent('queue');
|
||||
if (!$amqp instanceof Queue) {
|
||||
throw new ModuleException($this, 'AMQP module is not mocked, can\'t test messages');
|
||||
}
|
||||
|
||||
return $amqp->getMessages();
|
||||
}
|
||||
|
||||
private function grabComponent(string $component) {
|
||||
return $this->getYii2()->grabComponent($component);
|
||||
}
|
||||
|
||||
private function getYii2(): Yii2 {
|
||||
$yii2 = $this->getModule('Yii2');
|
||||
if (!$yii2 instanceof Yii2) {
|
||||
throw new ModuleException($this, 'Yii2 module must be configured');
|
||||
}
|
||||
|
||||
return $yii2;
|
||||
}
|
||||
|
||||
}
|
32
tests/codeception/common/_support/queue/Queue.php
Normal file
32
tests/codeception/common/_support/queue/Queue.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace tests\codeception\common\_support\queue;
|
||||
|
||||
use yii\base\NotSupportedException;
|
||||
use yii\queue\Queue as BaseQueue;
|
||||
|
||||
class Queue extends BaseQueue {
|
||||
|
||||
private $messages = [];
|
||||
|
||||
public function push($job) {
|
||||
$this->messages[] = $job;
|
||||
}
|
||||
|
||||
public function status($id) {
|
||||
throw new NotSupportedException('Status is not supported in the driver.');
|
||||
}
|
||||
|
||||
public function getMessages() {
|
||||
return $this->messages;
|
||||
}
|
||||
|
||||
protected function pushMessage($message, $ttr, $delay, $priority) {
|
||||
// This function is abstract, but will be not called
|
||||
}
|
||||
|
||||
public function __set($name, $value) {
|
||||
// Yii2 components may contains some configuration
|
||||
// But we just ignore it for this mock component
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user