Skip to content

Commit

Permalink
tests(core): improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Guikingone committed Apr 9, 2022
1 parent b269594 commit d72fa00
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 121 deletions.
6 changes: 5 additions & 1 deletion src/Bridge/ApiPlatform/Filter/SearchFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ public function filter(TaskListInterface $list, array $filters = []): TaskListIn
$list = $list->filter(fn (TaskInterface $task): bool => $value === $task->getState());
break;
case 'timezone':
$list = $list->filter(fn (TaskInterface $task): bool => null !== $task->getTimezone() && $value === $task->getTimezone()->getName());
$list = $list->filter(function (TaskInterface $task) use ($value): bool {
$timezone = $task->getTimezone();

return null !== $timezone && $value === $timezone->getName();
});
break;
case 'type':
$list = $list->filter(fn (TaskInterface $task): bool => $value === get_class($task));
Expand Down
2 changes: 1 addition & 1 deletion tests/Bridge/ApiPlatform/Filter/SearchFilterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public function testFilterCanFilterOnTaskTimezone(): void
$task->expects(self::never())->method('getExpression');
$task->expects(self::never())->method('isQueued');
$task->expects(self::never())->method('getState');
$task->expects(self::exactly(2))->method('getTimezone')->willReturn(new DateTimeZone('UTC'));
$task->expects(self::once())->method('getTimezone')->willReturn(new DateTimeZone('UTC'));

$filter = new SearchFilter();
$list = $filter->filter(new TaskList([$task]), [
Expand Down
77 changes: 0 additions & 77 deletions tests/EventListener/WorkerLifecycleSubscriberTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,25 +88,6 @@ public function testSubscriberLogOnWorkerRestartedWithoutExecutedTask(): void
$workerLifecycleSubscriber->onWorkerRestarted(new WorkerRestartedEvent($worker));
}

public function testSubscriberLogOnWorkerRestartedWithoutExecutedTask(): void
{
$list = $this->createMock(TaskListInterface::class);
$list->expects(self::once())->method('count')->willReturn(0);

$worker = $this->createMock(WorkerInterface::class);
$worker->expects(self::once())->method('getFailedTasks')->willReturn($list);
$worker->expects(self::once())->method('getLastExecutedTask')->willReturn(null);

$logger = $this->createMock(LoggerInterface::class);
$logger->expects(self::once())->method('info')->with(self::equalTo('The worker has been restarted'), self::equalTo([
'failedTasks' => 0,
'lastExecutedTask' => null,
]));

$subscriber = new WorkerLifecycleSubscriber($logger);
$subscriber->onWorkerRestarted(new WorkerRestartedEvent($worker));
}

public function testSubscriberLogOnWorkerRestarted(): void
{
$task = $this->createMock(TaskInterface::class);
Expand Down Expand Up @@ -143,26 +124,6 @@ public function testSubscriberLogOnWorkerRunningWithoutExecutedTask(): void
$workerLifecycleSubscriber->onWorkerRunning(new WorkerRunningEvent($worker));
}

public function testSubscriberLogOnWorkerRunningWithoutExecutedTask(): void
{
$list = $this->createMock(TaskListInterface::class);
$list->expects(self::once())->method('count')->willReturn(0);

$worker = $this->createMock(WorkerInterface::class);
$worker->expects(self::once())->method('getFailedTasks')->willReturn($list);
$worker->expects(self::once())->method('getLastExecutedTask')->willReturn(null);

$logger = $this->createMock(LoggerInterface::class);
$logger->expects(self::once())->method('info')->with(self::equalTo('The worker is currently running'), self::equalTo([
'failedTasks' => 0,
'lastExecutedTask' => null,
'idle' => false,
]));

$subscriber = new WorkerLifecycleSubscriber($logger);
$subscriber->onWorkerRunning(new WorkerRunningEvent($worker));
}

public function testSubscriberLogOnWorkerRunning(): void
{
$task = $this->createMock(TaskInterface::class);
Expand Down Expand Up @@ -199,25 +160,6 @@ public function testSubscriberLogOnWorkerStartedWithoutExecutedTask(): void
$workerLifecycleSubscriber->onWorkerStarted(new WorkerStartedEvent($worker));
}

public function testSubscriberLogOnWorkerStartedWithoutExecutedTask(): void
{
$list = $this->createMock(TaskListInterface::class);
$list->expects(self::once())->method('count')->willReturn(0);

$worker = $this->createMock(WorkerInterface::class);
$worker->expects(self::once())->method('getFailedTasks')->willReturn($list);
$worker->expects(self::once())->method('getLastExecutedTask')->willReturn(null);

$logger = $this->createMock(LoggerInterface::class);
$logger->expects(self::once())->method('info')->with(self::equalTo('The worker has been started'), self::equalTo([
'failedTasks' => 0,
'lastExecutedTask' => null,
]));

$subscriber = new WorkerLifecycleSubscriber($logger);
$subscriber->onWorkerStarted(new WorkerStartedEvent($worker));
}

public function testSubscriberLogOnWorkerStarted(): void
{
$task = $this->createMock(TaskInterface::class);
Expand Down Expand Up @@ -253,25 +195,6 @@ public function testSubscriberLogOnWorkerStoppedWithoutExecutedTask(): void
$workerLifecycleSubscriber->onWorkerStopped(new WorkerStoppedEvent($worker));
}

public function testSubscriberLogOnWorkerStoppedWithoutExecutedTask(): void
{
$list = $this->createMock(TaskListInterface::class);
$list->expects(self::once())->method('count')->willReturn(0);

$worker = $this->createMock(WorkerInterface::class);
$worker->expects(self::once())->method('getFailedTasks')->willReturn($list);
$worker->expects(self::once())->method('getLastExecutedTask')->willReturn(null);

$logger = $this->createMock(LoggerInterface::class);
$logger->expects(self::once())->method('info')->with(self::equalTo('The worker has been stopped'), self::equalTo([
'failedTasks' => 0,
'lastExecutedTask' => null,
]));

$subscriber = new WorkerLifecycleSubscriber($logger);
$subscriber->onWorkerStopped(new WorkerStoppedEvent($worker));
}

public function testSubscriberLogOnWorkerStopped(): void
{
$task = $this->createMock(TaskInterface::class);
Expand Down
42 changes: 0 additions & 42 deletions tests/Serializer/TaskNormalizerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -952,48 +952,6 @@ public function testChainedTaskWithCommandTaskCanBeDenormalized(): void
self::assertContains('-vvv', $fooThirdTask->getOptions());
}

public function testChainedTaskWithCommandTaskCanBeDenormalized(): void
{
$objectNormalizer = new ObjectNormalizer(null, null, null, new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]));
$notificationTaskBagNormalizer = new NotificationTaskBagNormalizer($objectNormalizer);

$serializer = new Serializer([
$notificationTaskBagNormalizer,
new TaskNormalizer(new DateTimeNormalizer(), new DateTimeZoneNormalizer(), new DateIntervalNormalizer(), $objectNormalizer, $notificationTaskBagNormalizer),
new DateTimeNormalizer(),
new DateIntervalNormalizer(),
new JsonSerializableNormalizer(),
$objectNormalizer,
], [new JsonEncoder()]);
$objectNormalizer->setSerializer($serializer);

$data = $serializer->serialize(new ChainedTask(
'foo',
new ShellTask('bar', ['echo', 'Symfony']),
new CommandTask('foo_second', 'cache:clear', [], ['--no-warmup']),
new CommandTask('foo_third', 'cache:clear', [], ['--no-warmup'])
), 'json');
$task = $serializer->deserialize($data, TaskInterface::class, 'json');

self::assertInstanceOf(ChainedTask::class, $task);
self::assertNotEmpty($task->getTasks());
self::assertCount(3, $task->getTasks());
self::assertInstanceOf(ShellTask::class, $task->getTask(0));
self::assertSame('bar', $task->getTask(0)->getName());

self::assertInstanceOf(CommandTask::class, $task->getTask(1));
self::assertSame('foo_second', $task->getTask(1)->getName());
self::assertSame('cache:clear', $task->getTask(1)->getCommand());
self::assertEmpty($task->getTask(1)->getArguments());
self::assertNotEmpty($task->getTask(1)->getOptions());

self::assertInstanceOf(CommandTask::class, $task->getTask(2));
self::assertSame('foo_third', $task->getTask(2)->getName());
self::assertSame('cache:clear', $task->getTask(2)->getCommand());
self::assertEmpty($task->getTask(2)->getArguments());
self::assertNotEmpty($task->getTask(2)->getOptions());
}

public function testShellTaskWithBeforeSchedulingNotificationTaskBagCanBeNormalized(): void
{
$objectNormalizer = new ObjectNormalizer(null, null, null, new PropertyInfoExtractor([], [new PhpDocExtractor(), new ReflectionExtractor()]));
Expand Down

0 comments on commit d72fa00

Please sign in to comment.