using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Interfaces.Repositories; using LanguageExt; using static LanguageExt.Prelude; namespace ErsatzTV.Core.Tests.Fakes { public class FakeMediaCollectionRepository : IMediaCollectionRepository { private readonly Map> _data; public FakeMediaCollectionRepository(Map> data) => _data = data; public Task Add(Collection collection) => throw new NotSupportedException(); public Task AddMediaItem(int collectionId, int mediaItemId) => throw new NotSupportedException(); public Task AddMediaItems(int collectionId, List mediaItemIds) => throw new NotSupportedException(); public Task> Get(int id) => throw new NotSupportedException(); public Task> GetCollectionWithItems(int id) => throw new NotSupportedException(); public Task> GetCollectionWithItemsUntracked(int id) => throw new NotSupportedException(); public Task> GetCollectionWithCollectionItemsUntracked(int id) => throw new NotSupportedException(); public Task> GetAll() => throw new NotSupportedException(); public Task>> GetItems(int id) => Some(_data[id].ToList()).AsTask(); Task IMediaCollectionRepository.Update(Collection collection) => throw new NotSupportedException(); public Task Delete(int collectionId) => throw new NotSupportedException(); public Task> PlayoutIdsUsingCollection(int collectionId) => throw new NotSupportedException(); public Task IsCustomPlaybackOrder(int collectionId) => false.AsTask(); } }