public void LockUserTest() { var testUser = GetTestUser(); var testCompany = GetTestCompany(testUser); // Create a record var model = GetTestUser(true, false); var error = MembershipManagementService.InsertOrUpdateUser(model, testUser, ""); Assert.IsTrue(!error.IsError, $"Error: {error.Message}"); // Get the current Lock string lockGuid = MembershipManagementService.LockUser(model); Assert.IsTrue(!string.IsNullOrEmpty(lockGuid), "Error: Lock record was not found"); // Simulate another user updating the record var otherUser = GetTestUser(); error = MembershipManagementService.InsertOrUpdateUser(model, otherUser, lockGuid); Assert.IsTrue(!error.IsError, error.Message); // Now get the first user to update the record error = MembershipManagementService.InsertOrUpdateUser(model, testUser, lockGuid); Assert.IsTrue(error.IsError, "Error: The lock should have caused an error as it has changed"); // Try to update with the new lock lockGuid = MembershipManagementService.LockUser(model); error = MembershipManagementService.InsertOrUpdateUser(model, testUser, lockGuid); Assert.IsTrue(!error.IsError, $"Error: {error.Message}"); }
public ActionResult Save(EditUserViewModel model, string command) { if (command.ToLower() == "save") { var modelError = MembershipManagementService.InsertOrUpdateUser(model.UserData, CurrentUser, model.LGS); if (modelError.IsError) { prepareEditModel(model, model.UserData.Id); model.SetErrorOnField(ErrorIcon.Error, modelError.Message, "UserData_" + modelError.FieldName); return(View("MyOptions", model)); } else { // Return to dashboard model.SetError(ErrorIcon.Information, EvolutionResources.infChangesSuccessfullySaved, null, null, null, null, true); return(RedirectToAction("Index", "Home")); } } else { // Return to dashboard return(RedirectToAction("Index", "Home")); } }
public void FindUserListItemModelTest() { // Warning: This test can fail if another test is creating users at the same time // This occurs because users are global and not specific to an organisation, // otherwise we segment users off into a separate test organisation. var user = GetTestUser(); var testCompany = GetTestCompany(user); var model = MembershipManagementService.FindUserListItemModel(); var dbData = db.FindUsers(); int expected = dbData.Count(), actual = model.Count(); Assert.IsTrue(actual == expected, $"Error: {actual} items were found when {expected} were expected"); // Check that all the items match foreach (var item in model) { var dbItem = dbData.Where(m => m.Id.ToString() == item.Id).FirstOrDefault(); Assert.IsTrue(dbItem != null, "Error: Model item not found in db item list"); var test = MembershipManagementService.MapToModel(dbItem); AreEqual(item, test); } // Add another item a make sure it is found var newItem = GetTestUser(true, false); var error = MembershipManagementService.InsertOrUpdateUser(newItem, user, ""); Assert.IsTrue(!error.IsError, $"Error: {error.Message}"); model = MembershipManagementService.FindUserListItemModel(); var testItem = model.Where(i => i.Id.ToString() == newItem.Id.ToString()).FirstOrDefault(); Assert.IsTrue(testItem != null, "Error: A NULL value was returned when a non-NULL value was expected"); // Delete it and make sure it disappears MembershipManagementService.DeleteUser(newItem.Id); model = MembershipManagementService.FindUserListItemModel(); testItem = model.Where(i => i.Id == newItem.Id.ToString()).FirstOrDefault(); Assert.IsTrue(testItem == null, "Error: A non-NULL value was returned when a NULL value was expected"); }