public void TimestampParsing() { var originalTime = new System.DateTime(2019, 10, 15, 8, 30, 0).ToUniversalTime(); var originalTimestamp = originalTime.ToString("O"); var originalTimestampId = originalTimestamp; var originalCommentId = ArticleReactionTimestampId.TimestampToJQueryFriendlyString(originalTimestamp); var originalComment = new ArticleReaction() { TimestampId = originalTimestampId }; Assert.AreEqual(originalTime, originalComment.PublishDate); Assert.AreEqual(originalTimestamp, originalComment.TimestampAsString); Assert.AreEqual(originalCommentId, originalComment.ReactionId); Assert.AreEqual(originalTimestampId, originalComment.TimestampId); Assert.IsEmpty(originalComment.ReactingToId); var replyTime = originalTime.AddMinutes(30); var replyTimestamp = replyTime.ToString("O"); var replyCommentId = originalCommentId + "_" + ArticleReactionTimestampId.TimestampToJQueryFriendlyString(replyTimestamp); var replyTimestampId = $"{replyTimestamp}_{originalTimestamp}"; var replyComment = new ArticleReaction() { TimestampId = replyTimestampId }; Assert.AreEqual(replyTime, replyComment.PublishDate); Assert.AreEqual(replyTimestamp, replyComment.TimestampAsString); Assert.AreEqual(replyCommentId, replyComment.ReactionId); Assert.AreEqual(replyTimestampId, replyComment.TimestampId); Assert.AreEqual(originalComment.ReactionId, replyComment.ReactingToId); }
private static ArticleReaction ToArticleReaction(Dictionary <string, AttributeValue> attributeMap) { var reaction = new ArticleReaction() { ArticleSlug = attributeMap[SLUG].S, TimestampId = attributeMap[TIMESTAMP].S, AuthorId = attributeMap.ContainsKey(AUTHOR_ID) ? attributeMap[AUTHOR_ID].S : "", AuthorName = attributeMap.ContainsKey(AUTHOR_NAME) ? attributeMap[AUTHOR_NAME].S : "", EditState = ArticleReactionEditState.Original, Content = attributeMap[CONTENT].S, }; switch (attributeMap[ARTICLE_TYPE].S) { case ARTICLE_TYPE_COMMENT: reaction.ReactionType = ArticleReactionType.Comment; break; case ARTICLE_TYPE_COMMENTEDIT: reaction.ReactionType = ArticleReactionType.Edit; break; case ARTICLE_TYPE_COMMENTHIDE: reaction.ReactionType = ArticleReactionType.Hide; break; case ARTICLE_TYPE_COMMENTDELETE: reaction.ReactionType = ArticleReactionType.Delete; break; default: throw new Exception($"Unknown {ARTICLE_TYPE} value \"{attributeMap[ARTICLE_TYPE].S}\""); } if (attributeMap.ContainsKey(STATUS)) { switch (attributeMap[STATUS].S) { case STATUS_ORIGINAL: reaction.EditState = ArticleReactionEditState.Original; break; case STATUS_EDITED: reaction.EditState = ArticleReactionEditState.Edited; break; case STATUS_HIDDEN: reaction.EditState = ArticleReactionEditState.Hidden; break; case STATUS_DELETED: reaction.EditState = ArticleReactionEditState.Deleted; break; default: break; } } return(reaction); }
public void SettingPropertyToNullForcesEmpty() { var articleReaction = new ArticleReaction() { ArticleSlug = null, Content = null, AuthorId = null, AuthorName = null, TimestampId = null }; Assert.AreEqual(string.Empty, articleReaction.ArticleSlug); Assert.AreEqual(string.Empty, articleReaction.Content); Assert.AreEqual(string.Empty, articleReaction.AuthorId); Assert.AreEqual(string.Empty, articleReaction.AuthorName); Assert.AreEqual(string.Empty, articleReaction.TimestampId); }
public void ReactingToIdIsCorrerct() { var timestampId = "2020-02-28T21:41:06.1781051Z_2019-12-26T10:12:00.6799989Z"; var reactionId = "2019-12-26T10c12c00p6799989Z_2020-02-28T21c41c06p1781051Z"; var reactingToId = "2019-12-26T10c12c00p6799989Z"; var comment = new ArticleReaction { TimestampId = timestampId }; Assert.AreEqual(reactionId, comment.ReactionId); Assert.AreEqual(reactingToId, comment.ReactingToId); var computed = new ArticleReactionTimestampId(reactionId); Assert.AreEqual(reactionId, computed.ReactionId); Assert.AreEqual(reactingToId, computed.ReactingToId); }
public void CanSetProperties() { var content = "Some Title"; var slug = "Some-Slug"; var authorId = "abc123"; var authorName = "SomeUserName"; var timestampId = "2019-12-07T15:27:47.8710606Z"; var articleReaction = new ArticleReaction() { ArticleSlug = slug, Content = content, AuthorId = authorId, AuthorName = authorName, TimestampId = timestampId }; Assert.AreEqual(slug, articleReaction.ArticleSlug); Assert.AreEqual(content, articleReaction.Content); Assert.AreEqual(authorId, articleReaction.AuthorId); Assert.AreEqual(authorName, articleReaction.AuthorName); Assert.AreEqual(timestampId, articleReaction.TimestampId); }