Your IP : 216.73.217.79


Current Path : /var/git/cesa-v3/cesa-v3/tests/MailQueueBundle/
Upload File :
Current File : /var/git/cesa-v3/cesa-v3/tests/MailQueueBundle/MailQueueServiceTest.php

<?php

namespace App\Tests\MailQueueBundle;

use App\MailQueueBundle\Entity\BulkMailToSend;
use App\MailQueueBundle\Service\MailQueueService;
use PHPUnit\Framework\TestCase;

class MailQueueServiceTest extends TestCase
{
    public function testAggregateSendCountsCastsValues(): void
    {
        $this->assertSame(
            ['pending' => 5, 'sent' => 10, 'failed' => 2],
            MailQueueService::aggregateSendCounts(['pending' => '5', 'sent' => 10, 'failed' => '2'])
        );
    }

    public function testAggregateSendCountsDefaultsMissingKeysToZero(): void
    {
        $this->assertSame(
            ['pending' => 0, 'sent' => 0, 'failed' => 0],
            MailQueueService::aggregateSendCounts([])
        );
    }

    public function testStatusLabelMapping(): void
    {
        $this->assertSame('Pending', MailQueueService::statusLabel(BulkMailToSend::STATUS_PENDING));
        $this->assertSame('Sent', MailQueueService::statusLabel(BulkMailToSend::STATUS_SENT));
        $this->assertSame('Failed', MailQueueService::statusLabel(BulkMailToSend::STATUS_FAILED));
        $this->assertSame('Pending', MailQueueService::statusLabel(99));
    }

    public function testStatusCssClassMapping(): void
    {
        $this->assertSame('warning', MailQueueService::statusCssClass(BulkMailToSend::STATUS_PENDING));
        $this->assertSame('success', MailQueueService::statusCssClass(BulkMailToSend::STATUS_SENT));
        $this->assertSame('danger', MailQueueService::statusCssClass(BulkMailToSend::STATUS_FAILED));
    }
}