Files
piratepoet/mailpoet/tests/integration/API/JSON/ResponseBuilders/SendingQueuesResponseBuilderTest.php
Rodrigo Primo d4a80c7230 Move SendingQueueEntity::toArray() to SendingQueuesResponseBuilder::build()
Based on a suggestion during the review of the PR, it was decided that
it makes more sense for the code that was created as
SendingQueueEntity::toArray() tp be moved to
SendingQueuesResponseBuilder::build(). It is used only to build the
format that is send in the API response.

[MAILPOET-4368]
2023-10-25 21:09:39 +02:00

67 lines
2.5 KiB
PHP

<?php declare(strict_types = 1);
namespace integration\API\JSON\ResponseBuilders;
use MailPoet\API\JSON\ResponseBuilders\SendingQueuesResponseBuilder;
use MailPoet\Entities\NewsletterEntity;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Tasks\Sending;
use MailPoet\Test\DataFactories\Newsletter as NewsletterFactory;
use MailPoet\Test\DataFactories\ScheduledTask as ScheduledTaskFactory;
use MailPoet\Test\DataFactories\SendingQueue as SendingQueueFactory;
use MailPoetVendor\Carbon\Carbon;
class SendingQueuesResponseBuilderTest extends \MailPoetTest {
/** @var NewsletterEntity */
private $newsletter;
/** @var ScheduledTaskEntity */
private $scheduledTask;
/** @var SendingQueueEntity */
private $sendingQueue;
/** @var SendingQueuesResponseBuilder */
private $sendingQueuesResponseBuilder;
public function _before() {
$newsletterFactory = new NewsletterFactory();
$sendingQueueFactory = new SendingQueueFactory();
$scheduledTaskFactory = new ScheduledTaskFactory();
$this->sendingQueuesResponseBuilder = $this->diContainer->get(SendingQueuesResponseBuilder::class);
$scheduledAt = new Carbon('2018-10-10 10:00:00');
$this->newsletter = $newsletterFactory->create();
$this->scheduledTask = $scheduledTaskFactory->create(Sending::TASK_TYPE, ScheduledTaskEntity::STATUS_SCHEDULED, $scheduledAt);
$this->sendingQueue = $sendingQueueFactory->create($this->scheduledTask, $this->newsletter);
$this->assertInstanceOf(SendingQueueEntity::class, $this->sendingQueue);
}
public function testBuildReturnsExpectedResult() {
$expectedResult = [
'id' => $this->sendingQueue->getId(),
'type' => 'sending',
'status' => 'scheduled',
'priority' => 0,
'scheduled_at' => '2018-10-10 10:00:00',
'processed_at' => null,
'created_at' => !is_null($this->sendingQueue->getCreatedAt()) ? $this->sendingQueue->getCreatedAt()->format('Y-m-d H:i:s') : null,
'updated_at' => $this->sendingQueue->getUpdatedAt()->format('Y-m-d H:i:s'),
'deleted_at' => null,
'in_progress' => null,
'reschedule_count' => 0,
'meta' => null,
'task_id' => $this->scheduledTask->getId(),
'newsletter_id' => $this->newsletter->getId(),
'newsletter_rendered_body' => null,
'newsletter_rendered_subject' => null,
'count_total' => 0,
'count_processed' => 0,
'count_to_process' => 0,
];
$this->assertSame($expectedResult, $this->sendingQueuesResponseBuilder->build($this->sendingQueue));
}
}