Skip to content

Commit

Permalink
GH-460: Add properties for "vip" and "comments" in TraktExtendedInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikfroehling authored May 19, 2023
1 parent 6d84902 commit ffb1f78
Show file tree
Hide file tree
Showing 2 changed files with 168 additions and 1 deletion.
75 changes: 74 additions & 1 deletion Source/Lib/Trakt.NET/Parameters/TraktExtendedInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public TraktExtendedInfo()
NoSeasons = false;
Episodes = false;
GuestStars = false;
Comments = false;
Vip = false;
}

/// <summary>
Expand Down Expand Up @@ -70,8 +72,27 @@ public TraktExtendedInfo()
/// </summary>
public bool GuestStars { get; set; }

/// <summary>
/// Gets or sets, whether comment media object information should be retrieved.
/// <para>
/// Only supported by <see cref="Modules.TraktListsModule.GetListLikesAsync(string, TraktPagedParameters, CancellationToken)" />.
/// Will be ignored otherwise.
/// </para>
/// <para>See also <see cref="SetEpisodes()" /> and <see cref="ResetEpisodes()" />.</para>
/// </summary>
public bool Comments { get; set; }

/// <summary>
/// Gets or sets, whether user vip information should be retrieved.
/// <para>
/// For example supported by <see cref="Modules.TraktUsersModule.GetUserProfileAsync(string, TraktExtendedInfo, CancellationToken)" />.
/// </para>
/// <para>See also <see cref="SetVip()" /> and <see cref="ResetVip()" />.</para>
/// </summary>
public bool Vip { get; set; }

/// <summary>Returns, whether any flag is enabled.</summary>
public bool HasAnySet => Metadata || Full || NoSeasons || Episodes || GuestStars;
public bool HasAnySet => Metadata || Full || NoSeasons || Episodes || GuestStars || Comments || Vip;

/// <summary>
/// Enables the metadata information flag.
Expand Down Expand Up @@ -183,6 +204,50 @@ public TraktExtendedInfo ResetGuestStars()
return this;
}

/// <summary>
/// Enables the comments information flag.
/// <para>See also <see cref="Comments" />.</para>
/// </summary>
/// <returns>The current <see cref="TraktExtendedInfo" /> instance.</returns>
public TraktExtendedInfo SetComments()
{
Comments = true;
return this;
}

/// <summary>
/// Disables the comments information flag.
/// <para>See also <see cref="Comments" />.</para>
/// </summary>
/// <returns>The current <see cref="TraktExtendedInfo" /> instance.</returns>
public TraktExtendedInfo ResetComments()
{
Comments = false;
return this;
}

/// <summary>
/// Enables the vip information flag.
/// <para>See also <see cref="Vip" />.</para>
/// </summary>
/// <returns>The current <see cref="TraktExtendedInfo" /> instance.</returns>
public TraktExtendedInfo SetVip()
{
Vip = true;
return this;
}

/// <summary>
/// Disables the vip information flag.
/// <para>See also <see cref="Vip" />.</para>
/// </summary>
/// <returns>The current <see cref="TraktExtendedInfo" /> instance.</returns>
public TraktExtendedInfo ResetVip()
{
Vip = false;
return this;
}

/// <summary>Disables all flags.</summary>
/// <returns>The current <see cref="TraktExtendedInfo" /> instance.</returns>
public TraktExtendedInfo Reset()
Expand All @@ -192,6 +257,8 @@ public TraktExtendedInfo Reset()
NoSeasons = false;
Episodes = false;
GuestStars = false;
Comments = false;
Vip = false;
return this;
}

Expand Down Expand Up @@ -219,6 +286,12 @@ public IEnumerable<string> Resolve()
if (GuestStars)
options.Add("guest_stars");

if (Comments)
options.Add("comments");

if (Vip)
options.Add("vip");

return options;
}

Expand Down
94 changes: 94 additions & 0 deletions Source/Tests/Trakt.NET.Parameters.Tests/TraktExtendedInfo_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public void Test_TraktExtendedInfo_Default_Constructor()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand All @@ -32,6 +34,8 @@ public void Test_TraktExtendedInfo_SetMetadata()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetMetadata().Should().BeSameAs(extendedInfo);

Expand All @@ -40,6 +44,8 @@ public void Test_TraktExtendedInfo_SetMetadata()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand All @@ -54,6 +60,8 @@ public void Test_TraktExtendedInfo_SetFull()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetFull().Should().BeSameAs(extendedInfo);

Expand All @@ -62,6 +70,8 @@ public void Test_TraktExtendedInfo_SetFull()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand All @@ -76,6 +86,8 @@ public void Test_TraktExtendedInfo_SetNoSeasons()
extendedInfo.NoSeasons.Should().BeTrue();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetNoSeasons().Should().BeSameAs(extendedInfo);

Expand All @@ -84,6 +96,8 @@ public void Test_TraktExtendedInfo_SetNoSeasons()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand All @@ -98,6 +112,8 @@ public void Test_TraktExtendedInfo_SetEpisodes()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeTrue();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetEpisodes().Should().BeSameAs(extendedInfo);

Expand All @@ -106,6 +122,8 @@ public void Test_TraktExtendedInfo_SetEpisodes()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand All @@ -120,6 +138,8 @@ public void Test_TraktExtendedInfo_SetGuestStars()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeTrue();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetGuestStars().Should().BeSameAs(extendedInfo);

Expand All @@ -128,6 +148,60 @@ public void Test_TraktExtendedInfo_SetGuestStars()
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
public void Test_TraktExtendedInfo_SetComments()
{
var extendedInfo = new TraktExtendedInfo();

extendedInfo.SetComments().Should().BeSameAs(extendedInfo);

extendedInfo.Metadata.Should().BeFalse();
extendedInfo.Full.Should().BeFalse();
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeTrue();
extendedInfo.Vip.Should().BeFalse();

extendedInfo.ResetComments().Should().BeSameAs(extendedInfo);

extendedInfo.Metadata.Should().BeFalse();
extendedInfo.Full.Should().BeFalse();
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
public void Test_TraktExtendedInfo_SetVip()
{
var extendedInfo = new TraktExtendedInfo();

extendedInfo.SetVip().Should().BeSameAs(extendedInfo);

extendedInfo.Metadata.Should().BeFalse();
extendedInfo.Full.Should().BeFalse();
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeTrue();

extendedInfo.ResetVip().Should().BeSameAs(extendedInfo);

extendedInfo.Metadata.Should().BeFalse();
extendedInfo.Full.Should().BeFalse();
extendedInfo.NoSeasons.Should().BeFalse();
extendedInfo.Episodes.Should().BeFalse();
extendedInfo.GuestStars.Should().BeFalse();
extendedInfo.Comments.Should().BeFalse();
extendedInfo.Vip.Should().BeFalse();
}

[Fact]
Expand Down Expand Up @@ -155,6 +229,14 @@ public void Test_TraktExtendedInfo_HasAnySet()
extendedInfo.Reset();
extendedInfo.GuestStars = true;
extendedInfo.HasAnySet.Should().BeTrue();

extendedInfo.Reset();
extendedInfo.Comments = true;
extendedInfo.HasAnySet.Should().BeTrue();

extendedInfo.Reset();
extendedInfo.Vip = true;
extendedInfo.HasAnySet.Should().BeTrue();
}

[Fact]
Expand All @@ -178,6 +260,12 @@ public void Test_TraktExtendedInfo_Resolve()

extendedInfo.SetGuestStars();
extendedInfo.Resolve().Should().NotBeNull().And.HaveCount(5).And.Contain("metadata", "full", "noseasons", "episodes", "guest_stars");

extendedInfo.SetComments();
extendedInfo.Resolve().Should().NotBeNull().And.HaveCount(6).And.Contain("metadata", "full", "noseasons", "episodes", "guest_stars", "comments");

extendedInfo.SetVip();
extendedInfo.Resolve().Should().NotBeNull().And.HaveCount(7).And.Contain("metadata", "full", "noseasons", "episodes", "guest_stars", "comments", "vip");
}

[Fact]
Expand All @@ -201,6 +289,12 @@ public void Test_TraktExtendedInfo_ToString()

extendedInfo.SetGuestStars();
extendedInfo.ToString().Should().NotBeNull().And.Be("metadata,full,noseasons,episodes,guest_stars");

extendedInfo.SetComments();
extendedInfo.ToString().Should().NotBeNull().And.Be("metadata,full,noseasons,episodes,guest_stars,comments");

extendedInfo.SetVip();
extendedInfo.ToString().Should().NotBeNull().And.Be("metadata,full,noseasons,episodes,guest_stars,comments,vip");
}
}
}

0 comments on commit ffb1f78

Please sign in to comment.