From b2d70a79fc50393837256fb0fa14be6a538da09a Mon Sep 17 00:00:00 2001 From: viktorprogger Date: Sun, 4 May 2025 19:15:05 +0500 Subject: [PATCH 1/3] Allow to call QueueProvideer::withChannelName() --- src/QueueProvider.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/QueueProvider.php b/src/QueueProvider.php index 3af0873..f9796ed 100644 --- a/src/QueueProvider.php +++ b/src/QueueProvider.php @@ -6,7 +6,6 @@ use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AbstractConnection; -use Yiisoft\Queue\AMQP\Exception\ExchangeDeclaredException; use Yiisoft\Queue\AMQP\Settings\Exchange; use Yiisoft\Queue\AMQP\Settings\ExchangeSettingsInterface; use Yiisoft\Queue\AMQP\Settings\QueueSettingsInterface; @@ -38,11 +37,8 @@ public function getChannel(): AMQPChannel if ($this->channel === null) { $this->channel = $this->connection->channel(); $this->channel->queue_declare(...$this->queueSettings->getPositionalSettings()); - - if ($this->exchangeSettings !== null) { - $this->channel->exchange_declare(...$this->exchangeSettings->getPositionalSettings()); - $this->channel->queue_bind($this->queueSettings->getName(), $this->exchangeSettings->getName()); - } + $this->channel->exchange_declare(...$this->exchangeSettings->getPositionalSettings()); + $this->channel->queue_bind($this->queueSettings->getName(), $this->exchangeSettings->getName()); } return $this->channel; @@ -69,10 +65,6 @@ public function withChannelName(string $channel): self return $this; } - if ($this->exchangeSettings !== null) { - throw new ExchangeDeclaredException(); - } - $instance = clone $this; $instance->channel = null; $instance->queueSettings = $instance->queueSettings->withName($channel); From eb5229a197b41492e733e1b653cdf6704312d399 Mon Sep 17 00:00:00 2001 From: viktorprogger Date: Sun, 4 May 2025 19:19:35 +0500 Subject: [PATCH 2/3] Remove ExchangeDeclaredException --- src/Exception/ExchangeDeclaredException.php | 35 --------------------- tests/Unit/FriendlyExceptionTest.php | 17 ---------- tests/Unit/QueueProviderTest.php | 22 ------------- 3 files changed, 74 deletions(-) delete mode 100644 src/Exception/ExchangeDeclaredException.php delete mode 100644 tests/Unit/FriendlyExceptionTest.php diff --git a/src/Exception/ExchangeDeclaredException.php b/src/Exception/ExchangeDeclaredException.php deleted file mode 100644 index 0db3d37..0000000 --- a/src/Exception/ExchangeDeclaredException.php +++ /dev/null @@ -1,35 +0,0 @@ -getName()); - } -} diff --git a/tests/Unit/QueueProviderTest.php b/tests/Unit/QueueProviderTest.php index ef01c82..7b98eeb 100644 --- a/tests/Unit/QueueProviderTest.php +++ b/tests/Unit/QueueProviderTest.php @@ -64,28 +64,6 @@ public function testWithQueueAndExchangeSettings(): void self::assertEquals($messageBody['data']['payload']['time'], $result); } - public function testWithChannelNameExchangeDeclaredException(): void - { - $queueProvider = new QueueProvider( - $this->createConnection(), - $this->getQueueSettings(), - ); - - $this->expectException(ExchangeDeclaredException::class); - new Adapter( - $queueProvider - ->withQueueSettings( - new QueueSettings('yii-queue-test-with-channel-name') - ) - ->withExchangeSettings( - new ExchangeSettings('yii-queue-test-with-channel-name') - ) - ->withChannelName('yii-queue-test-channel-name'), - new JsonMessageSerializer(), - $this->getLoop(), - ); - } - public function testImmutable(): void { $queueSettings = $this->createMock(QueueSettingsInterface::class); From 82881c5a6c4f2843dda1c734d313e986fa963068 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Sun, 4 May 2025 14:19:44 +0000 Subject: [PATCH 3/3] Apply fixes from StyleCI --- tests/Unit/QueueProviderTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Unit/QueueProviderTest.php b/tests/Unit/QueueProviderTest.php index 7b98eeb..0a147ac 100644 --- a/tests/Unit/QueueProviderTest.php +++ b/tests/Unit/QueueProviderTest.php @@ -5,7 +5,6 @@ namespace Yiisoft\Queue\AMQP\Tests\Unit; use Yiisoft\Queue\AMQP\Adapter; -use Yiisoft\Queue\AMQP\Exception\ExchangeDeclaredException; use Yiisoft\Queue\AMQP\QueueProvider; use Yiisoft\Queue\AMQP\Settings\Exchange as ExchangeSettings; use Yiisoft\Queue\AMQP\Settings\ExchangeSettingsInterface;