shopit-back/tests/Unit/Purchase/PurchaseAdminStatusTest.php

70 lines
2.1 KiB
PHP

<?php
namespace Tests\Unit\Purchase;
use App\Domains\Purchase\Models\Purchase;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
class PurchaseAdminStatusTest extends TestCase
{
#[DataProvider('statusMappings')]
public function test_it_maps_real_statuses_to_admin_statuses(
string $realStatus,
string $adminStatus,
string $adminStatusName,
): void {
$this->assertSame($adminStatus, Purchase::adminStatusFor($realStatus));
$this->assertSame($adminStatusName, Purchase::adminStatusNameFor($realStatus));
$this->assertContains(
$realStatus,
Purchase::realStatusesForAdminStatus($adminStatus),
);
}
/** @return iterable<string, array{string, string, string}> */
public static function statusMappings(): iterable
{
yield 'created' => [
Purchase::STATUS_CREATED,
Purchase::ADMIN_STATUS_INCOMPLETE,
'Por completar datos',
];
yield 'pending payment' => [
Purchase::STATUS_PENDING_PAYMENT,
Purchase::ADMIN_STATUS_AWAITING_PAYMENT,
'Esperando pago',
];
yield 'in review' => [
Purchase::STATUS_IN_REVIEW,
Purchase::ADMIN_STATUS_AWAITING_PAYMENT,
'Esperando pago',
];
yield 'paid' => [
Purchase::STATUS_PAID,
Purchase::ADMIN_STATUS_CONFIRMED,
'Confirmado',
];
yield 'cancelled' => [
Purchase::STATUS_CANCELLED,
Purchase::ADMIN_STATUS_CANCELLED,
'Anulado',
];
yield 'rejected' => [
Purchase::STATUS_REJECTED,
Purchase::ADMIN_STATUS_CANCELLED,
'Anulado',
];
yield 'expired' => [
Purchase::STATUS_EXPIRED,
Purchase::ADMIN_STATUS_CANCELLED,
'Anulado',
];
yield 'superseded' => [
Purchase::STATUS_SUPERSEDED,
Purchase::ADMIN_STATUS_CANCELLED,
'Anulado',
];
}
}