Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Episode"/> class.
        /// </summary>
        /// <param name="podcastId">The podcast ID.</param>
        /// <param name="guid">The episode guid.</param>
        /// <param name="title">The episode title.</param>
        /// <param name="subtitle">The episode subtitle.</param>
        /// <param name="description">The episode description.</param>
        /// <param name="externalUrl">The episode external URL.</param>
        /// <param name="number">The episode number.</param>
        /// <param name="season">The episode season.</param>
        /// <param name="showNotes">The episode show notes.</param>
        /// <param name="authors">The episode authors.</param>
        /// <param name="explicit">A value that indicates whether the episode content is explicit.</param>
        /// <param name="coverImage">The episode cover image.</param>
        /// <param name="facebookImage">The episode Facebook image.</param>
        /// <param name="publicationType">The episode publication type.</param>
        /// <exception cref="ArgumentOutOfRangeException"><em>podcastId</em>, <em>number</em> or
        /// <em>season</em> is less then 1.</exception>
        /// <exception cref="System.ComponentModel.InvalidEnumArgumentException"><em>publicationType</em>
        /// is invalid enumeration.</exception>
        public Episode(long podcastId,
                       string guid,
                       string title,
                       string subtitle,
                       string description,
                       string externalUrl,
                       long number,
                       long season,
                       string showNotes,
                       string authors,
                       bool @explicit,
                       string coverImage,
                       string facebookImage,
                       EpisodePublicationType publicationType)
        {
            Precondition.IsGreater(podcastId, (long)0, nameof(podcastId));
            Precondition.IsGreater(number, (long)0, nameof(number));
            Precondition.IsGreater(season, (long)0, nameof(season));
            Precondition.IsValidEnum(publicationType, nameof(publicationType));

            PodcastId       = podcastId;
            Guid            = guid;
            Title           = title;
            Subtitle        = subtitle;
            Description     = description;
            ExternalUrl     = externalUrl;
            Number          = number;
            Season          = season;
            ShowNotes       = showNotes;
            Authors         = authors;
            Explicit        = @explicit;
            CoverImage      = coverImage;
            FacebookImage   = facebookImage;
            PublicationType = publicationType;
        }
Exemple #2
0
        public void Initialize_Constructor_3(
            [Values(0, 1)] long podcastId,
            [Values("guid")] string guid,
            [Values("title")] string title,
            [Values("subtitle")] string subtitle,
            [Values("description")] string description,
            [Values("externalUrl")] string externalUrl,
            [Values(0, 1)] long number,
            [Values(0, 1)] long season,
            [Values("showNotes")] string showNotes,
            [Values("authors")] string authors,
            [Values(true)] bool @explicit,
            [Values("coverImage")] string coverImage,
            [Values("facebookImage")] string facebookImage,
            [Values(EpisodePublicationType.Full, (EpisodePublicationType)10)]
            EpisodePublicationType publicationType)
        {
            Type   expectedException = null;
            string expectedParamName = null;

            if (podcastId < 1)
            {
                expectedException = typeof(ArgumentOutOfRangeException);
                expectedParamName = nameof(podcastId);
            }
            else if (number < 1)
            {
                expectedException = typeof(ArgumentOutOfRangeException);
                expectedParamName = nameof(number);
            }
            else if (season < 1)
            {
                expectedException = typeof(ArgumentOutOfRangeException);
                expectedParamName = nameof(season);
            }
            else if (publicationType == (EpisodePublicationType)10)
            {
                expectedException = typeof(InvalidEnumArgumentException);
                expectedParamName = nameof(publicationType);
            }

            if (expectedException == null)
            {
                Episode episode = null;

                Assert.That(() => episode = new Episode(
                                podcastId,
                                guid,
                                title,
                                subtitle,
                                description,
                                externalUrl,
                                number,
                                season,
                                showNotes,
                                authors,
                                @explicit,
                                coverImage,
                                facebookImage,
                                publicationType), Throws.Nothing);

                Assert.Multiple(() =>
                {
                    Assert.That(episode.Id, Is.EqualTo(0), "Id");
                    Assert.That(episode.Guid, Is.EqualTo(guid), "Guid");
                    Assert.That(episode.PodcastId, Is.EqualTo(podcastId), "PodcastId");
                    Assert.That(episode.ProductionId, Is.Null, "ProductionId");
                    Assert.That(episode.Title, Is.EqualTo(title), "Title");
                    Assert.That(episode.Subtitle, Is.EqualTo(subtitle), "Subtitle");
                    Assert.That(episode.Description, Is.EqualTo(description), "Description");
                    Assert.That(episode.Slug, Is.Null, "Slug");
                    Assert.That(episode.ExternalUrl, Is.EqualTo(externalUrl), "ExternalUrl");
                    Assert.That(episode.Number, Is.EqualTo(number), "Number");
                    Assert.That(episode.Season, Is.EqualTo(season), "Season");
                    Assert.That(episode.Permalink, Is.Null, "Permalink");
                    Assert.That(episode.PublishedAt, Is.EqualTo(DateTime.MinValue), "PublishedAt");
                    Assert.That(episode.CreatedAt, Is.EqualTo(DateTime.MinValue), "CreatedAt");
                    Assert.That(episode.UpdatedAt, Is.EqualTo(DateTime.MinValue), "UpdatedAt");
                    Assert.That(episode.Keywords, Is.Null, "Keywords");
                    Assert.That(episode.ChapterMarks, Is.Null, "ChapterMarks");
                    Assert.That(episode.ShowNotes, Is.EqualTo(showNotes), "ShowNotes");
                    Assert.That(episode.Authors, Is.EqualTo(authors), "Authors");
                    Assert.That(episode.Explicit, Is.EqualTo(@explicit), "Explicit");
                    Assert.That(episode.CoverImage, Is.EqualTo(coverImage), "CoverImage");
                    Assert.That(episode.FacebookImage, Is.EqualTo(facebookImage), "FacebookImage");
                    Assert.That(episode.Transcription, Is.Null, "Transcription");
                    Assert.That(episode.ContributorIds, Is.Null, "ContributorIds");
                    Assert.That(episode.PublicationType, Is.EqualTo(publicationType), "PublicationType");
                });
            }
            else
            {
                Assert.That(() => new Episode(podcastId,
                                              guid,
                                              title,
                                              subtitle,
                                              description,
                                              externalUrl,
                                              number,
                                              season,
                                              showNotes,
                                              authors,
                                              @explicit,
                                              coverImage,
                                              facebookImage,
                                              publicationType), Throws
                            .Exception.TypeOf(expectedException)
                            .With.Property("ParamName").EqualTo(expectedParamName));
            }
        }