public async Task CreateWithExternalIdTest() { Collection collection = TestSample.GetNew <Collection>(); collection.ExternalIDs = new[] { new MetadataID { Provider = TestSample.Get <Provider>(), Link = "link", DataID = "id" }, new MetadataID { Provider = TestSample.GetNew <Provider>(), Link = "new-provider-link", DataID = "new-id" } }; await _repository.Create(collection); Collection retrieved = await _repository.Get(2); await Repositories.LibraryManager.Load(retrieved, x => x.ExternalIDs); Assert.Equal(2, retrieved.ExternalIDs.Count); KAssert.DeepEqual(collection.ExternalIDs.First(), retrieved.ExternalIDs.First()); KAssert.DeepEqual(collection.ExternalIDs.Last(), retrieved.ExternalIDs.Last()); }
public async Task CreateWithExternalID() { Show expected = TestSample.Get <Show>(); expected.ID = 0; expected.Slug = "created-relation-test"; expected.ExternalIDs = new[] { new MetadataID { Provider = TestSample.Get <Provider>(), DataID = "ID" } }; Show created = await _repository.Create(expected); KAssert.DeepEqual(expected, created); await using DatabaseContext context = Repositories.Context.New(); Show retrieved = await context.Shows .Include(x => x.ExternalIDs) .ThenInclude(x => x.Provider) .FirstAsync(x => x.ID == created.ID); KAssert.DeepEqual(expected, retrieved); Assert.Equal(1, retrieved.ExternalIDs.Count); Assert.Equal("ID", retrieved.ExternalIDs.First().DataID); }
public async Task GetCollectionSlugTests() { LibraryItem expected = new(TestSample.Get <Collection>()); LibraryItem actual = await _repository.Get(TestSample.Get <Collection>().Slug); KAssert.DeepEqual(expected, actual); }
public async Task GetShowTests() { LibraryItem expected = new(TestSample.Get <Show>()); LibraryItem actual = await _repository.Get(1); KAssert.DeepEqual(expected, actual); }
public async Task EditTest() { Library value = await _repository.Get(TestSample.Get <Library>().Slug); value.Paths = new[] { "/super", "/test" }; value.Name = "New Title"; Library edited = await _repository.Edit(value, false); await using DatabaseContext database = Repositories.Context.New(); Library show = await database.Libraries.FirstAsync(); KAssert.DeepEqual(show, edited); }
public async Task SearchTest(string query) { Collection value = new() { Slug = "super-test", Name = "This is a test title", }; await _repository.Create(value); ICollection <Collection> ret = await _repository.Search(query); KAssert.DeepEqual(value, ret.First()); }
public async Task NoProviderGetTest() { AProviderComposite provider = new ProviderComposite(Array.Empty <IMetadataProvider>(), _factory.CreateLogger <ProviderComposite>()); Show show = new() { ID = 4, Genres = new[] { new Genre("genre") } }; Show ret = await provider.Get(show); KAssert.DeepEqual(show, ret); }
public async Task SearchTest(string query) { People value = new() { Slug = "slug", Name = "name", }; await _repository.Create(value); ICollection <People> ret = await _repository.Search(query); KAssert.DeepEqual(value, ret.First()); }
public async Task SearchTest(string query) { Season value = new() { Title = "This is a test super title", ShowID = 1 }; await _repository.Create(value); ICollection <Season> ret = await _repository.Search(query); KAssert.DeepEqual(value, ret.First()); } }
public async Task EditTest() { Show value = await _repository.Get(TestSample.Get <Show>().Slug); value.Path = "/super"; value.Title = "New Title"; Show edited = await _repository.Edit(value, false); KAssert.DeepEqual(value, edited); await using DatabaseContext database = Repositories.Context.New(); Show show = await database.Shows.FirstAsync(); KAssert.DeepEqual(show, value); }
public async Task EditTest() { Collection value = await _repository.Get(TestSample.Get <Collection>().Slug); value.Name = "New Title"; value.Images = new Dictionary <int, string> { [Images.Poster] = "new-poster" }; await _repository.Edit(value, false); await using DatabaseContext database = Repositories.Context.New(); Collection retrieved = await database.Collections.FirstAsync(); KAssert.DeepEqual(value, retrieved); }
public async Task SearchTest(string query) { Episode value = new() { Title = "This is a test super title", ShowID = 1, AbsoluteNumber = 2 }; await _repository.Create(value); ICollection <Episode> ret = await _repository.Search(query); value.Show = TestSample.Get <Show>(); KAssert.DeepEqual(value, ret.First()); } }
public async Task AddProvidersTest() { Library value = await _repository.Get(TestSample.Get <Library>().Slug); await Repositories.LibraryManager.Load(value, x => x.Providers); value.Providers.Add(TestSample.GetNew <Provider>()); Library edited = await _repository.Edit(value, false); await using DatabaseContext database = Repositories.Context.New(); Library show = await database.Libraries .Include(x => x.Providers) .FirstAsync(); show.Providers.ForEach(x => x.Libraries = null); edited.Providers.ForEach(x => x.Libraries = null); KAssert.DeepEqual(show, edited); }
public async Task AddMetadataTest() { Collection value = await _repository.Get(TestSample.Get <Collection>().Slug); value.ExternalIDs = new List <MetadataID> { new() { Provider = TestSample.Get <Provider>(), Link = "link", DataID = "id" }, }; await _repository.Edit(value, false); { await using DatabaseContext database = Repositories.Context.New(); Collection retrieved = await database.Collections .Include(x => x.ExternalIDs) .ThenInclude(x => x.Provider) .FirstAsync(); KAssert.DeepEqual(value, retrieved); } value.ExternalIDs.Add(new MetadataID { Provider = TestSample.GetNew <Provider>(), Link = "link", DataID = "id" }); await _repository.Edit(value, false); { await using DatabaseContext database = Repositories.Context.New(); Collection retrieved = await database.Collections .Include(x => x.ExternalIDs) .ThenInclude(x => x.Provider) .FirstAsync(); KAssert.DeepEqual(value, retrieved); } }
public async Task EditMetadataTest() { Episode value = await _repository.Get(TestSample.Get <Episode>().Slug); value.ExternalIDs = new[] { new MetadataID { Provider = TestSample.Get <Provider>(), Link = "link", DataID = "id" }, }; await _repository.Edit(value, false); await using DatabaseContext database = Repositories.Context.New(); Episode retrieved = await database.Episodes .Include(x => x.ExternalIDs) .ThenInclude(x => x.Provider) .FirstAsync(); KAssert.DeepEqual(value, retrieved); }
public async Task CreateWithRelationsTest() { Show expected = TestSample.Get <Show>(); expected.ID = 0; expected.Slug = "created-relation-test"; expected.ExternalIDs = new[] { new MetadataID { Provider = new Provider("provider", "provider.png"), DataID = "ID" } }; expected.Genres = new[] { new Genre { Name = "Genre", Slug = "genre" } }; expected.People = new[] { new PeopleRole { People = TestSample.Get <People>(), Show = expected, ForPeople = false, Role = "actor" } }; expected.Studio = new Studio("studio"); Show created = await _repository.Create(expected); KAssert.DeepEqual(expected, created); await using DatabaseContext context = Repositories.Context.New(); Show retrieved = await context.Shows .Include(x => x.ExternalIDs) .ThenInclude(x => x.Provider) .Include(x => x.Genres) .Include(x => x.People) .ThenInclude(x => x.People) .Include(x => x.Studio) .FirstAsync(x => x.ID == created.ID); retrieved.People.ForEach(x => { x.Show = null; x.People.Roles = null; }); retrieved.Studio.Shows = null; retrieved.Genres.ForEach(x => x.Shows = null); expected.Genres.ForEach(x => x.Shows = null); expected.People.ForEach(x => { x.Show = null; x.People.Roles = null; }); retrieved.Should().BeEquivalentTo(expected); }