Exemplo n.º 1
0
        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
            }
        }
Exemplo n.º 2
0
        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);
        }