Skip to content

Commit

Permalink
GH-346 GH-338: Add tests for scrobble post builder
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikfroehling committed Oct 31, 2022
1 parent 1771b99 commit 43f77ce
Show file tree
Hide file tree
Showing 5 changed files with 538 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
namespace TraktNet.PostBuilder.Tests
{
using FluentAssertions;
using System;
using Trakt.NET.Tests.Utility.Traits;
using TraktNet.Objects.Get.Episodes;
using TraktNet.Objects.Get.Shows;
using TraktNet.Objects.Post.Scrobbles;
using Xunit;

[TestCategory("PostBuilder")]
public partial class TraktPost_EpisodeScrobblePostBuilder_Tests
{
[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_Episode_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(null)
.Build();

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

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_EpisodeIds_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktEpisode())
.Build();

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

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_EpisodeIds_ArgumentException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktEpisode { Ids = new TraktEpisodeIds() })
.Build();

act.Should().Throw<ArgumentException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_Show_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(null, 0, 1)
.Build();

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

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_ShowIds_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktShow(), 0, 1)
.Build();

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

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_ShowIds_ArgumentException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktShow { Ids = new TraktShowIds() }, 0, 1)
.Build();

act.Should().Throw<ArgumentException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_SeasonNumber_ArgumentOutOfRangeException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktShow { Ids = new TraktShowIds { Trakt = 1 } }, -1, 1)
.Build();

act.Should().Throw<ArgumentException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithEpisode_EpisodeNumber_ArgumentOutOfRangeException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithEpisode(new TraktShow { Ids = new TraktShowIds { Trakt = 1 } }, 0, 0)
.Build();

act.Should().Throw<ArgumentException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithProgress_ArgumentOutOfRangeException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithProgress(-0.1f)
.Build();

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

act = () => TraktPost.NewEpisodeScrobblePost()
.WithProgress(100.1f)
.Build();

act.Should().Throw<ArgumentOutOfRangeException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithAppVersion_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithAppVersion(null)
.Build();

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

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_WithAppDate_ArgumentNullException()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost()
.WithAppDate(null)
.Build();

act.Should().Throw<ArgumentNullException>();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
namespace TraktNet.PostBuilder.Tests
{
using FluentAssertions;
using System;
using Trakt.NET.Tests.Utility.Traits;
using TraktNet.Exceptions;
using TraktNet.Objects.Post.Scrobbles;
using Xunit;

[TestCategory("PostBuilder")]
public partial class TraktPost_EpisodeScrobblePostBuilder_Tests
{
[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Empty_Build()
{
Func<ITraktEpisodeScrobblePost> act = () => TraktPost.NewEpisodeScrobblePost().Build();
act.Should().Throw<TraktPostValidationException>();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.EPISODE_1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Trakt);
episodeScrobblePost.Episode.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Imdb);
episodeScrobblePost.Episode.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tvdb);
episodeScrobblePost.Episode.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.TvRage);
episodeScrobblePost.Episode.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tmdb);
episodeScrobblePost.Episode.SeasonNumber.Should().BeNull();
episodeScrobblePost.Episode.Number.Should().BeNull();
episodeScrobblePost.Show.Should().BeNull();
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().BeNull();
episodeScrobblePost.AppDate.Should().BeNull();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode_WithShow()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.SHOW_1, 1, 1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().BeNull();
episodeScrobblePost.Episode.SeasonNumber.Should().Be(1);
episodeScrobblePost.Episode.Number.Should().Be(1);
episodeScrobblePost.Show.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Trakt);
episodeScrobblePost.Show.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Imdb);
episodeScrobblePost.Show.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tvdb);
episodeScrobblePost.Show.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.TvRage);
episodeScrobblePost.Show.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tmdb);
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().BeNull();
episodeScrobblePost.AppDate.Should().BeNull();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode_AppVersion()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.EPISODE_1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppVersion(TraktPost_Tests_Common_Data.APP_VERSION)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Trakt);
episodeScrobblePost.Episode.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Imdb);
episodeScrobblePost.Episode.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tvdb);
episodeScrobblePost.Episode.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.TvRage);
episodeScrobblePost.Episode.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tmdb);
episodeScrobblePost.Episode.SeasonNumber.Should().BeNull();
episodeScrobblePost.Episode.Number.Should().BeNull();
episodeScrobblePost.Show.Should().BeNull();
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().Be(TraktPost_Tests_Common_Data.APP_VERSION);
episodeScrobblePost.AppDate.Should().BeNull();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode_WithShow_AppVersion()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.SHOW_1, 1, 1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppVersion(TraktPost_Tests_Common_Data.APP_VERSION)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().BeNull();
episodeScrobblePost.Episode.SeasonNumber.Should().Be(1);
episodeScrobblePost.Episode.Number.Should().Be(1);
episodeScrobblePost.Show.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Trakt);
episodeScrobblePost.Show.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Imdb);
episodeScrobblePost.Show.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tvdb);
episodeScrobblePost.Show.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.TvRage);
episodeScrobblePost.Show.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tmdb);
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().Be(TraktPost_Tests_Common_Data.APP_VERSION);
episodeScrobblePost.AppDate.Should().BeNull();
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode_AppDate()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.EPISODE_1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppDate(TraktPost_Tests_Common_Data.APP_DATE)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Trakt);
episodeScrobblePost.Episode.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Imdb);
episodeScrobblePost.Episode.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tvdb);
episodeScrobblePost.Episode.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.TvRage);
episodeScrobblePost.Episode.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tmdb);
episodeScrobblePost.Episode.SeasonNumber.Should().BeNull();
episodeScrobblePost.Episode.Number.Should().BeNull();
episodeScrobblePost.Show.Should().BeNull();
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().BeNull();
episodeScrobblePost.AppDate.Should().Be(TraktPost_Tests_Common_Data.APP_DATE);
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Scrobble_Episode_WithShow_AppDate()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.SHOW_1, 1, 1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppDate(TraktPost_Tests_Common_Data.APP_DATE)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().BeNull();
episodeScrobblePost.Episode.SeasonNumber.Should().Be(1);
episodeScrobblePost.Episode.Number.Should().Be(1);
episodeScrobblePost.Show.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Trakt);
episodeScrobblePost.Show.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Imdb);
episodeScrobblePost.Show.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tvdb);
episodeScrobblePost.Show.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.TvRage);
episodeScrobblePost.Show.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tmdb);
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().BeNull();
episodeScrobblePost.AppDate.Should().Be(TraktPost_Tests_Common_Data.APP_DATE);
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Complete()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.EPISODE_1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppVersion(TraktPost_Tests_Common_Data.APP_VERSION)
.WithAppDate(TraktPost_Tests_Common_Data.APP_DATE)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Trakt);
episodeScrobblePost.Episode.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Imdb);
episodeScrobblePost.Episode.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tvdb);
episodeScrobblePost.Episode.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.TvRage);
episodeScrobblePost.Episode.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.EPISODE_1.Ids.Tmdb);
episodeScrobblePost.Episode.SeasonNumber.Should().BeNull();
episodeScrobblePost.Episode.Number.Should().BeNull();
episodeScrobblePost.Show.Should().BeNull();
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().Be(TraktPost_Tests_Common_Data.APP_VERSION);
episodeScrobblePost.AppDate.Should().Be(TraktPost_Tests_Common_Data.APP_DATE);
}

[Fact]
public void Test_TraktPost_EpisodeScrobblePostBuilder_Complete_WithShow()
{
ITraktEpisodeScrobblePost episodeScrobblePost = TraktPost.NewEpisodeScrobblePost()
.WithEpisode(TraktPost_Tests_Common_Data.SHOW_1, 1, 1)
.WithProgress(TraktPost_Tests_Common_Data.PROGRESS)
.WithAppVersion(TraktPost_Tests_Common_Data.APP_VERSION)
.WithAppDate(TraktPost_Tests_Common_Data.APP_DATE)
.Build();

episodeScrobblePost.Should().NotBeNull();
episodeScrobblePost.Episode.Should().NotBeNull();
episodeScrobblePost.Episode.Ids.Should().BeNull();
episodeScrobblePost.Episode.SeasonNumber.Should().Be(1);
episodeScrobblePost.Episode.Number.Should().Be(1);
episodeScrobblePost.Show.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Should().NotBeNull();
episodeScrobblePost.Show.Ids.Trakt.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Trakt);
episodeScrobblePost.Show.Ids.Imdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Imdb);
episodeScrobblePost.Show.Ids.Tvdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tvdb);
episodeScrobblePost.Show.Ids.TvRage.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.TvRage);
episodeScrobblePost.Show.Ids.Tmdb.Should().Be(TraktPost_Tests_Common_Data.SHOW_1.Ids.Tmdb);
episodeScrobblePost.Progress.Should().Be(TraktPost_Tests_Common_Data.PROGRESS);
episodeScrobblePost.AppVersion.Should().Be(TraktPost_Tests_Common_Data.APP_VERSION);
episodeScrobblePost.AppDate.Should().Be(TraktPost_Tests_Common_Data.APP_DATE);
}
}
}
Loading

0 comments on commit 43f77ce

Please sign in to comment.