public async Task DeleteAccount_Failures() { var userName = "******"; TestDataInitializer.CreateUser(userName); var user = TestHelper.SetPrincipal(userName); //username doesnt match var cmd = new DeleteAccountCommand( new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = "******" }); var result = await cmd.Execute(); Assert.IsFalse(result.Success, result.Message); //password doesn't match cmd = new DeleteAccountCommand( new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = userName, CurrentPassword = "******" }); result = await cmd.Execute(); Assert.IsFalse(result.Success, result.Message); //wrong user user = TestHelper.SetPrincipal("TestUser01"); cmd = new DeleteAccountCommand( new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = userName, CurrentPassword = userName }); result = await cmd.Execute(); Assert.IsFalse(result.Success, result.Message); }
public async Task DeleteAccount_Basic() { //EnsureBadges using (var db = new VoatDataContext()) { if (!db.Badge.Any(x => x.ID == "deleted")) { db.Badge.Add(new Badge() { ID = "deleted", Name = "Account Deleted", Graphic = "deleted.png", Title = "deleted" }); } if (!db.Badge.Any(x => x.ID == "deleted2")) { db.Badge.Add(new Badge() { ID = "deleted2", Name = "Account Deleted", Graphic = "deleted2.png", Title = "deleted" }); } if (!db.Badge.Any(x => x.ID == "donor_upto_30")) { db.Badge.Add(new Badge() { ID = "donor_upto_30", Name = "Donor Up To Thirty", Graphic = "donor30.png", Title = "Donor" }); } db.SaveChanges(); } var userName = "******"; TestDataInitializer.CreateUser(userName); var user = TestHelper.SetPrincipal(userName); DeleteAccountCommand cmd; CommandResponse result; var options = new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = userName, CurrentPassword = userName, Comments = Domain.Models.DeleteOption.Anonymize, LinkSubmissions = Domain.Models.DeleteOption.Anonymize, TextSubmissions = Domain.Models.DeleteOption.Anonymize }; var submission = TestHelper.ContentCreation.CreateSubmission(options.UserName, new Domain.Models.UserSubmission() { Subverse = SUBVERSES.Unit, Title = "Test Submission Yeah", Content = "Test Submission Content" }); var comment = TestHelper.ContentCreation.CreateComment(options.UserName, submission.ID, "This is a test comment"); //Anon it all cmd = new DeleteAccountCommand(options).SetUserContext(user); result = await cmd.Execute(); VoatAssert.IsValid(result); VerifyDelete(options); userName = "******"; TestDataInitializer.CreateUser(userName); user = TestHelper.SetPrincipal(userName); using (var db = new VoatDataContext()) { //Trying to trap a bug with a user not getting delete badge db.UserBadge.Add(new Voat.Data.Models.UserBadge() { BadgeID = "donor_upto_30", CreationDate = DateTime.UtcNow, UserName = userName }); db.SaveChanges(); } options = new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = userName, CurrentPassword = userName, Comments = Domain.Models.DeleteOption.Delete, LinkSubmissions = Domain.Models.DeleteOption.Delete, TextSubmissions = Domain.Models.DeleteOption.Delete }; submission = TestHelper.ContentCreation.CreateSubmission(options.UserName, new Domain.Models.UserSubmission() { Subverse = SUBVERSES.Unit, Title = "Test Submission Yeah", Content = "Test Submission Content" }); comment = TestHelper.ContentCreation.CreateComment(options.UserName, submission.ID, "This is a test comment"); //Delete cmd = new DeleteAccountCommand(options).SetUserContext(user); result = await cmd.Execute(); VoatAssert.IsValid(result); VerifyDelete(options); userName = "******"; TestDataInitializer.CreateUser(userName); user = TestHelper.SetPrincipal(userName); //Need to ensure delete clears preferences var prefUpdate = new UpdateUserPreferencesCommand(new Domain.Models.UserPreferenceUpdate() { Bio = "My Bio" }).SetUserContext(user); var p = await prefUpdate.Execute(); VoatAssert.IsValid(p); using (var db = new VoatDataContext()) { var prefs = db.UserPreference.FirstOrDefault(x => x.UserName == userName); Assert.IsNotNull(prefs, "Expected user to have preference record at this stage"); prefs.Avatar = userName + ".jpg"; //Add badges to prevent duplicates db.UserBadge.Add(new Voat.Data.Models.UserBadge() { BadgeID = "deleted", CreationDate = DateTime.UtcNow, UserName = userName }); db.UserBadge.Add(new Voat.Data.Models.UserBadge() { BadgeID = "deleted2", CreationDate = DateTime.UtcNow, UserName = userName }); db.SaveChanges(); } options = new Domain.Models.DeleteAccountOptions() { UserName = userName, ConfirmUserName = userName, CurrentPassword = userName, Comments = Domain.Models.DeleteOption.Delete, LinkSubmissions = Domain.Models.DeleteOption.Delete, TextSubmissions = Domain.Models.DeleteOption.Delete, RecoveryEmailAddress = "*****@*****.**", ConfirmRecoveryEmailAddress = "*****@*****.**", Reason = "I need a break from the racialists" }; submission = TestHelper.ContentCreation.CreateSubmission(options.UserName, new Domain.Models.UserSubmission() { Subverse = SUBVERSES.Unit, Title = "Test Submission Yeah", Content = "Test Submission Content" }); comment = TestHelper.ContentCreation.CreateComment(options.UserName, submission.ID, "This is a test comment"); //Delete cmd = new DeleteAccountCommand(options).SetUserContext(user); result = await cmd.Execute(); VoatAssert.IsValid(result); VerifyDelete(options); }