Example #1
0
        public void Submission_Reset_Default()
        {
            var user = TestHelper.SetPrincipal(USERNAMES.User100CCP, null);

            using (var db = new Voat.Data.Repository(user))
            {
                var x     = db.GetSubmission(context.SubmissionID);
                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteSubmission(context.SubmissionID, 1, IpHash.CreateHash("127.0.0.1"));

                Assert.AreEqual(Status.Success, response.Status, "Vote was not successfull");
                Assert.AreEqual(1, response.RecordedValue, "Recorded value off");

                var expectedUpCount   = ups + 1;
                var expectedDownCount = downs;
                Assert.AreEqual(expectedUpCount, response.Response.UpCount, "Response UpCount is off");
                Assert.AreEqual(expectedDownCount, response.Response.DownCount, "Response DownCount is off");
                //pull fresh data and compare
                x = db.GetSubmission(context.SubmissionID);
                Assert.AreEqual(expectedUpCount, x.UpCount, "Database UpCount is off");
                Assert.AreEqual(expectedDownCount, x.DownCount, "Database DownCount is off");

                //try to re-up vote
                response = db.VoteSubmission(context.SubmissionID, 1, IpHash.CreateHash("127.0.0.1"));
                Assert.IsTrue(response.Status == Status.Success);
                Assert.IsTrue(response.RecordedValue == 0);
            }
        }
Example #2
0
        public async Task DeleteSubmission_Moderator()
        {
            var user = TestHelper.SetPrincipal("TestUser13");

            var cmd = new CreateSubmissionCommand(new Domain.Models.UserSubmission()
            {
                Subverse = SUBVERSES.Unit, Title = "This is a title", Content = "This is content a mod would hate"
            }).SetUserContext(user);

            var r = await cmd.Execute();

            VoatAssert.IsValid(r);
            Assert.IsNotNull(r.Response, "Expecting a non null response");
            Assert.AreNotEqual(0, r.Response.ID);

            user = TestHelper.SetPrincipal(USERNAMES.Unit);
            var d  = new DeleteSubmissionCommand(r.Response.ID, "This is content I hate").SetUserContext(user);
            var r2 = await d.Execute();

            VoatAssert.IsValid(r2);

            //verify
            using (var db = new Voat.Data.Repository(user))
            {
                var s = db.GetSubmission(r.Response.ID);
                Assert.AreEqual(true, s.IsDeleted);

                //Content should remain unchanged in mod deletion
                Assert.AreEqual(s.Content, r.Response.Content);
                Assert.AreEqual(s.FormattedContent, r.Response.FormattedContent);
                //Assert.IsTrue(s.Content.StartsWith("Deleted by"));
                //Assert.AreEqual(s.FormattedContent, Utilities.Formatting.FormatMessage(s.Content));
            }
        }
Example #3
0
        public void Submission_Reset_NoRevoke()
        {
            var user = TestHelper.SetPrincipal(USERNAMES.User100CCP, null);

            using (var db = new Voat.Data.Repository(user))
            {
                var x     = db.GetSubmission(context.SubmissionID);
                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteSubmission(context.SubmissionID, 1, IpHash.CreateHash("127.0.0.1"));

                Assert.AreEqual(Status.Success, response.Status, "Vote was not successfull");
                Assert.AreEqual(1, response.RecordedValue, "Recorded value off");

                var expectedUpCount   = ups + 1;
                var expectedDownCount = downs;
                Assert.AreEqual(expectedUpCount, response.Response.UpCount, "Response UpCount is off");
                Assert.AreEqual(expectedDownCount, response.Response.DownCount, "Response DownCount is off");
                //pull fresh data and compare
                x = db.GetSubmission(context.SubmissionID);
                Assert.AreEqual(expectedUpCount, x.UpCount, "Database UpCount is off");
                Assert.AreEqual(expectedDownCount, x.DownCount, "Database DownCount is off");

                //try to re-up vote
                response = db.VoteSubmission(context.SubmissionID, 1, IpHash.CreateHash("127.0.0.1"), false);
                Assert.IsTrue(response.Status == Status.Ignored); //setting tells voting to ignore if submitted vote is current vote
                Assert.IsTrue(response.RecordedValue == 1);       //should still be an upvote
            }
        }
Example #4
0
        public void Submission_Up()
        {
            string userName = USERNAMES.User50CCP;
            var    user     = TestHelper.SetPrincipal(userName, null);

            using (var db = new Voat.Data.Repository(user))
            {
                var x     = db.GetSubmission(context.SubmissionID);
                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteSubmission(context.SubmissionID, 1, IpHash.CreateHash("127.0.0.1"));

                var expectedUpCount   = ups + 1;
                var expectedDownCount = downs;
                Assert.AreEqual(expectedUpCount, response.Response.UpCount, "Response UpCount is off");
                Assert.AreEqual(expectedDownCount, response.Response.DownCount, "Response DownCount is off");
                //pull fresh data and compare
                x = db.GetSubmission(context.SubmissionID);
                Assert.AreEqual(expectedUpCount, x.UpCount, "Database UpCount is off");
                Assert.AreEqual(expectedDownCount, x.DownCount, "Database DownCount is off");

                TestDirectVoteAccess(userName, Domain.Models.ContentType.Submission, context.SubmissionID, 1);
            }
        }
Example #5
0
        public static ContentContext NewContext(bool createData = false)
        {
            var context = Instance;

            //These users need to match the datainitializer batch setup
            int start = 0;
            int end   = 50;

            var userName = String.Format(UNIT_TEST_CONSTANTS.UNIT_TEST_USER_TEMPLATE, "0");

            if (context != null)
            {
                userName = context.UserName;
            }

            //increment user name
            var match   = Regex.Match(userName, @"\d+").Value;
            int numeric = start;

            if (int.TryParse(match, out numeric))
            {
                numeric += 1;
            }
            if (numeric > end)
            {
                numeric = start;
            }
            userName = String.Format(UNIT_TEST_CONSTANTS.UNIT_TEST_USER_TEMPLATE, numeric.ToString());

            TestHelper.SetPrincipal(userName);
            if (createData)
            {
                using (var db = new Voat.Data.Repository())
                {
                    var m = db.PostSubmission(new UserSubmission()
                    {
                        Subverse = "unit", Title = "Test Post for Unit Testing", Content = "Test Content"
                    }).Result;
                    Assert.AreEqual(Status.Success, m.Status, String.Format("NewContext PostSubmission for user {0} received non-success message : {1}", userName, m.Message));
                    var submissionid = m.Response.ID;

                    var c = db.PostComment(submissionid, -1, "This is a comment + " + Guid.NewGuid().ToString()).Result;
                    Assert.AreEqual(Status.Success, c.Status, String.Format("NewContext PostComment for user {0} received non-success message : {1}", userName, m.Message));
                    var commentid = c.Response.ID;
                    context = new ContentContext()
                    {
                        UserName = userName, CommentID = commentid, SubmissionID = submissionid
                    };
                }
            }
            else
            {
                context = new ContentContext()
                {
                    UserName = userName, CommentID = -1, SubmissionID = -1
                };
            }
            Instance = context;
            return(context);
        }
Example #6
0
        public void Edit_Submission_Title_Content()
        {
            var user = TestHelper.SetPrincipal("anon");

            var x = new CreateSubmissionCommand(new Domain.Models.UserSubmission()
            {
                Subverse = SUBVERSES.Anon, Title = "xxxxxxxxxxxx", Content = "xxxxxxxxxxxx"
            }).SetUserContext(user);
            var s = x.Execute().Result;

            Assert.IsNotNull(s, "Response is null");
            Assert.IsTrue(s.Success, s.Message);

            var cmd = new EditSubmissionCommand(s.Response.ID, new Domain.Models.UserSubmission()
            {
                Title = "yyyyyyyyyyyy", Content = "yyyyyyyyyyyy"
            }).SetUserContext(user);
            var r = cmd.Execute().Result;

            VoatAssert.IsValid(r, message: "Edit Submission failed to return true: " + r.Message);

            using (var repo = new Voat.Data.Repository())
            {
                var submission = repo.GetSubmission(s.Response.ID);
                Assert.IsNotNull(submission, "Can't find submission from repo");
                Assert.AreEqual("yyyyyyyyyyyy", submission.Title);
                Assert.AreEqual("yyyyyyyyyyyy", submission.Content);
            }

            //Assert.Inconclusive();
        }
Example #7
0
        public void DeleteComment()
        {
            TestHelper.SetPrincipal("TestUser1");
            var cmdcreate = new CreateCommentCommand(1, null, "This is my data too you know");
            var c         = cmdcreate.Execute().Result;

            Assert.IsNotNull(c, "response null");
            Assert.IsTrue(c.Success, c.Message);
            Assert.IsNotNull(c.Response, "Response payload null");

            int id = c.Response.ID;

            var cmd = new DeleteCommentCommand(id);
            var r   = cmd.Execute().Result;

            Assert.IsTrue(r.Success);

            //verify
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(id);
                Assert.AreEqual(true, comment.IsDeleted);
                Assert.AreNotEqual(c.Response.Content, comment.Content);
            }
        }
Example #8
0
        public async Task Comment_Reset_NoRevoke()
        {
            var user = TestHelper.SetPrincipal(USERNAMES.User100CCP, null);

            using (var db = new Voat.Data.Repository(user))
            {
                var x = await db.GetComment(context.CommentID);

                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteComment(context.CommentID, 1, IpHash.CreateHash("127.0.0.1"));

                //refresh comment
                x = await db.GetComment(context.CommentID);

                Assert.IsTrue(response.Success, response.ToString());
                Assert.AreEqual(1, response.RecordedValue, "Vote value incorrect");
                Assert.AreEqual((ups + 1), x.UpCount, "UpCount Off");


                //try to re-up vote, by default should revoke vote
                response = db.VoteComment(context.CommentID, 1, IpHash.CreateHash("127.0.0.1"), false);
                Assert.AreEqual(Status.Ignored, response.Status);
                Assert.AreEqual(1, response.RecordedValue, "Vote value incorrect");
            }
        }
Example #9
0
        public async Task Comment_Up()
        {
            string userName = USERNAMES.User50CCP;
            var    user     = TestHelper.SetPrincipal(userName, null);

            using (var db = new Voat.Data.Repository(user))
            {
                var x = await db.GetComment(context.CommentID);

                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteComment(context.CommentID, 1, IpHash.CreateHash("127.0.0.1"));

                //refresh comment
                x = await db.GetComment(context.CommentID);

                Assert.IsTrue(response.Success, response.ToString());
                Assert.AreEqual(1, response.RecordedValue, "Vote value incorrect");
                Assert.AreEqual((ups + 1), x.UpCount, "UpCount Off");
                Assert.AreEqual(downs, x.DownCount, "DownCount Off");

                TestDirectVoteAccess(userName, Domain.Models.ContentType.Comment, context.CommentID, 1);
            }
        }
Example #10
0
        public async Task Comment_Down()
        {
            string userName = USERNAMES.User500CCP;
            var    user     = TestHelper.SetPrincipal(userName, null); //This user has one comment with 101 likes

            using (var db = new Voat.Data.Repository(user))
            {
                var x = await db.GetComment(context.CommentID);

                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteComment(context.CommentID, -1, IpHash.CreateHash("127.0.0.1"));
                Assert.IsTrue(response.Success, response.Message);
                Assert.AreEqual(-1, response.RecordedValue, "Vote was not successfull");

                //refresh comment
                x = await db.GetComment(context.CommentID);

                Assert.AreEqual(ups, x.UpCount);
                Assert.AreEqual((downs + 1), x.DownCount);

                TestDirectVoteAccess(userName, Domain.Models.ContentType.Comment, context.CommentID, -1);
            }
        }
Example #11
0
        public void DownvoteComment()
        {
            TestHelper.SetPrincipal("User500CCP");
            bool voteEventReceived = false;

            EventNotification.Instance.OnVoteReceived += (s, e) => {
                voteEventReceived = e.TargetUserName == "unit" && e.SendingUserName == "User500CCP" && e.ChangeValue == -1 && e.ReferenceType == Domain.Models.ContentType.Comment && e.ReferenceID == 1;
            };
            var cmd = new CommentVoteCommand(1, -1, IpHash.CreateHash("127.0.0.1"));

            var c = cmd.Execute().Result;

            Assert.IsTrue(c.Success);
            Assert.IsNotNull(c.Response);

            //verify in db
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(1);
                Assert.IsNotNull(comment, "Couldn't find comment in db");
                Assert.AreEqual(comment.UpCount, c.Response.UpCount);
                Assert.AreEqual(comment.DownCount, c.Response.DownCount);
            }
            Assert.IsTrue(voteEventReceived, "VoteEvent not have the expected values");
        }
Example #12
0
        public void Comment_Reset_Default()
        {
            using (var db = new Voat.Data.Repository())
            {
                var x     = db.GetComment(context.CommentID);
                var ups   = x.UpCount;
                var downs = x.DownCount;

                TestHelper.SetPrincipal("User100CCP", null);

                var response = db.VoteComment(context.CommentID, 1, IpHash.CreateHash("127.0.0.1"));

                //refresh comment
                x = db.GetComment(context.CommentID);

                Assert.IsTrue(response.Success, response.ToString());
                Assert.AreEqual(1, response.RecordedValue, "Vote value incorrect");
                Assert.AreEqual((ups + 1), x.UpCount, "UpCount Off");

                //try to re-up vote, by default should revoke vote
                response = db.VoteComment(context.CommentID, 1, IpHash.CreateHash("127.0.0.1"));
                Assert.AreEqual(Status.Success, response.Status);
                Assert.AreEqual(0, response.RecordedValue, "Vote value incorrect");

                ////try to reset vote
                //response = repository.VoteComment(context.CommentID, 0);
                //Assert.IsTrue(response.Successfull);

                //refresh comment
                x = db.GetComment(context.CommentID);

                Assert.AreEqual(ups, x.UpCount, "Final Up Count off");
                Assert.AreEqual(downs, x.DownCount, "Final Down Count off");
            }
        }
Example #13
0
 public void EnsureInvalidVoteValueThrowsException_Com()
 {
     using (var db = new Voat.Data.Repository())
     {
         db.VoteComment(121, -2, IpHash.CreateHash("127.0.0.1"));
     }
 }
Example #14
0
 public void EnsureInvalidVoteValueThrowsException_Sub()
 {
     using (var db = new Voat.Data.Repository())
     {
         db.VoteSubmission(1, 21, IpHash.CreateHash("127.0.0.1"));
     }
 }
Example #15
0
        public void Submission_Down()
        {
            string userName = USERNAMES.User500CCP;
            var    user     = TestHelper.SetPrincipal(userName, null); //This user has one comment with 101 likes

            using (var db = new Voat.Data.Repository(user))
            {
                var x     = db.GetSubmission(context.SubmissionID);
                var ups   = x.UpCount;
                var downs = x.DownCount;

                var response = db.VoteSubmission(context.SubmissionID, -1, IpHash.CreateHash("127.0.0.1"));

                Assert.AreEqual(Status.Success, response.Status, response.Message);
                Assert.AreEqual(-1, response.RecordedValue, "Recorded value off");

                var expectedUpCount   = ups;
                var expectedDownCount = downs + 1;
                Assert.AreEqual(expectedUpCount, response.Response.UpCount, "Response UpCount is off");
                Assert.AreEqual(expectedDownCount, response.Response.DownCount, "Response DownCount is off");
                //pull fresh data and compare
                x = db.GetSubmission(context.SubmissionID);
                Assert.AreEqual(expectedUpCount, x.UpCount, "Database UpCount is off");
                Assert.AreEqual(expectedDownCount, x.DownCount, "Database DownCount is off");

                TestDirectVoteAccess(userName, Domain.Models.ContentType.Submission, context.SubmissionID, -1);
            }
        }
Example #16
0
        public void CreateComment_Anon()
        {
            string userName = "******";

            TestHelper.SetPrincipal(userName);

            var cmd = new CreateCommentCommand(2, null, "This is my data");
            var c   = cmd.Execute().Result;

            Assert.IsTrue(c.Success);
            Assert.IsNotNull(c.Response);
            Assert.AreNotEqual(0, c.Response.ID);
            Assert.AreEqual(true, c.Response.IsAnonymized);
            Assert.AreNotEqual(cmd.Content, c.Response.FormattedContent);

            //verify in db
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(c.Response.ID);
                Assert.IsNotNull(comment, "Couldn't find comment in db", c.Response.ID);

                Assert.AreEqual(c.Response.ID, comment.ID);
                Assert.AreEqual(comment.ID.ToString(), comment.UserName);
                Assert.AreEqual(c.Response.Content, comment.Content);
                Assert.IsTrue(comment.IsAnonymized);
                Assert.AreEqual(c.Response.IsAnonymized, comment.IsAnonymized);
            }

            base.VerifyCommentIsProtected(c.Response.SubmissionID.Value, c.Response.ID, userName);
        }
Example #17
0
 private Submission GetSubmission()
 {
     using (var repo = new Voat.Data.Repository())
     {
         return(repo.GetSubmission(submissionID));
     }
 }
Example #18
0
 public void GetFeatured_Test()
 {
     //Just makes sure query doesn't choke
     using (var repo = new Voat.Data.Repository())
     {
         var result = repo.GetFeatured();
     }
 }
Example #19
0
        public void Submission_Down_NoCCP()
        {
            var user = TestHelper.SetPrincipal("TestUser03", null); //Random User has no CCP

            using (var db = new Voat.Data.Repository(user))
            {
                var response = db.VoteSubmission(context.SubmissionID, -1, IpHash.CreateHash("127.0.0.1"));
                Assert.AreEqual(Status.Denied, response.Status);
            }
        }
Example #20
0
        public void Comment_Down_NoCCP()
        {
            using (var db = new Voat.Data.Repository())
            {
                TestHelper.SetPrincipal("TestUser3", null); //Random User has no CCP

                var response = db.VoteComment(context.CommentID, -1, IpHash.CreateHash("127.0.0.1"));

                Assert.AreEqual(Status.Denied, response.Status);
            }
        }
Example #21
0
        public void EnsureInvalidVoteValueThrowsException_Sub()
        {
            string userName = USERNAMES.User500CCP;
            var    user     = TestHelper.SetPrincipal(userName, null); //This user has one comment with 101 likes

            VoatAssert.Throws <ArgumentOutOfRangeException>(() => {
                using (var db = new Voat.Data.Repository(user))
                {
                    db.VoteSubmission(1, 21, IpHash.CreateHash("127.0.0.1"));
                }
            });
        }
Example #22
0
        public async Task UpvoteComment()
        {
            var user = TestHelper.SetPrincipal(USERNAMES.User50CCP);
            var cmd = new CommentVoteCommand(1, 1, IpHash.CreateHash("127.0.0.2")).SetUserContext(user);

            var c = cmd.Execute().Result;
            VoatAssert.IsValid(c);

            //verify in db
            using (var db = new Voat.Data.Repository(user))
            {
                var comment = await db.GetComment(1);
                Assert.IsNotNull(comment, "Couldn't find comment in db");
                Assert.AreEqual(comment.UpCount, c.Response.UpCount);
                Assert.AreEqual(comment.DownCount, c.Response.DownCount);
            }
        }
Example #23
0
        public void Bug_Trap_Spam_Votes_Repository()
        {
            Submission          beforesubmission = GetSubmission();
            int                 exCount          = 0;
            Func <VoteResponse> vote1            = new Func <VoteResponse>(() =>
            {
                var principal = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(USERNAMES.User500CCP, "Bearer"), null);
                System.Threading.Thread.CurrentPrincipal = principal;
                Interlocked.Increment(ref exCount);
                using (var repo = new Voat.Data.Repository(principal))
                {
                    return(repo.VoteSubmission(submissionID, 1, IpHash.CreateHash("127.0.0.1")));
                }
            });
            Func <VoteResponse> vote2 = new Func <VoteResponse>(() =>
            {
                var principal = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(USERNAMES.User100CCP, "Bearer"), null);
                System.Threading.Thread.CurrentPrincipal = principal;
                Interlocked.Increment(ref exCount);
                using (var repo = new Voat.Data.Repository(principal))
                {
                    return(repo.VoteSubmission(submissionID, 1, IpHash.CreateHash("127.0.0.1")));
                }
            });

            var tasks = new List <Task <VoteResponse> >();

            for (int i = 0; i < count; i++)
            {
                if (i % 2 == 0)
                {
                    tasks.Add(Task.Run(vote1));
                }
                else
                {
                    tasks.Add(Task.Run(vote2));
                }
            }

            Task.WaitAll(tasks.ToArray());

            Submission aftersubmission = GetSubmission();

            Assert.AreEqual(count, exCount, "Execution count is off");
            AssertData(beforesubmission, aftersubmission);
        }
Example #24
0
        public void DownvoteSubmission()
        {
            var submissionUser = "******";
            var newSubmission = TestHelper.ContentCreation.CreateSubmission(submissionUser, new Domain.Models.UserSubmission() { Title = "This is what I think about you guys", Subverse = SUBVERSES.Unit });

            var userName = USERNAMES.User500CCP;
            var user = TestHelper.SetPrincipal(userName);
            bool voteEventReceived = false;

            EventNotification.Instance.OnVoteReceived += (s, e) => {
                voteEventReceived = 
                    e.TargetUserName == submissionUser
                    && e.SendingUserName == userName
                    && e.ChangeValue == -1 
                    && e.ReferenceType == Domain.Models.ContentType.Submission 
                    && e.ReferenceID == newSubmission.ID;
            };
            var cmd = new SubmissionVoteCommand(newSubmission.ID, -1, IpHash.CreateHash("127.0.0.100")).SetUserContext(user);

            var c = cmd.Execute().Result;
            VoatAssert.IsValid(c);

            //verify in db
            using (var db = new Voat.Data.Repository(user))
            {
                var submissionFromRepo = db.GetSubmission(newSubmission.ID);
                Assert.IsNotNull(submissionFromRepo, "Couldn't find comment in db");
                Assert.AreEqual(submissionFromRepo.UpCount, c.Response.UpCount);
                Assert.AreEqual(submissionFromRepo.DownCount, c.Response.DownCount);
            }
            Assert.IsTrue(voteEventReceived, "VoteEvent not have the expected values");

            //Verify Submission pull has correct vote value recorded in output for current user
            var q = new QuerySubmission(newSubmission.ID, true).SetUserContext(user);
            var submission = q.Execute();
            Assert.IsNotNull(submission);
            Assert.AreEqual(c.RecordedValue, submission.Vote);

            //Verify non-logged in user has correct vote value
            TestHelper.SetPrincipal(null);
            q = new QuerySubmission(1, true);
            submission = q.Execute();
            Assert.IsNotNull(submission);
            Assert.AreEqual(null, submission.Vote);
        }
Example #25
0
        private void TestDirectVoteAccess(string userName, Domain.Models.ContentType type, int id, int expectedValue)
        {
            using (var repo = new Voat.Data.Repository())
            {
                //Test direct vote access logic
                var result = repo.UserVoteStatus(userName, type, id);
                Assert.AreEqual(expectedValue, result, "Vote value incorrect direct pull");

                var voteResults = repo.UserVoteStatus(userName, type, new int[] { id });
                Assert.IsNotNull(voteResults, "Vote Results should not be null");
                Assert.IsTrue(voteResults.Any(), "Enumerable should have contents");

                var record = voteResults.FirstOrDefault(e => e.ID == id);
                Assert.IsNotNull(record, "Enumerable should have record matching ID");
                Assert.AreEqual(id, record.ID, "Record should match ID");
                Assert.AreEqual(expectedValue, record.Value, "Record should match vote value");
            }
        }
Example #26
0
        public void Bug_Trap_Spam_Votes_Repository_2()
        {
            Submission          beforesubmission = GetSubmission();
            int                 exCount          = 0;
            Func <VoteResponse> vote1            = new Func <VoteResponse>(() =>
            {
                var user = TestHelper.SetPrincipal(USERNAMES.User500CCP);
                Interlocked.Increment(ref exCount);
                using (var repo = new Voat.Data.Repository(user))
                {
                    return(repo.VoteSubmission(submissionID, 1, IpHash.CreateHash("127.0.0.1")));
                }
            });
            Func <VoteResponse> vote2 = new Func <VoteResponse>(() =>
            {
                var user = TestHelper.SetPrincipal(USERNAMES.User100CCP);
                Interlocked.Increment(ref exCount);
                using (var repo = new Voat.Data.Repository(user))
                {
                    return(repo.VoteSubmission(submissionID, 1, IpHash.CreateHash("127.0.0.1")));
                }
            });

            var tasks = new List <Task <VoteResponse> >();

            for (int i = 0; i < count; i++)
            {
                if (i % 2 == 0)
                {
                    tasks.Add(Task.Run(vote1));
                }
                else
                {
                    tasks.Add(Task.Run(vote2));
                }
            }

            Task.WaitAll(tasks.ToArray());

            Submission aftersubmission = GetSubmission();

            Assert.AreEqual(count, exCount, "Execution count is off");
            AssertData(beforesubmission, aftersubmission);
        }
Example #27
0
        public void UpvoteComment()
        {
            TestHelper.SetPrincipal("User50CCP");
            var cmd = new CommentVoteCommand(1, 1, IpHash.CreateHash("127.0.0.2"));

            var c = cmd.Execute().Result;

            Assert.IsNotNull(c, "Response is null");
            Assert.IsTrue(c.Success, c.Message);
            Assert.IsNotNull(c.Response);

            //verify in db
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(1);
                Assert.IsNotNull(comment, "Couldn't find comment in db");
                Assert.AreEqual(comment.UpCount, c.Response.UpCount);
                Assert.AreEqual(comment.DownCount, c.Response.DownCount);
            }
        }
Example #28
0
        public void EditComment()
        {
            string content = "This is data [howdy](http://www.howdy.com)";

            TestHelper.SetPrincipal("unit");
            var cmd = new EditCommentCommand(1, content);
            var r   = cmd.Execute().Result;

            Assert.IsTrue(r.Success);
            Assert.AreEqual(content, r.Response.Content);
            Assert.AreEqual(Formatting.FormatMessage(content), r.Response.FormattedContent);

            //verify
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(1);
                Assert.IsNotNull(comment.LastEditDate);
                Assert.AreEqual(cmd.Content, comment.Content);
            }
        }
Example #29
0
        public void CreateComment()
        {
            TestHelper.SetPrincipal("TestUser2");

            var cmd = new CreateCommentCommand(1, null, "This is my data");
            var c   = cmd.Execute().Result;

            Assert.IsTrue(c.Success);
            Assert.IsNotNull(c.Response);
            Assert.AreNotEqual(0, c.Response.ID);

            //verify in db
            using (var db = new Voat.Data.Repository())
            {
                var comment = db.GetComment(c.Response.ID);
                Assert.IsNotNull(comment, "Couldn't find comment in db", c.Response.ID);
                Assert.AreEqual(c.Response.ID, comment.ID);
                Assert.AreEqual(c.Response.UserName, comment.UserName);
                Assert.AreEqual(c.Response.Content, comment.Content);
            }
        }
Example #30
0
            public static ContentContext Create(bool createData = false)
            {
                var context = Instance;

                var userName = NextUserName();

                var user = TestHelper.SetPrincipal(userName);

                if (createData)
                {
                    using (var db = new Voat.Data.Repository(user))
                    {
                        var m = db.PostSubmission(new UserSubmission()
                        {
                            Subverse = SUBVERSES.Unit, Title = "Test Post for Unit Testing", Content = "Test Content"
                        }).Result;
                        Assert.AreEqual(Status.Success, m.Status, String.Format("NewContext PostSubmission for user {0} received non-success message : {1}", userName, m.Message));
                        var submissionid = m.Response.ID;

                        var c = db.PostComment(submissionid, null, "This is a comment in disappearing ink. Wait for it.... -> " + Guid.NewGuid().ToString()).Result;
                        Assert.AreEqual(Status.Success, c.Status, String.Format("NewContext PostComment for user {0} received non-success message : {1}", userName, m.Message));
                        var commentid = c.Response.ID;
                        context = new ContentContext()
                        {
                            UserName = userName, CommentID = commentid, SubmissionID = submissionid
                        };
                    }
                }
                else
                {
                    context = new ContentContext()
                    {
                        UserName = userName, CommentID = -1, SubmissionID = -1
                    };
                }
                Instance = context;
                return(context);
            }