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);
        }
Ejemplo n.º 2
0
        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);
        }