add controllers, servoices
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Services\Invoices;
|
||||
|
||||
use App\Services\Invoices\InvoiceGradeService;
|
||||
use App\Services\Invoices\InvoiceTuitionService;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Tests\TestCase;
|
||||
|
||||
class InvoiceTuitionServiceTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_calculate_tuition_fee_counts_regular_and_youth(): void
|
||||
{
|
||||
DB::table('classSection')->insert([
|
||||
['class_section_id' => 1, 'class_section_name' => '1', 'class_id' => 1],
|
||||
['class_section_id' => 2, 'class_section_name' => '2', 'class_id' => 2],
|
||||
['class_section_id' => 3, 'class_section_name' => '10', 'class_id' => 10],
|
||||
]);
|
||||
|
||||
$grades = new InvoiceGradeService(9);
|
||||
$service = new InvoiceTuitionService($grades, 9, 350.0, 200.0, 180.0, 'UTC');
|
||||
|
||||
$registeredKids = [
|
||||
['class_section_id' => 1],
|
||||
['class_section_id' => 2],
|
||||
['class_section_id' => 3],
|
||||
];
|
||||
|
||||
$total = $service->calculateTuitionFee($registeredKids, [], date('Y-m-d', strtotime('+10 days')));
|
||||
|
||||
$this->assertSame(730.0, $total);
|
||||
}
|
||||
|
||||
public function test_refund_deadline_includes_withdrawn_when_passed(): void
|
||||
{
|
||||
DB::table('classSection')->insert([
|
||||
['class_section_id' => 1, 'class_section_name' => '1', 'class_id' => 1],
|
||||
['class_section_id' => 2, 'class_section_name' => '2', 'class_id' => 2],
|
||||
]);
|
||||
|
||||
$grades = new InvoiceGradeService(9);
|
||||
$service = new InvoiceTuitionService($grades, 9, 350.0, 200.0, 180.0, 'UTC');
|
||||
|
||||
$registeredKids = [
|
||||
['class_section_id' => 1],
|
||||
];
|
||||
$withdrawnKids = [
|
||||
['class_section_id' => 2],
|
||||
];
|
||||
|
||||
$totalAllowed = $service->calculateTuitionFee($registeredKids, $withdrawnKids, date('Y-m-d', strtotime('+10 days')));
|
||||
$totalBlocked = $service->calculateTuitionFee($registeredKids, $withdrawnKids, date('Y-m-d', strtotime('-10 days')));
|
||||
|
||||
$this->assertSame(350.0, $totalAllowed);
|
||||
$this->assertSame(550.0, $totalBlocked);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user