update rm deadcode
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\Enums\Product\ProductBillingCycle;
|
||||
use App\Helpers\OrderHelper;
|
||||
use App\Models\DomainPricing;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class BillingPricingTest extends TestCase
|
||||
{
|
||||
public function test_cycle_to_months_covers_every_enum_case(): void
|
||||
{
|
||||
$expected = [
|
||||
'onetime' => 1,
|
||||
'monthly' => 1,
|
||||
'quarterly' => 3,
|
||||
'semi_annually' => 6,
|
||||
'annually' => 12,
|
||||
'biennially' => 24,
|
||||
'triennially' => 36,
|
||||
];
|
||||
|
||||
foreach (ProductBillingCycle::cases() as $case) {
|
||||
$this->assertSame($expected[$case->value], OrderHelper::cycleToMonths($case->value));
|
||||
}
|
||||
}
|
||||
|
||||
public function test_cycle_to_months_throws_on_unknown_value(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
OrderHelper::cycleToMonths('semiannually');
|
||||
}
|
||||
|
||||
public function test_cycle_to_months_throws_on_null(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
OrderHelper::cycleToMonths(null);
|
||||
}
|
||||
|
||||
/** @dataProvider domainPriceProvider */
|
||||
public function test_domain_price_formula(int $setupFee, int $firstYear, int $renewal, int $years, int $expected): void
|
||||
{
|
||||
$pricing = new DomainPricing([
|
||||
'setup_fee' => (string) $setupFee,
|
||||
'first_year' => $firstYear,
|
||||
'recurring_fee' => (string) $renewal,
|
||||
]);
|
||||
|
||||
$this->assertSame($expected, $pricing->orderPrice($years));
|
||||
}
|
||||
|
||||
public static function domainPriceProvider(): array
|
||||
{
|
||||
return [
|
||||
'years=1, no setup fee' => [0, 200000, 350000, 1, 200000],
|
||||
'years=1, with setup fee' => [50000, 200000, 350000, 1, 250000],
|
||||
'years=3, no setup fee' => [0, 200000, 350000, 3, 900000],
|
||||
'years=3, with setup fee' => [50000, 200000, 350000, 3, 950000],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user