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); } }
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)); } }
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 } }
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); } }
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); }
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(); }
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); } }
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"); } }
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); } }
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); } }
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"); }
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"); } }
public void EnsureInvalidVoteValueThrowsException_Com() { using (var db = new Voat.Data.Repository()) { db.VoteComment(121, -2, IpHash.CreateHash("127.0.0.1")); } }
public void EnsureInvalidVoteValueThrowsException_Sub() { using (var db = new Voat.Data.Repository()) { db.VoteSubmission(1, 21, IpHash.CreateHash("127.0.0.1")); } }
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); } }
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); }
private Submission GetSubmission() { using (var repo = new Voat.Data.Repository()) { return(repo.GetSubmission(submissionID)); } }
public void GetFeatured_Test() { //Just makes sure query doesn't choke using (var repo = new Voat.Data.Repository()) { var result = repo.GetFeatured(); } }
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); } }
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); } }
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")); } }); }
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); } }
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); }
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); }
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"); } }
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); }
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); } }
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); } }
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); } }
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); }