['Viande de dinde (66%)']]), portions: null, allergens: [], brand: new Brand('M01', 'Le Gaulois'), isSeasonal: true, weight: null, nutriscore: null, storageCondition: null, additives: [], compo: null, createdAt: null, updatedAt: null, ); $paginatedResult = new Paginated($pagination, [$incoSheet], 1); $incoDirectory->shouldReceive('findAll') ->once() ->withArgs(function (Pagination $actualPagination, DirectoryIncoSheetSorter $actualSorter, mixed $actualFilter) use ($pagination): bool { return $actualPagination === $pagination && $actualSorter->sortBy === DirectoryIncoSheetSortColumn::incoSheetId && $actualSorter->direction === \SortDirection::Ascending && $actualFilter === null; }) ->andReturn($paginatedResult); // WHEN $result = $usecase->execute($input); // THEN expect($result)->toBeInstanceOf(Output::class) ->and($result->total)->toBe(1) ->and($result->page)->toBe(1) ->and($result->perPage)->toBe(10) ->and($result->incoSheets)->toHaveCount(1) ->and($result->incoSheets[0]->name)->toBe('Poulet Rôti 1kg'); }); });