public async Task Test_TraktCommentsModule_PostEpisodeComment_ArgumentExceptions() { ITraktEpisode episode = new TraktEpisode { Ids = new TraktEpisodeIds { Trakt = 73482, Tvdb = 349232, Imdb = "tt0959621", Tmdb = 62085, TvRage = 637041 } }; ITraktEpisodeCommentPost episodeCommentPost = new TraktEpisodeCommentPost { Episode = episode, Comment = COMMENT_TEXT }; string postJson = await TestUtility.SerializeObject(episodeCommentPost); postJson.Should().NotBeNullOrEmpty(); TraktClient client = TestUtility.GetOAuthMockClient(POST_EPISODE_COMMENT_URI, postJson, COMMENT_POST_RESPONSE_JSON); Func <Task <TraktResponse <ITraktCommentPostResponse> > > act = () => client.Comments.PostEpisodeCommentAsync(null, COMMENT_TEXT); act.Should().Throw <ArgumentNullException>(); episode.Ids = null; act = () => client.Comments.PostEpisodeCommentAsync(episode, COMMENT_TEXT); act.Should().Throw <ArgumentNullException>(); episode.Ids = new TraktEpisodeIds(); act = () => client.Comments.PostEpisodeCommentAsync(episode, COMMENT_TEXT); act.Should().Throw <ArgumentException>(); episode.Ids = new TraktEpisodeIds { Trakt = 73482, Tvdb = 349232, Imdb = "tt0959621", Tmdb = 62085, TvRage = 637041 }; act = () => client.Comments.PostEpisodeCommentAsync(episode, null); act.Should().Throw <ArgumentException>(); act = () => client.Comments.PostEpisodeCommentAsync(episode, string.Empty); act.Should().Throw <ArgumentException>(); const string comment = "one two three four"; act = () => client.Comments.PostEpisodeCommentAsync(episode, comment); act.Should().Throw <ArgumentOutOfRangeException>(); }
public override async Task <ITraktEpisodeCommentPost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktEpisodeCommentPost))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var sharingReader = new SharingObjectJsonReader(); var episodeReader = new EpisodeObjectJsonReader(); ITraktEpisodeCommentPost episodeCommentPost = new TraktEpisodeCommentPost(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.COMMENT_POST_PROPERTY_NAME_COMMENT: episodeCommentPost.Comment = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.COMMENT_POST_PROPERTY_NAME_SPOILER: { bool?value = await jsonReader.ReadAsBooleanAsync(cancellationToken); if (value.HasValue) { episodeCommentPost.Spoiler = value.Value; } break; } case JsonProperties.COMMENT_POST_PROPERTY_NAME_SHARING: episodeCommentPost.Sharing = await sharingReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.EPISODE_COMMENT_POST_PROPERTY_NAME_EPISODE: episodeCommentPost.Episode = await episodeReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(episodeCommentPost); } return(await Task.FromResult(default(ITraktEpisodeCommentPost))); }
public void TestTraktEpisodeCommentPostDefaultConstructor() { var episodeComment = new TraktEpisodeCommentPost(); episodeComment.Comment.Should().BeNullOrEmpty(); episodeComment.Spoiler.Should().NotHaveValue(); episodeComment.Sharing.Should().BeNull(); episodeComment.Episode.Should().BeNull(); }
public async Task Test_TraktCommentsModule_PostEpisodeComment_Complete() { ITraktEpisodeCommentPost episodeCommentPost = new TraktEpisodeCommentPost { Episode = Episode, Comment = COMMENT_TEXT, Spoiler = SPOILER, Sharing = SHARING }; string postJson = await TestUtility.SerializeObject(episodeCommentPost); postJson.Should().NotBeNullOrEmpty(); TraktClient client = TestUtility.GetOAuthMockClient(POST_EPISODE_COMMENT_URI, postJson, COMMENT_POST_RESPONSE_JSON); TraktResponse <ITraktCommentPostResponse> response = await client.Comments.PostEpisodeCommentAsync(Episode, COMMENT_TEXT, SPOILER, SHARING); response.Should().NotBeNull(); response.IsSuccess.Should().BeTrue(); response.HasValue.Should().BeTrue(); response.Value.Should().NotBeNull(); ITraktCommentPostResponse responseValue = response.Value; responseValue.Id.Should().Be(COMMENT_ID); responseValue.ParentId.Should().Be(0U); responseValue.CreatedAt.Should().Be(DateTime.Parse("2014-08-04T06:46:01.996Z").ToUniversalTime()); responseValue.Comment.Should().Be("Oh, I wasn't really listening."); responseValue.Spoiler.Should().BeFalse(); responseValue.Review.Should().BeFalse(); responseValue.Replies.Should().Be(0); responseValue.Likes.Should().Be(0); responseValue.UserRating.Should().NotHaveValue(); responseValue.User.Should().NotBeNull(); responseValue.User.Username.Should().Be("sean"); responseValue.User.IsPrivate.Should().BeFalse(); responseValue.User.Name.Should().Be("Sean Rudford"); responseValue.User.IsVIP.Should().BeTrue(); responseValue.User.IsVIP_EP.Should().BeFalse(); responseValue.Sharing.Should().NotBeNull(); responseValue.Sharing.Facebook.Should().BeTrue(); responseValue.Sharing.Twitter.Should().BeTrue(); responseValue.Sharing.Tumblr.Should().BeFalse(); responseValue.Sharing.Medium.Should().BeTrue(); }
public void TestTraktEpisodeCommentPostWriteJson() { var comment = "this is a comment"; var spoiler = false; var sharing = new TraktSharing { Facebook = true, Twitter = false, Tumblr = true }; var episodeTraktId = 16U; var episode = new TraktEpisode { Ids = new TraktEpisodeIds { Trakt = episodeTraktId } }; var episodeComment = new TraktEpisodeCommentPost { Comment = comment, Spoiler = spoiler, Sharing = sharing, Episode = episode }; var strJson = JsonConvert.SerializeObject(episodeComment); strJson.Should().NotBeNullOrEmpty(); var episodeCommentFromJson = JsonConvert.DeserializeObject <TraktEpisodeCommentPost>(strJson); episodeCommentFromJson.Should().NotBeNull(); episodeCommentFromJson.Comment.Should().Be(comment); episodeCommentFromJson.Spoiler.Should().Be(spoiler); episodeCommentFromJson.Sharing.Should().NotBeNull(); episodeCommentFromJson.Sharing.Facebook.Should().BeTrue(); episodeCommentFromJson.Sharing.Twitter.Should().BeFalse(); episodeCommentFromJson.Sharing.Tumblr.Should().BeTrue(); episodeCommentFromJson.Episode.Should().NotBeNull(); episodeCommentFromJson.Episode.Ids.Should().NotBeNull(); episodeCommentFromJson.Episode.Ids.Trakt.Should().Be(episodeTraktId); }