photo_gallery/test/utils/generator.dart

128 lines
2.8 KiB
Dart
Raw Permalink Normal View History

2020-08-14 18:07:27 +08:00
import 'dart:io';
import 'package:photo_gallery/photo_gallery.dart';
class Generator {
2023-05-15 01:41:02 +08:00
static dynamic generateAlbumsJson({
MediumType? mediumType = MediumType.image,
bool? newest = true,
}) {
2020-08-14 18:07:27 +08:00
return [
{
"id": "__ALL__",
"mediumType": mediumTypeToJson(mediumType),
2023-05-15 01:41:02 +08:00
"newest": newest,
2020-08-14 18:07:27 +08:00
"name": "All",
"count": 5,
},
{
"id": "AlbumId",
2020-08-14 18:07:27 +08:00
"mediumType": mediumTypeToJson(mediumType),
2023-05-15 01:41:02 +08:00
"newest": newest,
2020-08-22 16:59:52 +08:00
"name": "AlbumName",
2020-08-14 18:07:27 +08:00
"count": 5,
}
];
}
2024-03-25 21:17:22 +08:00
static List<Album> generateAlbums({
MediumType? mediumType,
bool newest = true,
}) {
2023-05-15 01:41:02 +08:00
return Generator.generateAlbumsJson(mediumType: mediumType, newest: newest)
.map<Album>((x) => Album.fromJson(x, mediumType, newest))
2020-08-14 18:07:27 +08:00
.toList();
}
static dynamic generateMediaPageJson({
2021-03-18 12:00:31 +00:00
required String albumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2021-03-18 12:00:31 +00:00
int? skip,
int? take,
2020-08-14 18:07:27 +08:00
}) {
skip = skip ?? 0;
take = take ?? 10;
2020-08-14 18:07:27 +08:00
var items = [];
int index = skip;
while (index < skip + take) {
2024-03-25 21:17:22 +08:00
items.add(generateMediaJson(
mediumId: index.toString(),
mediumType: mediumType,
));
2020-08-14 18:07:27 +08:00
index++;
}
return {
"start": skip,
"items": items,
};
}
static dynamic generateMediaJson({
2021-03-18 12:00:31 +00:00
required String mediumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2020-08-14 18:07:27 +08:00
}) {
return {
"id": mediumId,
"mediumType": mediumTypeToJson(mediumType),
"width": 512,
"height": 512,
"mimeType": "image/jpeg",
"duration": 3600,
2020-08-14 18:07:27 +08:00
"creationDate": DateTime(2020, 8, 1).millisecondsSinceEpoch,
"modifiedDate": DateTime(2020, 9, 1).millisecondsSinceEpoch,
2020-08-14 18:07:27 +08:00
};
}
static MediaPage generateMediaPage({
2021-03-18 12:00:31 +00:00
required Album album,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2021-03-18 12:00:31 +00:00
int? skip,
int? take,
2020-08-14 18:07:27 +08:00
}) {
dynamic json = generateMediaPageJson(
2020-08-22 16:59:52 +08:00
albumId: album.id,
2020-08-14 18:07:27 +08:00
mediumType: mediumType,
skip: skip,
take: take ?? album.count,
2020-08-14 18:07:27 +08:00
);
2020-08-22 16:59:52 +08:00
return MediaPage.fromJson(album, json);
2020-08-14 18:07:27 +08:00
}
static Medium generateMedia({
2021-03-18 12:00:31 +00:00
required String mediumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2020-08-14 18:07:27 +08:00
}) {
return Medium.fromJson(
generateMediaJson(mediumId: mediumId, mediumType: mediumType),
);
}
static List<int> generateMockThumbnail({
2021-03-18 12:00:31 +00:00
required String mediumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2020-08-14 18:07:27 +08:00
}) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9];
}
2020-08-22 16:59:52 +08:00
static List<int> generateMockAlbumThumbnail({
2021-03-18 12:00:31 +00:00
required String albumId,
2020-08-14 18:07:27 +08:00
}) {
return [1, 2, 3, 4, 5, 6, 7, 8, 9];
}
static String generateFilePath({
2021-03-18 12:00:31 +00:00
required String mediumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2020-08-14 18:07:27 +08:00
}) {
return "/path/to/file";
}
static File generateFile({
2021-03-18 12:00:31 +00:00
required String mediumId,
2021-03-30 22:30:21 +08:00
MediumType? mediumType,
2020-08-14 18:07:27 +08:00
}) {
return File(generateFilePath(mediumId: mediumId, mediumType: mediumType));
}
}