25 lines
901 B
PHP
25 lines
901 B
PHP
<?php
|
|
|
|
namespace Tests\App\Services;
|
|
|
|
use App\Services\FinancialCategorySummaryService;
|
|
use CodeIgniter\Test\CIUnitTestCase;
|
|
|
|
class FinancialCategorySummaryServiceTest extends CIUnitTestCase
|
|
{
|
|
public function testDonationsAreIncomeAndExcludedFromExpenses(): void
|
|
{
|
|
$summary = FinancialCategorySummaryService::summarize([
|
|
['category' => 'Books', 'amount' => 125.50],
|
|
['category' => 'Donation', 'amount' => 500],
|
|
['category' => 'Office Supplies', 'amount' => 75],
|
|
['category' => 'donation', 'amount' => 25],
|
|
]);
|
|
|
|
$this->assertSame(200.50, $summary['totalExpenses']);
|
|
$this->assertSame(525.0, $summary['donationIncome']);
|
|
$this->assertSame(['Books' => 125.50, 'Office Supplies' => 75.0], $summary['expenseCategories']);
|
|
$this->assertArrayNotHasKey('Donation', $summary['expenseCategories']);
|
|
}
|
|
}
|