コード例 #1
0
        public void GOUserRolePostTest(IDictionary testData)
        {
            #region Arrange

            var currentEntity = new GOUserRoleDataObject();
            var include       = "";
            var token         = "";

            currentEntity.IsNew = Convert.ToBoolean(testData["IsNew"].ToString());

            if (!currentEntity.IsNew)
            {
                currentEntity.GORoleName = testData["GORoleName"].ToString().Trim() != null ? testData["GORoleName"].ToString().Trim().ToString() : null;
                currentEntity.GOUserId   = System.Guid.Parse(testData["GOUserId"].ToString().Trim());
                include = testData["Include"].ToString().Trim();
            }
            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
            }
        }
コード例 #2
0
        private GOUserDataObject CreateNewUser(string username, string firstname, string lastname, string email, string password, bool emailvalidated = false, bool uservalidated = false)
        {
            var newUser = new GOUserDataObject();
            var dataset = ApplicationSettings.Container.Resolve <IObjectsDataSet>();

            dataset.AddObject(newUser);
            newUser.UserName       = username;
            newUser.EmailAddress   = email;
            newUser.FirstName      = firstname;
            newUser.LastName       = lastname;
            newUser.FullName       = !String.IsNullOrEmpty(firstname) && !String.IsNullOrEmpty(firstname) ? $"{firstname} {lastname}" : username;
            newUser.EmailValidated = emailvalidated;
            newUser.UserValidated  = uservalidated;

            var role       = DataFacade.GORoleDataProvider.Get(new GORoleDataObject(DefaultRoleForNewUsers), skipSecurity: true);
            var gouserrole = new GOUserRoleDataObject()
            {
                GORoleName = role.Name
            };

            newUser.UserRoleItems.Add(gouserrole);
            gouserrole.Role = role;

            DateTime?        passwordExpiry;
            GORoleDataObject rejectingRole;

            if (!PasswordPolicy.AcceptPassword(newUser, password, out passwordExpiry, out rejectingRole))
            {
                throw new GOServerException <PasswordPolicyNotSatisfied>(rejectingRole.PasswordPolicySummary);
            }

            newUser.Password       = password;
            newUser.PasswordExpiry = passwordExpiry;

            var includes = new List <string>
            {
                "UserRoleItems.Role", "UserGroupItems.Group.GroupRoleItems"
            };

            return(DataFacade.GOUserDataProvider.Save(newUser, null, includes: includes, skipSecurity: true));
        }