// Author: fruit.com.cn import 'package:fruitshorts/core/data/models/notice.dart'; import 'package:fruitshorts/core/data/repositories/notice_repository.dart'; /// Scripted notice repository for controller and widget tests. class FakeNoticeRepository implements NoticeRepository { FakeNoticeRepository({List? pages, this.error, this.delay}) : pages = pages ?? []; final List pages; Object? error; Duration? delay; final List calls = []; @override Future page({required int pageIndex, int pageSize = 20}) async { calls.add(FakeNoticeCall(pageIndex: pageIndex, pageSize: pageSize)); if (delay != null) await Future.delayed(delay!); if (error != null) throw error!; if (pages.isEmpty) return const NoticePage(total: 0); return pages.removeAt(0); } } /// Captured notice page request. class FakeNoticeCall { const FakeNoticeCall({required this.pageIndex, required this.pageSize}); final int pageIndex; final int pageSize; }