public void GORolePostTest(IDictionary testData) { #region Arrange var currentEntity = new GORoleDataObject(); var include = ""; var token = ""; currentEntity.IsNew = Convert.ToBoolean(testData["IsNew"].ToString()); if (!currentEntity.IsNew) { currentEntity.Name = testData["Name"].ToString().Trim() != null ? testData["Name"].ToString().Trim().ToString() : null; include = testData["Include"].ToString().Trim(); } currentEntity.Description = testData["Description"]?.ToString().Trim() != null ? testData["Description"]?.ToString().Trim().ToString() : null; currentEntity.DisplayName = testData["Display name"]?.ToString().Trim() != null ? testData["Display name"]?.ToString().Trim().ToString() : null; currentEntity.PasswordExpiry = Convert.ToInt32(testData["Password Expiry"]?.ToString().Trim()); currentEntity.PasswordPolicySummary = testData["Password Policy Summary"]?.ToString().Trim() != null ? testData["Password Policy Summary"]?.ToString().Trim().ToString() : null; currentEntity.PasswordRegEx = testData["Password RegEx"]?.ToString().Trim() != null ? testData["Password RegEx"]?.ToString().Trim().ToString() : null; var expected_result = ConvertToStatusCode(testData["Result"]); #endregion #region Act var json = JsonConvert.SerializeObject(currentEntity); var postUrl = APITestManager.doPostRequestBody(json, include); APIWebRequest request = new APIWebRequest(); var username = testData["Username"].ToString().Trim(); var password = testData["Password"].ToString().Trim(); token = request.getToken(APITestManager.getAuthenticateUrl(), username, password); using (var testResponse = request.ProcessAPIWebRequest(appUrl, APIWebRequest.TypeCall.Save, postUrl, token)) { var status_code = testResponse.StatusCode; var status_description = testResponse.Status; var response_body = testResponse.Body; #endregion #region Assert APITestManager.displayResponse(testResponse); Assert.AreEqual(expected_result, status_code); if (status_code == HttpStatusCode.OK) { // to be implemented } #endregion } }
public bool AcceptPassword(GOUserDataObject user, string newPassword, out DateTime?expiry, out GORoleDataObject rejectingRole) { expiry = null; rejectingRole = null; // newPassword must satisfy password policy regex for each role the user is assigned to foreach (var userrole in user.UserRoleItems) { if (userrole != null && userrole.Role != null && !String.IsNullOrEmpty(userrole.Role.PasswordRegEx)) { if (!Regex.IsMatch(newPassword, userrole.Role.PasswordRegEx)) { rejectingRole = userrole.Role; return(false); } } } // If we get here, new password was accepted. Get password expiry info. GetNewPasswordExpiry(user, out expiry); return(true); }