Skip to content

Commit 3d97763

Browse files
Marick van TuilMarick van Tuil
authored andcommitted
Refactor
1 parent 3222ed3 commit 3d97763

4 files changed

Lines changed: 32 additions & 38 deletions

File tree

phpstan.neon

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ parameters:
66
- src
77
level: 9
88
ignoreErrors:
9-
- "/dispatchAfterCommit with no type specified/"
9+
- "/dispatchAfterCommit with no type specified/"
10+
- message: "#Illuminate\\\\Queue\\\\Events\\\\Queue(Paused|Resumed)#"
11+
identifier: class.notFound

src/CloudTasksApiFake.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,11 @@ public function assertCreatedTaskCount(int $count): void
103103

104104
public function assertQueuePaused(string $queue): void
105105
{
106-
Assert::assertTrue($this->pausedQueues[$queue] ?? null, 'Expected queue ['.$queue.'] to be paused, but is not');
106+
Assert::assertArrayHasKey($queue, $this->pausedQueues, 'Expected queue ['.$queue.'] to be paused, but it is not.');
107107
}
108108

109109
public function assertQueueNotPaused(string $queue): void
110110
{
111-
Assert::assertNotTrue($this->pausedQueues[$queue] ?? null, 'Expected queue ['.$queue.'] to not be paused, but it is');
111+
Assert::assertArrayNotHasKey($queue, $this->pausedQueues, 'Expected queue ['.$queue.'] to not be paused, but it is.');
112112
}
113113
}

src/CloudTasksServiceProvider.php

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -117,29 +117,25 @@ private function registerEvents(): void
117117
}
118118
});
119119

120-
if (class_exists('Illuminate\Queue\Events\QueuePaused')) {
121-
$events->listen(QueuePaused::class, function (QueuePaused $event) { // @phpstan-ignore-line
122-
$queue = Queue::connection($event->connection); // @phpstan-ignore-line
123-
124-
if (! $queue instanceof CloudTasksQueue) {
125-
return;
126-
}
127-
128-
$queue->pause($event->queue); // @phpstan-ignore-line
129-
});
120+
if (! class_exists(QueuePaused::class)) {
121+
return;
130122
}
131123

132-
if (class_exists('Illuminate\Queue\Events\QueueResumed')) {
133-
$events->listen(QueueResumed::class, function (QueueResumed $event) { // @phpstan-ignore-line
134-
$queue = Queue::connection($event->connection); // @phpstan-ignore-line
124+
$events->listen(QueuePaused::class, function (QueuePaused $event) {
125+
$queue = Queue::connection($event->connection);
135126

136-
if (! $queue instanceof CloudTasksQueue) {
137-
return;
138-
}
127+
if ($queue instanceof CloudTasksQueue) {
128+
$queue->pause($event->queue);
129+
}
130+
});
139131

140-
$queue->resume($event->queue); // @phpstan-ignore-line
141-
});
142-
}
132+
$events->listen(QueueResumed::class, function (QueueResumed $event) {
133+
$queue = Queue::connection($event->connection);
134+
135+
if ($queue instanceof CloudTasksQueue) {
136+
$queue->resume($event->queue);
137+
}
138+
});
143139
}
144140

145141
private function registerCommands(): void

tests/PauseResumeQueueTest.php

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,32 @@
1010

1111
class PauseResumeQueueTest extends TestCase
1212
{
13-
#[Test]
14-
public function queue_can_be_paused(): void
13+
protected function setUp(): void
1514
{
16-
// Arrange
17-
if (app()->version() < 12) {
15+
parent::setUp();
16+
17+
if (version_compare(app()->version(), '12.0.0', '<')) {
1818
$this->markTestSkipped('This feature only exists in Laravel 12 and up.');
1919
}
2020

2121
CloudTasksApi::fake();
22+
}
2223

24+
#[Test]
25+
public function queue_can_be_paused(): void
26+
{
2327
Artisan::call('queue:pause my-cloudtasks-connection:barbequeue');
2428

25-
// Assert
26-
CloudTasksApi::assertQueuePaused('barbequeue');
29+
CloudTasksApi::assertQueuePaused('projects/my-test-project/locations/europe-west6/queues/barbequeue');
2730
}
2831

2932
#[Test]
3033
public function queue_can_be_resumed(): void
3134
{
32-
// Arrange
33-
if (app()->version() < 12) {
34-
$this->markTestSkipped('This feature only exists in Laravel 12 and up.');
35-
}
36-
37-
CloudTasksApi::fake();
38-
3935
Artisan::call('queue:pause my-cloudtasks-connection:barbequeue');
40-
Artisan::call('queue:continue my-cloudtasks-connection:barbequeue');
36+
CloudTasksApi::assertQueuePaused('projects/my-test-project/locations/europe-west6/queues/barbequeue');
4137

42-
// Assert
43-
CloudTasksApi::assertQueueNotPaused('barbequeue');
38+
Artisan::call('queue:continue my-cloudtasks-connection:barbequeue');
39+
CloudTasksApi::assertQueueNotPaused('projects/my-test-project/locations/europe-west6/queues/barbequeue');
4440
}
4541
}

0 commit comments

Comments
 (0)