aves/test/model/grouping/convert_test.dart
Thibault Deckers 651b5926dc #268 cover/pins/bookmarks sub to dynamics/groups; dynamics sub to groups;
container filter mixin;
debug: cover/dynamics dump;
2025-05-11 21:57:38 +02:00

41 lines
1.8 KiB
Dart

import 'package:aves/model/db/db.dart';
import 'package:aves/model/dynamic_albums.dart';
import 'package:aves/model/filters/container/album_group.dart';
import 'package:aves/model/filters/container/dynamic_album.dart';
import 'package:aves/model/filters/covered/stored_album.dart';
import 'package:aves/model/filters/container/set_or.dart';
import 'package:aves/model/grouping/common.dart';
import 'package:aves/model/grouping/convert.dart';
import 'package:aves/services/common/services.dart';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import '../../fake/db.dart';
void main() {
const groupName = 'some group name';
const storedAlbumPath = '/path/to/album/';
setUp(() async {
// specify Posix style path context for consistent behaviour when running tests on Windows
getIt.registerLazySingleton<p.Context>(() => p.Context(style: p.Style.posix));
getIt.registerLazySingleton<LocalMediaDb>(FakeAvesDb.new);
});
tearDown(() async {
await dynamicAlbums.clear();
await getIt.reset();
});
test('Filter URI round trip', () {
final storedAlbumFilter = StoredAlbumFilter(storedAlbumPath, 'display name');
final dynamicAlbumFilter = DynamicAlbumFilter('dynamic name', storedAlbumFilter);
dynamicAlbums.add(dynamicAlbumFilter);
final groupUri = albumGrouping.buildGroupUri(null, groupName);
final albumGroupFilter = AlbumGroupFilter(groupUri, SetOrFilter({storedAlbumFilter, dynamicAlbumFilter}));
expect(albumGrouping.uriToFilter(GroupingConversion.filterToUri(storedAlbumFilter)), storedAlbumFilter);
expect(albumGrouping.uriToFilter(GroupingConversion.filterToUri(dynamicAlbumFilter)), dynamicAlbumFilter);
expect(albumGrouping.uriToFilter(GroupingConversion.filterToUri(albumGroupFilter)), albumGroupFilter);
});
}