Ejemplo n.º 1
0
        public void Test_EpisodeTranslationsRequest_Validate_Throws_Exceptions()
        {
            // id is null
            var request = new EpisodeTranslationsRequest {
                EpisodeNumber = 1
            };

            Action act = () => request.Validate();

            act.Should().Throw <ArgumentNullException>();

            // empty id
            request = new EpisodeTranslationsRequest {
                Id = string.Empty, EpisodeNumber = 1
            };

            act = () => request.Validate();
            act.Should().Throw <ArgumentException>();

            // id with spaces
            request = new EpisodeTranslationsRequest {
                Id = "invalid id", EpisodeNumber = 1
            };

            act = () => request.Validate();
            act.Should().Throw <ArgumentException>();

            // episode number == 0
            request = new EpisodeTranslationsRequest {
                EpisodeNumber = 0
            };

            act = () => request.Validate();
            act.Should().Throw <ArgumentException>();

            // language code with wrong length
            request = new EpisodeTranslationsRequest {
                Id = "123", EpisodeNumber = 1, LanguageCode = "eng"
            };

            act = () => request.Validate();
            act.Should().Throw <ArgumentOutOfRangeException>();

            request = new EpisodeTranslationsRequest {
                Id = "123", EpisodeNumber = 1, LanguageCode = "e"
            };

            act = () => request.Validate();
            act.Should().Throw <ArgumentOutOfRangeException>();
        }
Ejemplo n.º 2
0
        public void Test_EpisodeTranslationsRequest_Returns_Valid_UriPathParameters()
        {
            // with implicit season number / without language code
            var request = new EpisodeTranslationsRequest {
                Id = "123", EpisodeNumber = 1
            };

            request.GetUriPathParameters().Should().NotBeNull()
            .And.HaveCount(3)
            .And.Contain(new Dictionary <string, object>
            {
                ["id"]      = "123",
                ["season"]  = "0",
                ["episode"] = "1"
            });

            // with explicit season number / without language code
            request = new EpisodeTranslationsRequest {
                Id = "123", SeasonNumber = 2, EpisodeNumber = 1
            };

            request.GetUriPathParameters().Should().NotBeNull()
            .And.HaveCount(3)
            .And.Contain(new Dictionary <string, object>
            {
                ["id"]      = "123",
                ["season"]  = "2",
                ["episode"] = "1"
            });

            // -------------------------------------------
            var languageCode = "en";

            // with implicit season number / with language code
            request = new EpisodeTranslationsRequest {
                Id = "123", EpisodeNumber = 1, LanguageCode = languageCode
            };

            request.GetUriPathParameters().Should().NotBeNull()
            .And.HaveCount(4)
            .And.Contain(new Dictionary <string, object>
            {
                ["id"]       = "123",
                ["season"]   = "0",
                ["episode"]  = "1",
                ["language"] = languageCode
            });

            // with explicit season number / with language code
            request = new EpisodeTranslationsRequest {
                Id = "123", SeasonNumber = 2, EpisodeNumber = 1, LanguageCode = languageCode
            };

            request.GetUriPathParameters().Should().NotBeNull()
            .And.HaveCount(4)
            .And.Contain(new Dictionary <string, object>
            {
                ["id"]       = "123",
                ["season"]   = "2",
                ["episode"]  = "1",
                ["language"] = languageCode
            });
        }
Ejemplo n.º 3
0
        public void Test_EpisodeTranslationsRequest_Has_Valid_UriTemplate()
        {
            var request = new EpisodeTranslationsRequest();

            request.UriTemplate.Should().Be("shows/{id}/seasons/{season}/episodes/{episode}/translations{/language}");
        }