Exemplo n.º 1
0
        public async Task SearchUserAsync_InvalidGenderEnumValue_ShouldThrowValidationException(UserGender gender)
        {
            // Given
            var config = new UserSearchConfig {
                Gender = gender
            };

            // When
            var func = _jikan.Awaiting(x => x.SearchUserAsync(config));

            // Then
            await func.Should().ThrowExactlyAsync <JikanValidationException>();
        }
Exemplo n.º 2
0
        public async Task SearchUserAsync_InvalidPage_ShouldThrowValidationException(int page)
        {
            // Given
            var config = new UserSearchConfig {
                Page = page
            };

            // When
            var func = _jikan.Awaiting(x => x.SearchUserAsync(config));

            // Then
            await func.Should().ThrowExactlyAsync <JikanValidationException>();
        }
Exemplo n.º 3
0
        public async Task SearchUserAsync_EmptyConfig_ShouldReturnFirst25People()
        {
            // Given
            var config = new UserSearchConfig();

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            using var _ = new AssertionScope();
            users.Data.Should().HaveCount(20);
            users.Data.First().Username.Should().Be("ErickGabriel555");
        }
Exemplo n.º 4
0
        public async Task SearchUserAsync_SonMatiQuery_ShouldReturnSonMati()
        {
            // Given
            var config = new UserSearchConfig {
                Query = "SonMati"
            };

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            users.Data.Should().Contain(x => x.Username.Equals("SonMati") && x.Url.Equals("https://myanimelist.net/profile/SonMati"));
        }
Exemplo n.º 5
0
        public async Task SearchUserAsync_ValidGenderEnumValue_ShouldReturnUsers(UserGender gender, string expectedFirstUser)
        {
            // Given
            var config = new UserSearchConfig {
                Gender = gender
            };

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            using var _ = new AssertionScope();
            users.Data.Should().HaveCount(20);
            users.Data.First().Username.Should().Be(expectedFirstUser);
        }
Exemplo n.º 6
0
        public async Task SearchUserAsync_WithMaxAge_ShouldReturnFilteredByMaxAge()
        {
            // Given
            var config = new UserSearchConfig {
                MaxAge = 20
            };

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            using var _ = new AssertionScope();
            users.Data.Should().HaveCount(20);
            users.Data.First().Username.Should().Be("KarlaD05");
        }
Exemplo n.º 7
0
        public async Task SearchUserAsync_WithLocation_ShouldReturnFilteredByLocation()
        {
            // Given
            var config = new UserSearchConfig {
                Location = "mysłowice"
            };

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            using var _ = new AssertionScope();
            users.Data.Should().HaveCount(20);
            users.Data.First().Username.Should().Be("P3gueiA1ds");
        }
Exemplo n.º 8
0
        public async Task SearchUserAsync_GivenSecondPage_ShouldReturnSecondPage()
        {
            // Given
            var config = new UserSearchConfig {
                Page = 2
            };

            // When
            var users = await _jikan.SearchUserAsync(config);

            // Then
            using var _ = new AssertionScope();
            users.Data.Should().HaveCount(20);
            users.Data.First().Username.Should().Be("EnricoA128");
            users.Data.First().Images.Should().NotBeNull();
        }
Exemplo n.º 9
0
        public SearchClient(UserSearchConfig config)
        {
            //

            EngineOptions = config.SearchEngines;

            SearchEngines = GetAllEngines()
                            .Where(e => EngineOptions.HasFlag(e.Engine))
                            .ToArray();


            UploadEngine = config.UseImgur ? new ImgurClient() : new ImgOpsEngine();

            /*
             *
             */


            var imageInfo = ResolveUploadUrl(config.ImageInput);


            ImageInfo = imageInfo ?? throw new SmartImageException("Image invalid or upload failed");

            OriginalImageResult = FullSearchResult.GetOriginalImageResult(ImageInfo);


            /*
             *
             */

            config.EnsureConfig();

            //

            Results = CreateSearchResults();


            //

            SearchTasks = CreateSearchTasks();

            IsComplete = false;

            //
        }