Пример #1
0
        public async Task GetCollectionSlugTests()
        {
            LibraryItem expected = new(TestSample.Get <Collection>());
            LibraryItem actual   = await _repository.Get(TestSample.Get <Collection>().Slug);

            KAssert.DeepEqual(expected, actual);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        public async Task GetShowTests()
        {
            LibraryItem expected = new(TestSample.Get <Show>());
            LibraryItem actual   = await _repository.Get(1);

            KAssert.DeepEqual(expected, actual);
        }
Пример #5
0
 public void IfEmptyTest()
 {
     int[] list = { 1, 2, 3, 4 };
     list = list.IfEmpty(() => KAssert.Fail("Empty action should not be triggered.")).ToArray();
     Assert.Throws <ArgumentNullException>(() => list.IfEmpty(null !).ToList());
     list = null;
     Assert.Throws <ArgumentNullException>(() => list !.IfEmpty(() => { }).ToList());
     list = Array.Empty <int>();
     Assert.Throws <ArgumentException>(() => list.IfEmpty(() => throw new ArgumentException()).ToList());
     Assert.Empty(list.IfEmpty(() => { }));
 }
Пример #6
0
        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);
        }
Пример #7
0
        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());
        }
Пример #8
0
        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);
        }
Пример #9
0
        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());
        }
Пример #10
0
        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());
        }
    }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #13
0
        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());
        }
    }
Пример #14
0
        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);
        }
Пример #15
0
        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);
            }
        }
Пример #16
0
        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);
        }
Пример #17
0
 await Assert.ThrowsAsync <ArgumentException>(() => Faulted().Then(_ => KAssert.Fail()));
Пример #18
0
        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);
        }