Example #1
0
        public void DestroyCommentByStatusDestroysOnlyThatStatus()
        {
            Entry entry      = SetupBlogForCommentsAndCreateEntry();
            var   repository = new DatabaseObjectProvider();

            CreateApprovedComments(3, entry);
            CreateFlaggedSpam(2, entry);
            CreateDeletedComments(3, entry);

            FeedbackItem newComment = CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment,
                                                                             FeedbackStatusFlag.Approved);

            repository.ConfirmSpam(newComment, null);
            newComment = CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment,
                                                                FeedbackStatusFlag.FlaggedAsSpam);
            Assert.IsFalse(newComment.Approved, "should not be approved");
            repository.Delete(newComment); //Move it to trash.

            FeedbackCounts counts = repository.GetFeedbackCounts();

            Assert.AreEqual(3, counts.ApprovedCount, "Expected three approved still");
            Assert.AreEqual(2, counts.FlaggedAsSpamCount, "Expected two items flagged as spam.");
            Assert.AreEqual(5, counts.DeletedCount, "Expected five in the trash");

            repository.Destroy(FeedbackStatusFlag.FlaggedAsSpam);
            counts = repository.GetFeedbackCounts();
            Assert.AreEqual(3, counts.ApprovedCount, "Expected three approved still");
            Assert.AreEqual(0, counts.FlaggedAsSpamCount, "Expected the items flagged as spam to be gone.");
            Assert.AreEqual(5, counts.DeletedCount, "Destroying all flagged items should not touch the trash bin.");

            CreateFlaggedSpam(3, entry);
            counts = repository.GetFeedbackCounts();
            Assert.AreEqual(3, counts.FlaggedAsSpamCount, "Expected three items flagged as spam.");

            repository.Destroy(FeedbackStatusFlag.Deleted);
            counts = repository.GetFeedbackCounts();
            Assert.AreEqual(3, counts.ApprovedCount, "Expected three approved still");
            Assert.AreEqual(3, counts.FlaggedAsSpamCount, "Expected three approved still");
            Assert.AreEqual(0, counts.DeletedCount, "Destroying all deleted items should not touch the flagged items.");
        }