PIMS/tests/Unit/Movies/ListMoviesServiceTest.php

33 lines
1,005 B
PHP

<?php
namespace Tests\Unit\Movies;
use App\Modules\Movies\Models\Movie;
use App\Modules\Movies\Services\Browse\ListMoviesService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ListMoviesServiceTest extends TestCase
{
use RefreshDatabase;
public function test_paginates_and_filters_by_title(): void
{
Movie::factory()->count(15)->create(['title' => 'Alpha']);
Movie::factory()->count(10)->create(['title' => 'Beta']);
$service = new ListMoviesService();
// Default per_page = 20, filter 'Alpha' returns 15 on first page
$page = $service->list(['q' => 'Alpha']);
$this->assertSame(15, $page->total());
$this->assertSame(1, $page->currentPage());
$this->assertCount(15, $page->items());
// Request per_page 10
$page10 = $service->list(['q' => 'Beta', 'per_page' => 10]);
$this->assertSame(10, $page10->total());
$this->assertCount(10, $page10->items());
}
}