immich/mobile/test/test_utils/medium_factory.dart
Adam Gastineau 225ca9ab8d
chore(mobile): use Drift @DriftAccessor() and collapse some providers (#30693)
* chore(mobile): use Drift @DriftAccessor() and collapse some providers

* Fix import order

* Required formatting
2026-08-17 14:43:32 -07:00

40 lines
1.1 KiB
Dart

import 'dart:math';
import 'package:immich_mobile/domain/models/album/local_album.model.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/local_album.repository.dart';
class MediumFactory {
final Drift _db;
const MediumFactory(Drift db) : _db = db;
LocalAlbum localAlbum({
String? id,
String? name,
DateTime? updatedAt,
int? assetCount,
BackupSelection? backupSelection,
bool? isIosSharedAlbum,
}) {
final random = Random();
return LocalAlbum(
id: id ?? '${random.nextInt(1000000)}',
name: name ?? 'Album ${random.nextInt(1000000)}',
updatedAt: updatedAt ?? DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)),
assetCount: assetCount ?? random.nextInt(100),
backupSelection: backupSelection ?? BackupSelection.none,
isIosSharedAlbum: isIosSharedAlbum ?? false,
);
}
T getRepository<T>() {
switch (T) {
case const (LocalAlbumRepository):
return LocalAlbumRepository(_db) as T;
default:
throw Exception('Unknown repository: $T');
}
}
}