/// <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; }
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)); } }