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(style: p.Style.posix)); getIt.registerLazySingleton(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); }); }